use a regular guice Matcher [1], I guess this would do the trick:

import static com.google.inject.matcher.Matchers.annotatedWith;

// ...
protected void configure() {
  convertToTypes(annotatedWith(Names.named("YOUR_KEY")), typeConverter);
}

jordi

[1]
http://google-guice.googlecode.com/svn/trunk/javadoc/com/google/inject/matcher/Matchers.html

On Tue, Jan 31, 2012 at 5:20 PM, Eyal Golan <egola...@gmail.com> wrote:

> Thanks for the inputs.
> The code example is what I needed.
> However, using it will convert all Date classes that get injected.
> Is there a way to create a converter only for parameters annotated with
> Named ?
>
>
> Eyal Golan
> egola...@gmail.com
>
> Visit: http://jvdrums.sourceforge.net/
> LinkedIn: http://www.linkedin.com/in/egolan74
> Skype: egolan74
>
> P  Save a tree. Please don't print this e-mail unless it's really necessary
>
>
>
> On Tue, Jan 31, 2012 at 5:55 PM, Tim Peierls <t...@peierls.net> wrote:
>
>> I recommend using Rocoto, too, but here's an example that shows how to do
>> it yourself, expressed as a JUnit test:
>>
>> http://pastebin.com/mWx9xG4M
>>
>> --tim
>>
>>
>> On Tue, Jan 31, 2012 at 10:10 AM, Stuart McCulloch <mccu...@gmail.com>wrote:
>>
>>> On 31 Jan 2012, at 14:42, egolan wrote:
>>>
>>> > Hi,
>>> > I am using  Names.bindProperties(binder(), properties); where my
>>> > properties are taken from a pre-initialized configuration.
>>> > One of the properties represent java.util.Date.
>>> > We have a simple date format class that sets the value:
>>> > SimpleDateFormat dateFormat = new SimpleDateFormat("MM-dd-yyyy
>>> > HH:mm:ss");
>>> > when I just use the Names binding, I get the Guice creation exception
>>> > that the named field was not bound.
>>>
>>> Names.bindProperties(...) creates constant bindings for the properties
>>> map - constant bindings are converted from Strings to actual instances by
>>> TypeConverters:
>>>
>>>
>>> http://google-guice.googlecode.com/svn/trunk/javadoc/com/google/inject/spi/TypeConverter.html
>>>
>>> Guice provides built-in TypeConverters for primitive types, enums, and
>>> class literals - but not for Date, hence the creation exception. However,
>>> you can add your own:
>>>
>>>
>>> http://google-guice.googlecode.com/svn/trunk/javadoc/com/google/inject/Binder.html#convertToTypes(com.google.inject.matcher.Matcher%3C?%20super%20com.google.inject.TypeLiteral%3C?%3E%3E,%20com.google.inject.spi.TypeConverter)
>>>
>>> See also http://99soft.github.com/rocoto/ which provides a range of
>>> useful TypeConverters, including one for Date:
>>> http://99soft.github.com/rocoto/converters.html
>>>
>>> > This is my injected constructor:
>>> >
>>> >    @Inject
>>> >    public CoreFetchOperationsImpl(@Named("MpsQueryFilter") String
>>> > genericQuery, @Named("MpsIterationBulkSize")int bulkSizeFetch,
>>> >            @Named("MpsLastProcessingTime") Date lastProcessingTime)
>>> >
>>> > In order to solve it, I am getting from the pre-initialized
>>> > configuration the concrete Date as string, parse it using the format
>>> > and bind specifically:
>>> >
>>> bind(Date.class).annotatedWith(Names.named("MpsLastProcessingTime")).toInstance(parsedDate));
>>> >
>>> > Is there a better way?
>>> >
>>> > Thanks
>>> >
>>> > --
>>> > You received this message because you are subscribed to the Google
>>> Groups "google-guice" group.
>>> > To post to this group, send email to google-guice@googlegroups.com.
>>> > To unsubscribe from this group, send email to
>>> google-guice+unsubscr...@googlegroups.com.
>>> > For more options, visit this group at
>>> http://groups.google.com/group/google-guice?hl=en.
>>> >
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "google-guice" group.
>>> To post to this group, send email to google-guice@googlegroups.com.
>>> To unsubscribe from this group, send email to
>>> google-guice+unsubscr...@googlegroups.com.
>>> For more options, visit this group at
>>> http://groups.google.com/group/google-guice?hl=en.
>>>
>>>
>>  --
>> You received this message because you are subscribed to the Google Groups
>> "google-guice" group.
>> To post to this group, send email to google-guice@googlegroups.com.
>> To unsubscribe from this group, send email to
>> google-guice+unsubscr...@googlegroups.com.
>> For more options, visit this group at
>> http://groups.google.com/group/google-guice?hl=en.
>>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "google-guice" group.
> To post to this group, send email to google-guice@googlegroups.com.
> To unsubscribe from this group, send email to
> google-guice+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/google-guice?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"google-guice" group.
To post to this group, send email to google-guice@googlegroups.com.
To unsubscribe from this group, send email to 
google-guice+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-guice?hl=en.

Reply via email to