private ConstructorMetadata getConstructor() { // Getting MessageSource field name final String messageSource = String.valueOf(this.messageSourceField.getFieldName()); // Generating constructor ConstructorMetadataBuilder constructor = new ConstructorMetadataBuilder(getId()); constructor.setModifier(Modifier.PUBLIC); constructor.addAnnotation(new AnnotationMetadataBuilder(SpringJavaType.AUTOWIRED)); // Adding parameters constructor.addParameter(messageSource, SpringJavaType.MESSAGE_SOURCE); // Generating body InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder(); bodyBuilder.appendFormalLine(String.format("this.%s = %s;", messageSource, messageSource)); // Adding body constructor.setBodyBuilder(bodyBuilder); return constructor.build(); }
final ConstructorMetadataBuilder constructorBuilder = new ConstructorMetadataBuilder(getId()); constructorBuilder.setModifier(Modifier.PUBLIC); constructorBuilder.setParameterTypes(AnnotatedJavaType.convertFromJavaTypes(parameterTypes)); constructorBuilder.setParameterNames(parameterNames); constructorBuilder.setBodyBuilder(bodyBuilder); return constructorBuilder;
@Override public ConstructorMetadata build() { final ConstructorMetadataBuilder constructorBuilder = new ConstructorMetadataBuilder(declaredByMetadataId); constructorBuilder.setAnnotations(annotations); constructorBuilder.setBodyBuilder(InvocableMemberBodyBuilder.getInstance().append(body)); constructorBuilder.setModifier(modifier); constructorBuilder.setParameterNames(parameterNames); constructorBuilder.setParameterTypes(parameterTypes); constructorBuilder.setThrowsTypes(throwsTypes); return constructorBuilder.build(); } }
public final boolean addConstructor(final ConstructorMetadataBuilder constructorBuilder) { // If received constructor builder is null, return false if (constructorBuilder == null) { return false; } else if (!getDeclaredByMetadataId().equals(constructorBuilder.getDeclaredByMetadataId())) { // Generating new constructor using delcaredMetadataId ConstructorMetadataBuilder updatedConstructorBuilder = new ConstructorMetadataBuilder(getDeclaredByMetadataId(), constructorBuilder.build()); onAddConstructor(updatedConstructorBuilder); return declaredConstructors.add(updatedConstructorBuilder); } onAddConstructor(constructorBuilder); return declaredConstructors.add(constructorBuilder); }
public static ConstructorMetadata getConstructor(String declaredByMetadataId, FieldMetadata serviceField, FieldMetadata conversionServiceField) { InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder(); // Generating constructor ConstructorMetadataBuilder constructor = new ConstructorMetadataBuilder(declaredByMetadataId); constructor.setModifier(Modifier.PUBLIC); constructor.addAnnotation(new AnnotationMetadataBuilder(SpringJavaType.AUTOWIRED)); // add Service to constructor String serviceFieldName = serviceField.getFieldName().getSymbolName(); AnnotatedJavaType serviceParameter = new AnnotatedJavaType(serviceField.getFieldType(), new AnnotationMetadataBuilder( SpringJavaType.LAZY).build()); constructor.addParameterName(serviceField.getFieldName()); constructor.addParameterType(serviceParameter); // Generating body bodyBuilder.appendFormalLine("this.%1$s = %1$s;", serviceFieldName); // add Conversion service to constructor String conversionServiceFieldName = conversionServiceField.getFieldName().getSymbolName(); constructor.addParameter(conversionServiceFieldName, conversionServiceField.getFieldType()); // Generating body bodyBuilder.appendFormalLine("this.%1$s = %1$s;", conversionServiceFieldName); // Adding body constructor.setBodyBuilder(bodyBuilder); return constructor.build(); }
public final boolean addConstructor(final ConstructorMetadata constructor) { if (constructor == null) { return false; } return addConstructor(new ConstructorMetadataBuilder(constructor)); }
/** * {@inheritDoc} */ public void loadFaultConstructorDeclaration(String declaredByMetadataId, WSCompilationUnit compilationUnitServices, List<ConstructorMetadata> constructorMetadataList, BodyDeclaration bodyDeclaration) { ConstructorMetadata constructorMetadata; ConstructorDeclaration constructorDeclaration = (ConstructorDeclaration) bodyDeclaration; constructorMetadata = JavaParserConstructorMetadataBuilder.getInstance( declaredByMetadataId, constructorDeclaration, compilationUnitServices, new HashSet<JavaSymbolName>()).build(); ConstructorMetadataBuilder constructorMetadataBuilder = new ConstructorMetadataBuilder( declaredByMetadataId, constructorMetadata); constructorMetadata = constructorMetadataBuilder.build(); constructorMetadataList.add(constructorMetadata); }
/** * Adds a field to constructor parameters and body * * @param bodyBuilder * @param constructorBuilder * @param field * @param lazy */ private void addFieldToConstructor(final InvocableMemberBodyBuilder bodyBuilder, final ConstructorMetadataBuilder constructorBuilder, final FieldMetadata field, final boolean lazy) { final String fieldName = field.getFieldName().getSymbolName(); final JavaType fieldType = field.getFieldType(); if (lazy) { importResolver.addImport(SpringJavaType.LAZY); constructorBuilder.addParameterName(field.getFieldName()); constructorBuilder.addParameterType(new AnnotatedJavaType(fieldType, LAZY_ANNOTATION)); } else { constructorBuilder.addParameter(fieldName, fieldType); } bodyBuilder.appendFormalLine(String.format("%s(" + fieldName + ");", getMutatorMethod(field) .getMethodName())); }
public final List<ConstructorMetadata> buildConstructors() { final List<ConstructorMetadata> result = new ArrayList<ConstructorMetadata>(); for (final ConstructorMetadataBuilder builder : declaredConstructors) { result.add(builder.build()); } return result; }
bodyBuilder.appendFormalLine("super();"); final ConstructorMetadataBuilder constructorBuilder = new ConstructorMetadataBuilder(getId()); constructorBuilder.setModifier(publicNoArgConstructor ? Modifier.PUBLIC : Modifier.PRIVATE); constructorBuilder.setParameterTypes(AnnotatedJavaType.convertFromJavaTypes(parameterTypes)); constructorBuilder.setBodyBuilder(bodyBuilder); return constructorBuilder;
ConstructorMetadataBuilder builder = new ConstructorMetadataBuilder( context.getMetadataId()); builder.setParameterTypes(parameterTypes); builder.setParameterNames(parameterNames); builder.setModifier(Modifier.PUBLIC); builder.setAnnotations(annotations); builder.setThrowsTypes(throwsTypes); builder.setBodyBuilder(body); return builder.build(); // Build and return a MethodMetadata
private ConstructorMetadata addAndGetConstructor(ConstructorMetadata constructor) { ensureGovernorHasConstructor(new ConstructorMetadataBuilder(constructor)); return constructor; }
public final boolean addConstructor(final ConstructorMetadataBuilder constructorBuilder) { // If received constructor builder is null, return false if (constructorBuilder == null) { return false; } else if (!getDeclaredByMetadataId().equals(constructorBuilder.getDeclaredByMetadataId())) { // Generating new constructor using delcaredMetadataId ConstructorMetadataBuilder updatedConstructorBuilder = new ConstructorMetadataBuilder(getDeclaredByMetadataId(), constructorBuilder.build()); onAddConstructor(updatedConstructorBuilder); return declaredConstructors.add(updatedConstructorBuilder); } onAddConstructor(constructorBuilder); return declaredConstructors.add(constructorBuilder); }
public final List<ConstructorMetadata> buildConstructors() { final List<ConstructorMetadata> result = new ArrayList<ConstructorMetadata>(); for (final ConstructorMetadataBuilder builder : declaredConstructors) { result.add(builder.build()); } return result; }
private ConstructorMetadata getConstructor() { InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder(); // Generating constructor ConstructorMetadataBuilder constructor = new ConstructorMetadataBuilder(getId()); constructor.setModifier(Modifier.PUBLIC); bodyBuilder.appendFormalLine("// Mixin registration"); bodyBuilder.newLine(); // Generating body for (Entry<JavaType, JavaType> item : mixins.entrySet()) { bodyBuilder.appendFormalLine("setMixInAnnotation(%s.class, %s.class);", getNameOfJavaType(item.getKey()), getNameOfJavaType(item.getValue())); } // Adding body constructor.setBodyBuilder(bodyBuilder); return constructor.build(); }
private void init(final MemberHoldingTypeDetails existing) { for (final ConstructorMetadata element : existing.getDeclaredConstructors()) { declaredConstructors.add(new ConstructorMetadataBuilder(element)); } for (final FieldMetadata element : existing.getDeclaredFields()) { declaredFields.add(new FieldMetadataBuilder(element)); } for (final MethodMetadata element : existing.getDeclaredMethods()) { declaredMethods.add(new MethodMetadataBuilder(element)); } for (final ClassOrInterfaceTypeDetails element : existing.getDeclaredInnerTypes()) { declaredInnerTypes.add(new ClassOrInterfaceTypeDetailsBuilder(element)); } for (final InitializerMetadata element : existing.getDeclaredInitializers()) { declaredInitializers.add(new InitializerMetadataBuilder(element)); } extendsTypes.addAll(existing.getExtendsTypes()); implementsTypes.addAll(existing.getImplementsTypes()); }
/** * Method that generates Service implementation constructor. If exists a * repository, it will be included as constructor parameter * * @param autowired add or not autowired annotation * * @return */ private ConstructorMetadataBuilder getConstructor(boolean autowired) { ConstructorMetadataBuilder constructorBuilder = new ConstructorMetadataBuilder(getId()); InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder(); // Append repository parameter if needed if (repositoryFieldMetadata != null) { addFieldToConstructor(bodyBuilder, constructorBuilder, repositoryFieldMetadata, false); } for (FieldMetadata requiredService : requiredServiceFieldByEntity.values()) { addFieldToConstructor(bodyBuilder, constructorBuilder, requiredService, true); } constructorBuilder.setBodyBuilder(bodyBuilder); constructorBuilder.setModifier(Modifier.PUBLIC); if (autowired) { // Adding @Autowired annotation constructorBuilder.addAnnotation(new AnnotationMetadataBuilder(SpringJavaType.AUTOWIRED)); } return constructorBuilder; }
new ConstructorMetadataBuilder(declaredByMetadataId); constructorBuilder.setModifier(Modifier.PUBLIC); constructorBuilder.setParameterTypes(AnnotatedJavaType.convertFromJavaTypes(parameterTypes)); constructorBuilder.setParameterNames(parameterNames); constructorBuilder.setBodyBuilder(bodyBuilder);
/** * Constructor * * @param identifier the identifier for this item of metadata (required) * @param aspectName the Java type of the ITD (required) * @param governorPhysicalTypeMetadata the governor, which is expected to * contain a {@link ClassOrInterfaceTypeDetails} (required) * */ public DomainModelModuleMetadata(final String identifier, final JavaType aspectName, final PhysicalTypeMetadata governorPhysicalTypeMetadata, final Map<JavaType, JavaType> mixins) { super(identifier, aspectName, governorPhysicalTypeMetadata); Map<JavaType, JavaType> orderedMixins = new TreeMap<JavaType, JavaType>(mixins); this.mixins = Collections.unmodifiableMap(orderedMixins); // Add @Configuration ensureGovernorIsAnnotated(new AnnotationMetadataBuilder(BOOT_JACKSON_JSON_COMPONENT)); // Add extends WebMvcConfigurerAdapter ensureGovernorExtends(JACKSON_SIMPLE_MODULE); // Add constructor ensureGovernorHasConstructor(new ConstructorMetadataBuilder(getConstructor())); // Build the ITD itdTypeDetails = builder.build(); }
/** * Builds and returns a class constructor which injects * {@link EntityManager} field. * * @return a ConstructorMetadataBuilder to add to ITD. */ private ConstructorMetadataBuilder getConstructor() { // Create instance and add parameters ConstructorMetadataBuilder constructorBuilder = new ConstructorMetadataBuilder(this.getId()); constructorBuilder.addParameter(ENTITY_MANAGER_FIELD_NAME, JpaJavaType.ENTITY_MANAGER); // Add body InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder(); bodyBuilder.appendFormalLine("%1$s(%2$s);", getMutatorMethod(getEntityManagerField().build()) .getMethodName(), ENTITY_MANAGER_FIELD_NAME); constructorBuilder.setBodyBuilder(bodyBuilder); constructorBuilder.setModifier(Modifier.PUBLIC); // Add @Autowired constructorBuilder.addAnnotation(new AnnotationMetadataBuilder(SpringJavaType.AUTOWIRED)); return constructorBuilder; }