@Inject
List<IDefaultGroupProvider> groupProviders;
Tentei injetar uma lista de implementações e me retornaram esse erro:
No implementation for java.util.List<br.com.codery.prescreva.usercontrol.group.provider.IDefaultGroupProvider> was bound.
while locating java.util.List<br.com.codery.prescreva.usercontrol.group.provider.IDefaultGroupProvider>
for field at br.com.codery.prescreva.usercontrol.group.factory.DefaultGroupFactory.groupProviders(DefaultGroupFactory.java:13)
at br.com.caelum.vraptor.ioc.guice.GuiceComponentRegistry.bindToConstructor(GuiceComponentRegistry.java:151)
O restante das classes:
public interface IDefaultGroupProvider extends IGroupProvider {
}
public abstract class DefaultGroupProvider implements IDefaultGroupProvider {
protected abstract DefaultGroup getDefaultGroup();
protected abstract List<Permission> getPermission();
public Group provide() {
Group group = new Group();
group.setName(this.getDefaultGroup().getLabel());
group.setPermissions(this.getPermission());
return group;
}
}
@Component
public class SystemAdminGroupProvider extends DefaultGroupProvider {
@Override
protected DefaultGroup getDefaultGroup() {
return DefaultGroup.SYSTEM_ADMIN;
}
@Override
protected List<Permission> getPermission() {
List<Permission> permissions = new ArrayList<Permission>();
permissions.add(Permission.GROUP_SEE);
permissions.add(Permission.GROUP_SAVE);
permissions.add(Permission.GROUP_DELETE);
permissions.add(Permission.GROUP_UPDATE);
return null;
}
}