See issue 430 ( http://code.google.com/p/google-guice/issues/detail?id=430 )
and the patch attached to allow AssistedInject to work with multiple
constructors.

Sam

On Sat, Nov 14, 2009 at 4:10 AM, leszek <[email protected]> wrote:

> Hi Leigh,
>
> Thanks for the link, I read it through.
>
> I used this link: http://pastie.org/453944.txt and it works for me.
>
> The only problem I found is that my "commands" can use different
> numbers of argument e.g.
>
> @Inject
>  public ConcreteCommand1(SomeService service, @Assisted String
> runtime1) {
>
> @Inject
>  public ConcreteCommand1(SomeService service, @Assisted String
> runtime1, @Assisted String runtime2) {
>
> .. etc...
>
> But I resolved that issue by creating additional class
> 'CommandParam' : something like command design pattern:
> http://en.wikipedia.org/wiki/Command_pattern
>
> -------------------------------------
> public class CommandParam {
>
>    private final String param1;
>    private final String param2;
>
>    public CommandParam(String param1) {
>        this.param1 = param1;
>        this.param2 = null;
>    }
>
>    public CommandParam(String param1, String param2) {
>        this.param1 = param1;
>        this.param2 = param2;
>    }
>
>    public String getParam1() {
>        return param1;
>    }
>
>    public String getParam2() {
>        return param2;
>    }
>
> }
>
> ------------------
>
> and replace:
>
> @Inject
>  public ConcreteCommand1(SomeService service, @Assisted String
> runtime1) {
>
> with
>
> @Inject
>  public ConcreteCommand1(SomeService service, @Assisted CommandParam
> runtime1) {
>
>
> and, of course, all the other stuff accordingly.
>
>
> instance.process("command1",new CommandParam("This is runtime param
> for command 1"));
> instance.process("command2",new CommandParam("This is runtime param
> for command 2","Second param"));
> instance.process("command3",new CommandParam("This should fail"));
>
> It works for me but I'm interested if this problem (variable number of
> arguments) can be resolved the other way, without introducing
> additional 'CommandParam' class.
>
> --
>
> 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%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/google-guice?hl=.
>
>
>

--

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=.


Reply via email to