I agree.  I will run it by the Guava folks, or come up with a hack
myself.

On Nov 6, 7:22 pm, Sam Berlin <[email protected]> wrote:
> On Sat, Nov 6, 2010 at 8:13 PM, Dan Billings <[email protected]> wrote:
> > Before I create an issue with Gauva:
>
> > Couldn't Guice cope with the methods of Object if they are, for
> > whatever reason, declared in an interface?
>
> Guice (well, the assistedinject extensions) could... but IMO that'd be a
> pretty big hack for one use-case.
>
> sam
>
>
>
>
>
>
>
>
>
> > On Nov 6, 6:54 pm, Sam Berlin <[email protected]> wrote:
> > > I wonder if Function can just drop the equals method.  It won't be a
> > > backwards incompatible change, and I'm not certain how useful it actually
> > > is.  Certainly something to bring up with the Guava folks.
>
> > > sam
>
> > > On Sat, Nov 6, 2010 at 7:43 PM, Fred Faber <[email protected]> wrote:
> > > > Dan,
>
> > > > I see what you're saying...and it's certainly an interesting question.
>
> > > > I'd file a FR for this as I see the utility of the integration w/
> > guava,
> > > > especially given the prevalence of Function.
>
> > > > -Fred
>
> > > > On Sat, Nov 6, 2010 at 7:15 PM, Fred Faber <[email protected]> wrote:
>
> > > >> Sorry, I see now I misread your post.  Let me have a re-read.
>
> > > >> On Sat, Nov 6, 2010 at 7:12 PM, Fred Faber <[email protected]> wrote:
>
> > > >>> Dan,
>
> > > >>> The problem is that you're trying to create a binding for a class
> > that
> > > >>> should only be created through its corresponding factory.  This is
> > why you
> > > >>> see errors when binding your Function class itself.
>
> > > >>> What is the expectation you have w.r.t. injecting the Function?
>
> > > >>> -Fred
>
> > > >>> On Sat, Nov 6, 2010 at 7:07 PM, Dan Billings <[email protected]>
> > wrote:
>
> > > >>>> I have bound them separately with:
>
> > bind(TestAssisted.Factory.class).toProvider(FactoryProvider.newFactory(Test
> > Assisted.Factory.class,
> > > >>>>                        TestAssisted.class));
> > > >>>>                functionTypeLiteral = new
> > TypeLiteral<Function<String,
> > > >>>> TestAssisted>>() {
> > > >>>>                };
>
> > > >>>> bind(functionTypeLiteral).to(TestAssisted.Factory.class);
>
> > > >>>> but I get the same error.  Whatever process Guice is using to whip
> > up
> > > >>>> an implementation to the Assisted factory apparently can't handle
> > > >>>> multiple methods, even if it is equals(Object).
>
> > > >>>> But I still want to use Function in the end.  Only the module will
> > > >>>> know that it is actually pointing to TestAssisted.Factory.
>
> > > >>>> On Nov 6, 5:53 pm, Fred Faber <[email protected]> wrote:
> > > >>>> > Dan,
>
> > > >>>> > You shouldn't be binding the Function itself; instead, you're
> > expected
> > > >>>> to
> > > >>>> > bind TestAssisted.Factory, which creates instances of your
> > Function.
>
> > > >>>> > -Fred
>
> > > >>>> > On Sat, Nov 6, 2010 at 6:46 PM, Dan Billings <[email protected]>
> > > >>>> wrote:
> > > >>>> > > I'm attempting to short-circuit a lot of code by making my
> > Factory
> > > >>>> > > interfaces extend Guava's Function:
>
> >http://guava-libraries.googlecode.com/svn/trunk/javadoc/com/google/co.
> > > >>>> ..
>
> > > >>>> > > public class TestAssisted {
> > > >>>> > >    interface Factory extends Function<String, TestAssisted> {}
>
> > > >>>> > >   �...@inject
> > > >>>> > >    public TestAssisted(@Assisted String contents){}
> > > >>>> > > }
>
> > > >>>> > > I then bind it with:
> > > >>>> > > bind(new TypeLiteral<Function<String,TestAssisted>>()
> > > >>>> > > {}) .toProvider( FactoryProvider.newFactory(
> > > >>>> > > TestAssisted.Factory.class,TestAssisted.class );
>
> > > >>>> > > This seems to be okay, but Guice trips over Function's equal's
> > > >>>> method:
>
> > > >>>> > >  No implementation for java.lang.String annotated with
> > > >>>> > > @com.google.inject.assistedinject.Assisted(value=) was bound.
> > > >>>> > >  while locating java.lang.String annotated with
> > > >>>> > > @com.google.inject.assistedinject.Assisted(value=)
> > > >>>> > >    for parameter 0 at
>
> > com.billco.commons.test.TestAssisted.<init>(TestAssisted.java:18)
> > > >>>> > >  at com.google.common.base.Function.equals(Function.java:1)
>
> > > >>>> > > Do I have any options to have Guice more or less ignore the
> > "equals"
> > > >>>> > > method declared in Function? I can't think of a good way to
> > stick to
> > > >>>> > > interfaces and yet remove the necessity to implement "equals".
>
> > > >>>> > > Thanks for your help,
> > > >>>> > > -Dan
>
> > > >>>> > > --
> > > >>>> > > You received this message because you are subscribed to the
> > Google
> > > >>>> Groups
> > > >>>> > > "google-guice" group.
> > > >>>> > > To post to this group, send email to
> > [email protected].
> > > >>>> > > To unsubscribe from this group, send email to
> > > >>>> > > [email protected]<google-guice%2bunsubscr...@google
> > > >>>> > >  groups.com>
> > <google-guice%2bunsubscr...@google groups.com>
> > > >>>> <google-guice%2bunsubscr...@google groups.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 [email protected].
> > > >>>> To unsubscribe from this group, send email to
> > > >>>> [email protected]<google-guice%2bunsubscr...@google
> > > >>>>  groups.com>
> > <google-guice%2bunsubscr...@google groups.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 [email protected].
> > > > To unsubscribe from this group, send email to
> > > > [email protected]<google-guice%2bunsubscr...@google
> > > >  groups.com>
> > <google-guice%2bunsubscr...@google groups.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 [email protected].
> > To unsubscribe from this group, send email to
> > [email protected]<google-guice%2bunsubscr...@google 
> > groups.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 [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-guice?hl=en.

Reply via email to