/** * 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())); }
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(); }
/** * Builds constructor with EntityManager argument. * * @return ConstructorMetadataBuilder for adding constructor to ITD */ private ConstructorMetadataBuilder getConstructorWithEntityManager() { ConstructorMetadataBuilder constructorBuilder = new ConstructorMetadataBuilder(getId()); InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder(); constructorBuilder.addParameter(ENTITY_MANAGER_VAR, JpaJavaType.ENTITY_MANAGER); // this(entityManager, 10); bodyBuilder.appendFormalLine(String.format("this(%1$s, 10);", ENTITY_MANAGER_VAR)); constructorBuilder.setModifier(Modifier.PUBLIC); constructorBuilder.setBodyBuilder(bodyBuilder); CommentStructure comment = new CommentStructure(); List<String> paramsInfo = new ArrayList<String>(); paramsInfo.add(ENTITY_MANAGER_VAR + " to persist entities"); JavadocComment javadocComment = new JavadocComment(String.format("Creates a new {@link %s}.", this.governorPhysicalTypeMetadata.getType().getSimpleTypeName()), paramsInfo, null, null); comment.addComment(javadocComment, CommentLocation.BEGINNING); constructorBuilder.setCommentStructure(comment); return 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(); }
/** * Builds constructor with EntityManager and size arguments. * * @return {@link ConstructorMetadataBuilder} for adding constructor to ITD */ private ConstructorMetadataBuilder getConstructorWithEntityManagerAndSize() { ConstructorMetadataBuilder constructorBuilder = new ConstructorMetadataBuilder(getId()); InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder(); constructorBuilder.addParameter(ENTITY_MANAGER_VAR, JpaJavaType.ENTITY_MANAGER); constructorBuilder.addParameter(SIZE_VAR, JavaType.INT_PRIMITIVE); bodyBuilder.appendFormalLine(String.format("%1$s(%2$s);", getMutatorMethod(getEntityManagerField().build()).getMethodName(), ENTITY_MANAGER_VAR)); bodyBuilder.appendFormalLine(String.format("%1$s(%2$s);", getMutatorMethod(getSizeField()) .getMethodName(), SIZE_VAR)); constructorBuilder.setModifier(Modifier.PUBLIC); constructorBuilder.setBodyBuilder(bodyBuilder); CommentStructure comment = new CommentStructure(); List<String> paramsInfo = new ArrayList<String>(); paramsInfo.add(ENTITY_MANAGER_VAR + " to persist entities"); paramsInfo.add(SIZE_VAR + " the number of entities to create and persist initially."); JavadocComment javadocComment = new JavadocComment(String.format("Creates a new {@link %s}.", this.governorPhysicalTypeMetadata.getType().getSimpleTypeName()), paramsInfo, null, null); comment.addComment(javadocComment, CommentLocation.BEGINNING); constructorBuilder.setCommentStructure(comment); return constructorBuilder; }
private ConstructorMetadata getConstructor(boolean autowired) { InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder(); // Generating constructor ConstructorMetadataBuilder constructor = new ConstructorMetadataBuilder(getId()); constructor.setModifier(Modifier.PUBLIC); if (autowired) { constructor.addAnnotation(new AnnotationMetadataBuilder(SpringJavaType.AUTOWIRED)); } // Getting serviceFieldName String serviceFieldName = controllerMetadata.getServiceField().getFieldName().getSymbolName(); constructor.addParameter(serviceFieldName, controllerMetadata.getService()); // Generating body bodyBuilder .appendFormalLine(String.format("this.%s = %s;", serviceFieldName, serviceFieldName)); if (this.type == ControllerType.DETAIL || this.type == ControllerType.DETAIL_ITEM) { for (FieldMetadata serviceField : controllerMetadata.getDetailsServiceFields().values()) { // Getting parentServiceFieldName String childServiceFieldName = serviceField.getFieldName().getSymbolName(); // Adding parameters constructor.addParameter(childServiceFieldName, serviceField.getFieldType()); // Generating body bodyBuilder.appendFormalLine(String.format("this.%s = %s;", childServiceFieldName, childServiceFieldName)); } } // Adding body constructor.setBodyBuilder(bodyBuilder); return constructor.build(); }
/** * Builds constructor for initializing <code>final</code> fields. * * @return ConstructorMetadataBuilder for adding constructor to ITD */ private ConstructorMetadataBuilder getConstructor() { ConstructorMetadataBuilder constructorBuilder = new ConstructorMetadataBuilder(getId()); InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder(); for (FieldMetadata field : fields) { // Add all fields excluding Serializable field if (!field.getFieldName().equals(serialField)) { String fieldName = field.getFieldName().getSymbolName(); constructorBuilder.addParameter(fieldName, field.getFieldType()); bodyBuilder.appendFormalLine(String.format("this.%s = %s;", fieldName, fieldName)); } } constructorBuilder.setModifier(Modifier.PUBLIC); constructorBuilder.setBodyBuilder(bodyBuilder); return constructorBuilder; }
newConstructor.addParameter(serviceFieldName, controllerMetadata.getService()); bodyBuilder.appendFormalLine(String.format("%s(%s);", getMutatorMethod(controllerMetadata.getServiceField()).getMethodName(), serviceFieldName)); newConstructor.addParameter(childServiceFieldName, serviceField.getFieldType()); String conversionServiceFieldName = this.conversionServiceField.getFieldName().getSymbolName(); newConstructor.addParameter(conversionServiceFieldName, this.conversionServiceField.getFieldType()); bodyBuilder.appendFormalLine("%s(%s);", getMutatorMethod(this.getConversionServiceField()) newConstructor.addParameter(messageSourceName, messageSourceField.getFieldType()); bodyBuilder.appendFormalLine("%s(%s);", getMutatorMethod(this.messageSourceField) .getMethodName(), messageSourceName); newConstructor.addParameter(LINK_BUILDER_ARGUMENT_NAME, SpringletsJavaType.SPRINGLETS_CONTROLLER_METHOD_LINK_BUILDER_FACTORY); this.builder.getImportRegistrationResolver().addImport(
/** * Builds constructor for initializing <code>final</code> fields. * * @return ConstructorMetadataBuilder for adding constructor to ITD */ private ConstructorMetadataBuilder getConstructor() { ConstructorMetadataBuilder constructorBuilder = new ConstructorMetadataBuilder(getId()); InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder(); if (annotationValues.getImmutable() == true) { for (FieldMetadata field : fields) { // Add all fields excluding Serializable field if (!field.getFieldName().equals(serialField)) { String fieldName = field.getFieldName().getSymbolName(); constructorBuilder.addParameter(fieldName, field.getFieldType()); bodyBuilder.appendFormalLine(String.format("this.%s = %s;", fieldName, fieldName)); } } } constructorBuilder.setModifier(Modifier.PUBLIC); constructorBuilder.setBodyBuilder(bodyBuilder); return constructorBuilder; }
/** * 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; }
/** * This method obtains the constructor method of the annotated endpoint * * @return constructor method for this endpoint */ private ConstructorMetadata getConstructor() { // Check if constructor has been generated before if (constructor != null) { return constructor; } // Creating new constructor ConstructorMetadataBuilder constructorMethod = new ConstructorMetadataBuilder(getId()); constructorMethod.setModifier(Modifier.PUBLIC); constructorMethod.addParameter(getServiceField().getFieldName() .getSymbolNameUnCapitalisedFirstLetter(), getServiceField().getFieldType()); // Generating constructor body InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder(); bodyBuilder.appendFormalLine("%s(%s);", getMutatorMethod(getServiceField()).getMethodName(), getServiceField().getFieldName().getSymbolNameUnCapitalisedFirstLetter()); constructorMethod.setBodyBuilder(bodyBuilder); constructor = constructorMethod.build(); return constructor; }
/** * Builds constructor with EntityManager and size arguments. * * @return {@link ConstructorMetadataBuilder} for adding constructor to ITD */ private ConstructorMetadataBuilder getConstructorWithEntityManagerAndSize() { ConstructorMetadataBuilder constructorBuilder = new ConstructorMetadataBuilder(getId()); InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder(); constructorBuilder.addParameter(ENTITY_MANAGER_VAR, JpaJavaType.ENTITY_MANAGER); constructorBuilder.addParameter(SIZE_VAR, JavaType.INT_PRIMITIVE); bodyBuilder.appendFormalLine(String.format("%1$s(%2$s);", getMutatorMethod(getEntityManagerField().build()).getMethodName(), ENTITY_MANAGER_VAR)); bodyBuilder.appendFormalLine(String.format("%1$s(%2$s);", getMutatorMethod(getSizeField()) .getMethodName(), SIZE_VAR)); constructorBuilder.setModifier(Modifier.PUBLIC); constructorBuilder.setBodyBuilder(bodyBuilder); CommentStructure comment = new CommentStructure(); List<String> paramsInfo = new ArrayList<String>(); paramsInfo.add(ENTITY_MANAGER_VAR + " to persist entities"); paramsInfo.add(SIZE_VAR + " the number of entities to create and persist initially."); JavadocComment javadocComment = new JavadocComment(String.format("Creates a new {@link %s}.", this.governorPhysicalTypeMetadata.getType().getSimpleTypeName()), paramsInfo, null, null); comment.addComment(javadocComment, CommentLocation.BEGINNING); constructorBuilder.setCommentStructure(comment); return constructorBuilder; }
/** * Builds constructor with EntityManager argument. * * @return ConstructorMetadataBuilder for adding constructor to ITD */ private ConstructorMetadataBuilder getConstructorWithEntityManager() { ConstructorMetadataBuilder constructorBuilder = new ConstructorMetadataBuilder(getId()); InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder(); constructorBuilder.addParameter(ENTITY_MANAGER_VAR, JpaJavaType.ENTITY_MANAGER); // this(entityManager, 10); bodyBuilder.appendFormalLine(String.format("this(%1$s, 10);", ENTITY_MANAGER_VAR)); constructorBuilder.setModifier(Modifier.PUBLIC); constructorBuilder.setBodyBuilder(bodyBuilder); CommentStructure comment = new CommentStructure(); List<String> paramsInfo = new ArrayList<String>(); paramsInfo.add(ENTITY_MANAGER_VAR + " to persist entities"); JavadocComment javadocComment = new JavadocComment(String.format("Creates a new {@link %s}.", this.governorPhysicalTypeMetadata.getType().getSimpleTypeName()), paramsInfo, null, null); comment.addComment(javadocComment, CommentLocation.BEGINNING); constructorBuilder.setCommentStructure(comment); return constructorBuilder; }
newConstructor.addParameter(serviceFieldName, controllerMetadata.getService()); bodyBuilder.appendFormalLine(String.format("%s(%s);", getMutatorMethod(controllerMetadata.getServiceField()).getMethodName(), serviceFieldName)); newConstructor.addParameter(childServiceFieldName, serviceField.getFieldType()); String conversionServiceFieldName = this.conversionServiceField.getFieldName().getSymbolName(); newConstructor.addParameter(conversionServiceFieldName, this.conversionServiceField.getFieldType()); bodyBuilder.appendFormalLine("%s(%s);", getMutatorMethod(this.getConversionServiceField()) newConstructor.addParameter(messageSourceName, messageSourceField.getFieldType()); bodyBuilder.appendFormalLine("%s(%s);", getMutatorMethod(this.messageSourceField) .getMethodName(), messageSourceName); newConstructor.addParameter(LINK_BUILDER_ARGUMENT_NAME, SpringletsJavaType.SPRINGLETS_CONTROLLER_METHOD_LINK_BUILDER_FACTORY); this.builder.getImportRegistrationResolver().addImport(
/** * Builds constructor for initializing <code>final</code> fields. * * @return ConstructorMetadataBuilder for adding constructor to ITD */ private ConstructorMetadataBuilder getConstructor() { ConstructorMetadataBuilder constructorBuilder = new ConstructorMetadataBuilder(getId()); InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder(); for (FieldMetadata field : fields) { // Add all fields excluding Serializable field if (!field.getFieldName().equals(serialField)) { String fieldName = field.getFieldName().getSymbolName(); constructorBuilder.addParameter(fieldName, field.getFieldType()); bodyBuilder.appendFormalLine(String.format("this.%s = %s;", fieldName, fieldName)); } } constructorBuilder.setModifier(Modifier.PUBLIC); constructorBuilder.setBodyBuilder(bodyBuilder); return constructorBuilder; }
/** * Builds constructor for initializing <code>final</code> fields. * * @return ConstructorMetadataBuilder for adding constructor to ITD */ private ConstructorMetadataBuilder getConstructor() { ConstructorMetadataBuilder constructorBuilder = new ConstructorMetadataBuilder(getId()); InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder(); if (annotationValues.getImmutable() == true) { for (FieldMetadata field : fields) { // Add all fields excluding Serializable field if (!field.getFieldName().equals(serialField)) { String fieldName = field.getFieldName().getSymbolName(); constructorBuilder.addParameter(fieldName, field.getFieldType()); bodyBuilder.appendFormalLine(String.format("this.%s = %s;", fieldName, fieldName)); } } } constructorBuilder.setModifier(Modifier.PUBLIC); constructorBuilder.setBodyBuilder(bodyBuilder); return constructorBuilder; }
/** * 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; }