@Override protected List<Statement> generateCreateInstanceStatements(final ClassStructureBuilder<?> bodyBlockBuilder, final Injectable injectable, final DependencyGraph graph, final InjectionContext injectionContext) { final List<Statement> statements = new ArrayList<>(validators.size()+2); statements.add(Stmt.declareFinalVariable("dynamicValidator", DynamicValidator.class, ObjectBuilder.newInstanceOf(DynamicValidator.class))); bodyBlockBuilder.privateField("messageResolver", ValidationMessageResolver.class) .initializesWith(Stmt.invokeStatic(GWT.class, "create", Stmt.loadLiteral(ProviderValidationMessageResolver.class))).finish(); validators .stream() .map(validator -> addDynamicValidator(bodyBlockBuilder, validator)) .collect(Collectors.toCollection(() -> statements)); statements.add(loadVariable("dynamicValidator").returnValue()); return statements; }
@SuppressWarnings("unchecked") private String declareContextManagerField(final IOCProcessingContext processingContext) { final String contextManagerFieldName = "contextManager"; processingContext.getBootstrapBuilder() .privateField(contextManagerFieldName, ContextManager.class) .initializesWith(ObjectBuilder.newInstanceOf(ContextManagerImpl.class)) .finish(); return contextManagerFieldName; }
@SuppressWarnings("unchecked") private void declareWindowInjectionContextField(final IOCProcessingContext processingContext) { processingContext.getBootstrapBuilder().privateField("windowContext", WindowInjectionContext.class) .modifiers(Modifier.Final).initializesWith(Stmt.invokeStatic(WindowInjectionContextStorage.class, "createOrGet")) .finish(); }
@SuppressWarnings("unchecked") private void declareStaticLogger(final IOCProcessingContext processingContext) { processingContext.getBootstrapBuilder() .privateField("logger", Logger.class) .modifiers(Modifier.Static, Modifier.Final) .initializesWith(invokeStatic(LoggerFactory.class, "getLogger", Bootstrapper.class)) .finish(); }
@SuppressWarnings("unchecked") private void declareAsyncBeanManagerSetupField(final IOCProcessingContext processingContext) { processingContext.getBootstrapBuilder() .privateField("asyncBeanManagerSetup", AsyncBeanManagerSetup.class) .initializesWith(castTo(AsyncBeanManagerSetup.class, invokeStatic(IOC.class, "getAsyncBeanManager"))) .finish(); }
public static void autoInitializedField(final ClassStructureBuilder<?> builder, final MetaClass type, final String name, MetaClass implementation) { implementation = MetaClassFactory.parameterizedAs(implementation, type.getParameterizedType()); builder.privateField(name, type) .initializesWith(Stmt.newObject(implementation)).finish(); }
private void declareAndInitializeProxyHelper(final Injectable injectable, final ClassStructureBuilder<?> bodyBlockBuilder) { bodyBlockBuilder .privateField("proxyHelper", parameterizedAs(ProxyHelper.class, typeParametersOf(injectable.getInjectedType()))) .modifiers(Modifier.Final) .initializesWith(initializeProxyHelper(injectable)) .finish(); }
public static void autoInitializedField(final ClassStructureBuilder<?> builder, final MetaClass type, final String name, MetaClass implementation) { implementation = MetaClassFactory.parameterizedAs(implementation, type.getParameterizedType()); builder.privateField(name, type) .initializesWith(Stmt.newObject(implementation)).finish(); }
public static String initCachedMethod(final ClassStructureBuilder<?> classBuilder, final MetaConstructor c) { createJavaReflectionConstructorInitializerUtilMethod(classBuilder); final String fieldName = PrivateAccessUtil.getPrivateMethodName(c) + "_meth"; classBuilder.privateField(fieldName, Constructor.class).modifiers(Modifier.Static) .initializesWith(Stmt.invokeStatic(classBuilder.getClassDefinition(), JAVA_REFL_CONSTRUCTOR_UTIL_METH, c.getDeclaringClass(), MetaClassFactory.asClassArray(c.getParameters()))).finish(); return fieldName; }
public static String initCachedMethod(final ClassStructureBuilder<?> classBuilder, final MetaConstructor c) { createJavaReflectionConstructorInitializerUtilMethod(classBuilder); final String fieldName = PrivateAccessUtil.getPrivateMethodName(c) + "_meth"; classBuilder.privateField(fieldName, Constructor.class).modifiers(Modifier.Static) .initializesWith(Stmt.invokeStatic(classBuilder.getClassDefinition(), JAVA_REFL_CONSTRUCTOR_UTIL_METH, c.getDeclaringClass(), MetaClassFactory.asClassArray(c.getParameters()))).finish(); return fieldName; }
@Override public Statement resolve(DotNode dotNode) { Class<?> lhsType = dotNode.getLhs().getDataType().getReturnedClass(); // ensure the attribute is available as a field of the comparator String attrVarName = dotNode.getPath().replace('.', '_') + "_attr"; if (containingClass != null && !generatedClassVariables.contains(attrVarName)) { generatedClassVariables.add(attrVarName); containingClass.privateField(attrVarName, ErraiAttribute.class) .modifiers(Modifier.Final) .initializesWith( Stmt.nestedCall(new StringStatement("entityManager.getMetamodel()", MetaClassFactory.get(ErraiMetamodel.class))) .invoke("entity", Stmt.loadLiteral(lhsType)) .invoke("getAttribute", dotNode.getPropertyPath())) .finish(); } // XXX need a StringStatement here because codegen can't see fields of anonymous inner classes. (ERRAI-363) return Stmt.nestedCall(new StringStatement(attrVarName, MetaClassFactory.get(ErraiAttribute.class))) .invoke("get", Stmt.loadVariable(variableName)); } }
public static String initCachedField(final ClassStructureBuilder<?> classBuilder, final MetaField f) { createJavaReflectionFieldInitializerUtilMethod(classBuilder); final String fieldName = PrivateAccessUtil.getPrivateFieldAccessorName(f) + "_fld"; if (classBuilder.getClassDefinition().getField(fieldName) != null) { return fieldName; } classBuilder.privateField(fieldName, Field.class).modifiers(Modifier.Static) .initializesWith(Stmt.invokeStatic(classBuilder.getClassDefinition(), JAVA_REFL_FLD_UTIL_METH, f.getDeclaringClass(), f.getName())).finish(); return fieldName; }
public static String initCachedField(final ClassStructureBuilder<?> classBuilder, final MetaField f) { createJavaReflectionFieldInitializerUtilMethod(classBuilder); final String fieldName = PrivateAccessUtil.getPrivateFieldAccessorName(f) + "_fld"; if (classBuilder.getClassDefinition().getField(fieldName) != null) { return fieldName; } classBuilder.privateField(fieldName, Field.class).modifiers(Modifier.Static) .initializesWith(Stmt.invokeStatic(classBuilder.getClassDefinition(), JAVA_REFL_FLD_UTIL_METH, f.getDeclaringClass(), f.getName())).finish(); return fieldName; }
public static String initCachedMethod(final ClassStructureBuilder<?> classBuilder, final MetaMethod m) { createJavaReflectionMethodInitializerUtilMethod(classBuilder); final String fieldName = PrivateAccessUtil.getPrivateMethodName(m) + "_meth"; classBuilder.privateField(fieldName, Method.class).modifiers(Modifier.Static) .initializesWith(Stmt.invokeStatic(classBuilder.getClassDefinition(), JAVA_REFL_METH_UTIL_METH, m.getDeclaringClass(), m.getName(), MetaClassFactory.asClassArray(m.getParameters()))).finish(); return fieldName; }
public static String initCachedMethod(final ClassStructureBuilder<?> classBuilder, final MetaMethod m) { createJavaReflectionMethodInitializerUtilMethod(classBuilder); final String fieldName = PrivateAccessUtil.getPrivateMethodName(m) + "_meth"; classBuilder.privateField(fieldName, Method.class).modifiers(Modifier.Static) .initializesWith(Stmt.invokeStatic(classBuilder.getClassDefinition(), JAVA_REFL_METH_UTIL_METH, m.getDeclaringClass(), m.getName(), MetaClassFactory.asClassArray(m.getParameters()))).finish(); return fieldName; }
public static void ensureMarshallerFieldCreated(final ClassStructureBuilder<?> classStructureBuilder, final MetaClass marshallerForType, final MetaClass type, final BlockBuilder<?> initMethod, final Statement marshallerCreationCallback) { final String fieldName = MarshallingGenUtil.getVarName(type); if (classStructureBuilder.getClassDefinition().getField(fieldName) == null) { final Statement marshallerLookup = createMarshallerLookup(marshallerForType, type, marshallerCreationCallback); if (initMethod == null) { classStructureBuilder.privateField(fieldName, parameterizedAs(Marshaller.class, typeParametersOf(type.getErased().asBoxed()))) .initializesWith(marshallerLookup).finish(); } else { classStructureBuilder.privateField(fieldName, parameterizedAs(Marshaller.class, typeParametersOf(type.getErased().asBoxed()))) .initializesWith(Stmt.load(null)).finish(); initMethod.append( If.isNull(Stmt.loadVariable(fieldName)).append( Stmt.loadVariable(fieldName).assignValue(marshallerLookup)).finish()); } } }
public static void ensureMarshallerFieldCreated(final ClassStructureBuilder<?> classStructureBuilder, final MetaClass marshallerForType, final MetaClass type, final BlockBuilder<?> initMethod, final Statement marshallerCreationCallback) { final String fieldName = MarshallingGenUtil.getVarName(type); if (classStructureBuilder.getClassDefinition().getField(fieldName) == null) { final Statement marshallerLookup = createMarshallerLookup(marshallerForType, type, marshallerCreationCallback); if (initMethod == null) { classStructureBuilder.privateField(fieldName, parameterizedAs(Marshaller.class, typeParametersOf(type.getErased().asBoxed()))) .initializesWith(marshallerLookup).finish(); } else { classStructureBuilder.privateField(fieldName, parameterizedAs(Marshaller.class, typeParametersOf(type.getErased().asBoxed()))) .initializesWith(Stmt.load(null)).finish(); initMethod.append( If.isNull(Stmt.loadVariable(fieldName)).append( Stmt.loadVariable(fieldName).assignValue(marshallerLookup)).finish()); } } }
.privateField("valueGenerator", generatorDeclaredType) .initializesWith(Stmt.newObject(generatorType).withParameters(Variable.get("this"))) .finish();
.initializesWith(Stmt.newObject(mapStringAnnoComp)).finish();