/** * Converts a non-null bag of {@link JavaType}s into a {@link List} of * equivalent {@link AnnotatedJavaType}s. Note that each returned * {@link AnnotatedJavaType} will have no annotation metadata, as the input * {@link JavaType}s cannot store any such metadata. * * @param javaTypes to convert * @return the equivalent {@link AnnotatedJavaType}s (never returns null) * @since 1.2.0 */ public static List<AnnotatedJavaType> convertFromJavaTypes(final JavaType... javaTypes) { return convertFromJavaTypes(Arrays.asList(javaTypes)); }
private List<MethodMetadataBuilder> getFieldMutatorMethods() { final List<MethodMetadataBuilder> fieldMutatorMethods = new ArrayList<MethodMetadataBuilder>(); final List<JavaSymbolName> parameterNames = Arrays.asList(OBJ_SYMBOL, INDEX_SYMBOL); final JavaType[] parameterTypes = {entity, JavaType.INT_PRIMITIVE}; for (final Map.Entry<FieldMetadata, String> entry : fieldInitializers.entrySet()) { final FieldMetadata field = entry.getKey(); final JavaSymbolName mutatorName = BeanInfoUtils.getMutatorMethodName(field.getFieldName()); // Locate user-defined method if (governorHasMethod(mutatorName, parameterTypes)) { // Method found in governor so do not create method in ITD continue; } // Method not on governor so need to create it final String initializer = entry.getValue(); if (!StringUtils.isBlank(initializer)) { final InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder(); bodyBuilder.append(getFieldValidationBody(field, initializer, mutatorName, false)); fieldMutatorMethods.add(new MethodMetadataBuilder(getId(), Modifier.PUBLIC, mutatorName, JavaType.VOID_PRIMITIVE, AnnotatedJavaType.convertFromJavaTypes(parameterTypes), parameterNames, bodyBuilder)); } } return fieldMutatorMethods; }
/** * Returns a public method given the method name, return type, parameter * types, parameter names, and method body. * * @param modifier the method modifier * @param methodName the method name * @param returnType the return type * @param parameterTypes a list of parameter types * @param parameterNames a list of parameter names * @param bodyBuilder the method body * @return null if the method exists on the governor, otherwise a new method * is returned */ protected MethodMetadataBuilder getMethod(final int modifier, final JavaSymbolName methodName, final JavaType returnType, final List<JavaType> parameterTypes, final List<JavaSymbolName> parameterNames, final InvocableMemberBodyBuilder bodyBuilder) { final MethodMetadata method = getGovernorMethod(methodName, parameterTypes); if (method != null) { return null; } addToImports(parameterTypes); return new MethodMetadataBuilder(getId(), modifier, methodName, returnType, AnnotatedJavaType.convertFromJavaTypes(parameterTypes), parameterNames, bodyBuilder); }
JavaType.VOID_PRIMITIVE, AnnotatedJavaType.convertFromJavaTypes(parameterTypes), parameterNames, builder).build();
AnnotatedJavaType.convertFromJavaTypes(parameterTypes), parameterNames, bodyBuilder);
JavaType.VOID_PRIMITIVE, AnnotatedJavaType.convertFromJavaTypes(parameterTypes), parameterNames, builder).build();
seiMethod.getReturnType(), AnnotatedJavaType.convertFromJavaTypes(parameters), seiMethod.getParameterNames(), null);
BOOLEAN_PRIMITIVE, AnnotatedJavaType.convertFromJavaTypes(OBJECT), parameterNames, bodyBuilder);
new ConstructorMetadataBuilder(declaredByMetadataId); constructorBuilder.setModifier(Modifier.PUBLIC); constructorBuilder.setParameterTypes(AnnotatedJavaType.convertFromJavaTypes(parameterTypes)); constructorBuilder.setParameterNames(parameterNames); constructorBuilder.setBodyBuilder(bodyBuilder);
constructorBuilder.setParameterTypes(AnnotatedJavaType.convertFromJavaTypes(parameterTypes)); constructorBuilder.setBodyBuilder(bodyBuilder); return constructorBuilder;
constructorBuilder.setParameterTypes(AnnotatedJavaType.convertFromJavaTypes(parameterTypes)); constructorBuilder.setParameterNames(parameterNames); constructorBuilder.setBodyBuilder(bodyBuilder);
AnnotatedJavaType.convertFromJavaTypes(parameterTypes), parameterNames, bodyBuilder);
target.withoutParameters(), AnnotatedJavaType.convertFromJavaTypes(parameterType), parameterNames, bodyBuilder);
/** * Converts a non-null bag of {@link JavaType}s into a {@link List} of * equivalent {@link AnnotatedJavaType}s. Note that each returned * {@link AnnotatedJavaType} will have no annotation metadata, as the input * {@link JavaType}s cannot store any such metadata. * * @param javaTypes to convert * @return the equivalent {@link AnnotatedJavaType}s (never returns null) * @since 1.2.0 */ public static List<AnnotatedJavaType> convertFromJavaTypes(final JavaType... javaTypes) { return convertFromJavaTypes(Arrays.asList(javaTypes)); }
private void addEmbeddedClassFieldMutatorMethodsToBuilder(final EmbeddedHolder embeddedHolder, final Set<ClassOrInterfaceTypeDetails> dataOnDemandClasses) { final JavaType embeddedFieldType = embeddedHolder.getEmbeddedField().getFieldType(); final JavaType[] parameterTypes = {embeddedFieldType, JavaType.INT_PRIMITIVE}; final List<JavaSymbolName> parameterNames = Arrays.asList(OBJ_SYMBOL, INDEX_SYMBOL); for (final FieldMetadata field : embeddedHolder.getFields()) { final String initializer = getFieldInitializer(field, null, dataOnDemandClasses); final JavaSymbolName fieldMutatorMethodName = BeanInfoUtils.getMutatorMethodName(field.getFieldName()); final InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder(); bodyBuilder.append(getFieldValidationBody(field, initializer, fieldMutatorMethodName, false)); final JavaSymbolName embeddedClassMethodName = getEmbeddedFieldMutatorMethodName(embeddedHolder.getEmbeddedField().getFieldName(), field.getFieldName()); if (governorHasMethod(embeddedClassMethodName, parameterTypes)) { // Method found in governor so do not create method in ITD continue; } builder.addMethod(new MethodMetadataBuilder(getId(), Modifier.PUBLIC, embeddedClassMethodName, JavaType.VOID_PRIMITIVE, AnnotatedJavaType .convertFromJavaTypes(parameterTypes), parameterNames, bodyBuilder)); } }
AnnotatedJavaType.convertFromJavaTypes(parameterType), parameterNames, bodyBuilder);
private MethodMetadataBuilder getEmbeddedClassMutatorMethod(final EmbeddedHolder embeddedHolder) { final JavaSymbolName methodName = getEmbeddedFieldMutatorMethodName(embeddedHolder.getEmbeddedField().getFieldName()); final JavaType[] parameterTypes = {entity, JavaType.INT_PRIMITIVE}; // Locate user-defined method if (governorHasMethod(methodName, parameterTypes)) { // Method found in governor so do not create method in ITD return null; } final InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder(); // Create constructor for embedded class final JavaType embeddedFieldType = embeddedHolder.getEmbeddedField().getFieldType(); builder.getImportRegistrationResolver().addImport(embeddedFieldType); bodyBuilder.appendFormalLine(embeddedFieldType.getSimpleTypeName() + " embeddedClass = new " + embeddedFieldType.getSimpleTypeName() + "();"); for (final FieldMetadata field : embeddedHolder.getFields()) { bodyBuilder.appendFormalLine(getEmbeddedFieldMutatorMethodName( embeddedHolder.getEmbeddedField().getFieldName(), field.getFieldName()).getSymbolName() + "(embeddedClass, " + INDEX_VAR + ");"); } bodyBuilder.appendFormalLine(OBJ_VAR + "." + embeddedHolder.getEmbeddedMutatorMethodName() + "(embeddedClass);"); final List<JavaSymbolName> parameterNames = Arrays.asList(OBJ_SYMBOL, INDEX_SYMBOL); return new MethodMetadataBuilder(getId(), Modifier.PUBLIC, methodName, JavaType.VOID_PRIMITIVE, AnnotatedJavaType.convertFromJavaTypes(parameterTypes), parameterNames, bodyBuilder); }
/** * Returns a public method given the method name, return type, parameter * types, parameter names, and method body. * * @param modifier the method modifier * @param methodName the method name * @param returnType the return type * @param parameterTypes a list of parameter types * @param parameterNames a list of parameter names * @param bodyBuilder the method body * @return null if the method exists on the governor, otherwise a new method * is returned */ protected MethodMetadataBuilder getMethod(final int modifier, final JavaSymbolName methodName, final JavaType returnType, final List<JavaType> parameterTypes, final List<JavaSymbolName> parameterNames, final InvocableMemberBodyBuilder bodyBuilder) { final MethodMetadata method = getGovernorMethod(methodName, parameterTypes); if (method != null) { return null; } addToImports(parameterTypes); return new MethodMetadataBuilder(getId(), modifier, methodName, returnType, AnnotatedJavaType.convertFromJavaTypes(parameterTypes), parameterNames, bodyBuilder); }
AnnotatedJavaType.convertFromJavaTypes(parameterTypes), parameterNames, bodyBuilder);
private void addEmbeddedClassFieldMutatorMethodsToBuilder(final EmbeddedHolder embeddedHolder, final Set<ClassOrInterfaceTypeDetails> dataOnDemandClasses) { final JavaType embeddedFieldType = embeddedHolder.getEmbeddedField().getFieldType(); final JavaType[] parameterTypes = {embeddedFieldType, JavaType.INT_PRIMITIVE}; final List<JavaSymbolName> parameterNames = Arrays.asList(OBJ_SYMBOL, INDEX_SYMBOL); for (final FieldMetadata field : embeddedHolder.getFields()) { final String initializer = getFieldInitializer(field, null, dataOnDemandClasses); final JavaSymbolName fieldMutatorMethodName = BeanInfoUtils.getMutatorMethodName(field.getFieldName()); final InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder(); bodyBuilder.append(getFieldValidationBody(field, initializer, fieldMutatorMethodName, false)); final JavaSymbolName embeddedClassMethodName = getEmbeddedFieldMutatorMethodName(embeddedHolder.getEmbeddedField().getFieldName(), field.getFieldName()); if (governorHasMethod(embeddedClassMethodName, parameterTypes)) { // Method found in governor so do not create method in ITD continue; } builder.addMethod(new MethodMetadataBuilder(getId(), Modifier.PUBLIC, embeddedClassMethodName, JavaType.VOID_PRIMITIVE, AnnotatedJavaType .convertFromJavaTypes(parameterTypes), parameterNames, bodyBuilder)); } }