private Class<?> assertTargetType(final InjectionSite injectionSite, final InjectionContext injectionContext) { if (injectionSite.isAnnotationPresent(TransitionTo.class)) { return assertIsPage(injectionSite); } else if (injectionSite.isAnnotationPresent(TransitionToRole.class)) { return assertRoleExistsAndIsValid(injectionSite, injectionContext); } else { throw new IllegalStateException( String.format("This extension provider should only be called for anchors with %s or %s.", TransitionTo.class.getSimpleName(), TransitionToRole.class.getSimpleName())); } }
private Class<?> assertTargetType(final InjectionSite injectionSite, final InjectionContext injectionContext) { if (injectionSite.isAnnotationPresent(TransitionTo.class)) { return assertIsPage(injectionSite); } else if (injectionSite.isAnnotationPresent(TransitionToRole.class)) { return assertRoleExistsAndIsValid(injectionSite, injectionContext); } else { throw new IllegalStateException( String.format("This extension provider should only be called for anchors with %s or %s.", TransitionTo.class.getSimpleName(), TransitionToRole.class.getSimpleName())); } }
@Override public CustomFactoryInjectable getInjectable(final InjectionSite injectionSite, final FactoryNameGenerator nameGenerator) { if (injectionSite.isAnnotationPresent(Model.class)) { if (provided == null) { final FactoryBodyGenerator generator = new AbstractBodyGenerator() {
@Override public CustomFactoryInjectable getInjectable(final InjectionSite injectionSite, final FactoryNameGenerator nameGenerator) { if (injectionSite.isAnnotationPresent(Model.class)) { if (provided == null) { final FactoryBodyGenerator generator = new AbstractBodyGenerator() {
@Override public CustomFactoryInjectable getInjectable(final InjectionSite injectionSite, final FactoryNameGenerator nameGenerator) { final String loggerName; if (injectionSite.isAnnotationPresent(NamedLogger.class)) { loggerName = injectionSite.getAnnotation(NamedLogger.class).value(); } else { loggerName = injectionSite.getEnclosingType().getFullyQualifiedName(); } if (!injectablesByLoggerName.containsKey(loggerName)) { final Statement loggerValue = invokeStatic(LoggerFactory.class, "getLogger", loggerName); final FactoryBodyGenerator generator = new AbstractBodyGenerator() { @Override protected List<Statement> generateCreateInstanceStatements(final ClassStructureBuilder<?> bodyBlockBuilder, final Injectable injectable, final DependencyGraph graph, final InjectionContext injectionContext) { return Collections.singletonList(Stmt.nestedCall(loggerValue).returnValue()); } }; final MetaClass type = MetaClassFactory.get(Logger.class); final Qualifier qualifier = injectionContext.getQualifierFactory().forUniversallyQualified(); injectablesByLoggerName.put(loggerName, new DefaultCustomFactoryInjectable(type, qualifier, nameGenerator.generateFor(type, qualifier, InjectableType.ExtensionProvided), Dependent.class, Collections.singletonList(WiringElementType.DependentBean), generator)); } return injectablesByLoggerName.get(loggerName); } });