Hi Alex,
no need to be sorry, you have come to the right place :)
As for your question, the simplest thing is probably to use qualifiers.
Create your own like this:
@Qualifier
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.TYPE, ElementType.PARAMETER, ElementType.FIELD, ElementType.METHOD
})
public @interface MyQualifier {}
And then change your AdvancedFoo class to use the qualifier:
@Dependent
@MyQualifier
public class AdvancedFoo extends SimpleFoo {
}
And accordingly, the init method which uses injection should then look like this:
@Dependent
public class Parent extends Child {
@Inject
@Override
protected void setFoo(@MyQualifier SimpleFoo foo) {
super.setFoo(foo);
}
}
Does this answer your question?
Matej
----- Original Message -----
From: "Alex Sviridov" <ooo_saturn7(a)mail.ru>
To: "weld-dev" <weld-dev(a)lists.jboss.org>
Sent: Tuesday, August 29, 2017 1:46:23 PM
Subject: [weld-dev] How to make method injection when bean subclass is required in Weld?
Hi all,
I am really sorry for writing to this mailing list, but I checked all user
forums and chats and saw that they are very old.
I would be very thankful if someone gives suggestion for solving the
following problem.
I have a child and parent class. Child has SimpleFoo, Parent needs Advaced
foo. So,
@Dependent
public class SimpleFoo {
}
@Dependent
public class AdvancedFoo extends SimpleFoo {
}
@Dependent
public class Child {
private SimpleFoo foo;
@Inject
protected void setFoo(SimpleFoo foo) {
this.foo = foo;
}
}
@Dependent
public class Parent extends Child {
@Inject
@Override
protected void setFoo(SimpleFoo foo) { //How to inject here AdvancedFoo?
super.setFoo(foo);
}
}
How to inject in Parent AdvancedFoo? I know that I can do it via constructor
injection
but I need method injection. How to do it? Can it be done without using names
(like MyBean1)
but only using classes (AdvancedFoo)?
Best regards, Alex
--
Alex Sviridov
_______________________________________________
weld-dev mailing list
weld-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/weld-dev