final JavaSymbolName methodName = new JavaSymbolName("show"); parameterTypes.add(new AnnotatedJavaType(entity, ANN_MODEL_ATTRIBUTE)); parameterNames.add(new JavaSymbolName(entityItemName)); AnnotatedJavaType.convertFromAnnotatedJavaTypes(parameterTypes)); if (existingMethod != null) { return existingMethod; AnnotationMetadataBuilder getMappingAnnotation = new AnnotationMetadataBuilder(GET_MAPPING); getMappingAnnotation.addStringAttribute("name", methodName.getSymbolName()); annotations.add(getMappingAnnotation); InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder(); bodyBuilder.appendFormalLine("return %s.ok(%s);", getNameOfJavaType(RESPONSE_ENTITY), entityItemName); new MethodMetadataBuilder(getId(), Modifier.PUBLIC, methodName, JavaType.wrapperWilcard(RESPONSE_ENTITY), parameterTypes, parameterNames, bodyBuilder); methodBuilder.setAnnotations(annotations); return methodBuilder.build();
new JavaSymbolName("get" + StringUtils.capitalize(pathVariable)); serviceMetadata.getCurrentFindOneMethod().getParameterTypes().get(0).getJavaType(); final JavaSymbolName idName = serviceMetadata.getCurrentFindOneMethod().getParameterNames().get(0); final JavaType entityType = serviceMetadata.getCurrentFindOneMethod().getReturnType(); new AnnotationMetadataBuilder(SpringJavaType.PATH_VARIABLE); pathVariableAnnotation.addStringAttribute("value", StringUtils.uncapitalize(pathVariable)); parameterTypes.add(new AnnotatedJavaType(idType, pathVariableAnnotation.build())); AnnotatedJavaType.convertFromAnnotatedJavaTypes(parameterTypes)); if (existingMethod != null) { return existingMethod; InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder(); bodyBuilder.appendFormalLine("%s %s = %s.%s(%s);", getNameOfJavaType(entityType), pathVariable, serviceField.getFieldName(), serviceMetadata.getCurrentFindOneMethod().getMethodName(), idName); new MethodMetadataBuilder(getId(), Modifier.PUBLIC, methodName, entityType, parameterTypes, parameterNames, bodyBuilder); methodBuilder.addAnnotation(ANN_MODEL_ATTRIBUTE); return methodBuilder.build();
for (AnnotatedJavaType type : seiMethod.getParameterTypes()) { parameters.add(type.getJavaType()); new MethodMetadataBuilder(getId(), Modifier.PUBLIC, seiMethod.getMethodName(), seiMethod.getReturnType(), AnnotatedJavaType.convertFromJavaTypes(parameters), seiMethod.getParameterNames(), null); InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder(); for (JavaSymbolName param : seiMethod.getParameterNames()) { parametersList = parametersList.concat(param.getSymbolName()).concat(", "); bodyBuilder.appendFormalLine("%s%s().%s(%s);", seiMethod.getReturnType() != JavaType.VOID_PRIMITIVE ? "return " : "", getAccessorMethod(getServiceField()).getMethodName(), serviceMethod.getMethodName() .getSymbolName(), parametersList); endpointMethod.setBodyBuilder(bodyBuilder); endpointMethods.add(endpointMethod.build());
private MethodMetadata getSaveMethod(JavaType entity) { // Define method parameter type and name List<AnnotatedJavaType> parameterTypes = new ArrayList<AnnotatedJavaType>(); List<JavaSymbolName> parameterNames = new ArrayList<JavaSymbolName>(); parameterTypes.add(AnnotatedJavaType.convertFromJavaType(entity)); parameterNames.add(new JavaSymbolName(StringUtils.uncapitalize(entity.getSimpleTypeName()))); MethodMetadata existingMethod = getGovernorMethod(SAVE_METHOD_NAME, AnnotatedJavaType.convertFromAnnotatedJavaTypes(parameterTypes)); if (existingMethod != null) { return existingMethod; } // Use the MethodMetadataBuilder for easy creation of MethodMetadata return new MethodMetadataBuilder(getId(), Modifier.PUBLIC + Modifier.ABSTRACT, SAVE_METHOD_NAME, entity, parameterTypes, parameterNames, null).build(); }
JavaSymbolName methodName = new JavaSymbolName("validate"); parameterTypes.add(AnnotatedJavaType.convertFromJavaType(entity)); parameterNames.add(new JavaSymbolName(entity.getSimpleTypeName().toLowerCase())); AnnotatedJavaType.convertFromAnnotatedJavaTypes(parameterTypes)); if (existingMethod != null) { return existingMethod; .mapOf(JavaType.STRING, JavaType.listOf(SpringletsJavaType.SPRINGLETS_MESSAGE_I18N)); InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder(); bodyBuilder.appendFormalLine( "Map<String, List<MessageI18n>> messages = new %s<String, List<MessageI18n>>();", JavaType.HASH_MAP); bodyBuilder.appendFormalLine(""); bodyBuilder.appendFormalLine("// TODO: IMPLEMENT HERE THE VALIDATION OF YOUR ENTITY"); bodyBuilder.appendFormalLine(""); new MethodMetadataBuilder(getId(), Modifier.PUBLIC, methodName, returnType, parameterTypes, parameterNames, bodyBuilder); return methodBuilder.build(); // Build and return a MethodMetadata
JavaSymbolName methodName = new JavaSymbolName("addInterceptors"); parameterTypes.add(AnnotatedJavaType.convertFromJavaType(new JavaType( "org.springframework.web.servlet.config.annotation.InterceptorRegistry"))); parameterNames.add(new JavaSymbolName("registry")); AnnotatedJavaType.convertFromAnnotatedJavaTypes(parameterTypes))) { return getGovernorMethod(methodName, AnnotatedJavaType.convertFromAnnotatedJavaTypes(parameterTypes)); InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder(); bodyBuilder.appendFormalLine("registry.addInterceptor(localeChangeInterceptor());"); bodyBuilder.appendFormalLine("registry.addInterceptor(new %s());", getNameOfJavaType(TRACEE_INTERCEPTOR_JAVATYPE)); new MethodMetadataBuilder(getId(), Modifier.PUBLIC, methodName, JavaType.VOID_PRIMITIVE, parameterTypes, parameterNames, bodyBuilder); methodBuilder.addAnnotation(new AnnotationMetadataBuilder(JavaType.OVERRIDE)); return methodBuilder.build(); // Build and return a MethodMetadata
new JavaSymbolName("init" + entity.getSimpleTypeName() + "Binder"); parameterTypes.add(AnnotatedJavaType.convertFromJavaType(SpringJavaType.WEB_DATA_BINDER)); List<JavaSymbolName> parameterNames = new ArrayList<JavaSymbolName>(); parameterNames.add(new JavaSymbolName("binder")); AnnotatedJavaType.convertFromAnnotatedJavaTypes(parameterTypes)); if (existingMethod != null) { return existingMethod; InvocableMemberBodyBuilder body = new InvocableMemberBodyBuilder(); body.appendFormalLine("binder.setDisallowedFields(\"%s\");", entityIdentifier); body.appendFormalLine("binder.setDisallowedFields(\"%s.%s\");", item.getKey().fieldName, item .getValue().getCurrentIndentifierField().getFieldName()); new MethodMetadataBuilder(getId(), Modifier.PUBLIC, methodName, JavaType.VOID_PRIMITIVE, parameterTypes, parameterNames, body); AnnotationMetadataBuilder getInitBinderAnnotation = new AnnotationMetadataBuilder(INIT_BINDER); getInitBinderAnnotation.addStringAttribute("value", StringUtils.uncapitalize(entity.getSimpleTypeName())); annotations.add(getInitBinderAnnotation); methodBuilder.setAnnotations(annotations); return methodBuilder.build();
new JavaSymbolName(JpaEntityFactoryMetadata.SPECIFIC_METHOD_PREFIX + this.entity.getSimpleTypeName()); final JavaType parameterType = JavaType.INT_PRIMITIVE; final List<JavaSymbolName> parameterNames = Arrays.asList(INDEX_SYMBOL); Validate.isTrue(userMethod.getReturnType().equals(this.entity), "Method '%s on '%s' must return '%s'", methodName, this.destination, this.entity.getSimpleTypeName()); this.specificEntityMethod = userMethod; return userMethod; final InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder(); bodyBuilder.appendFormalLine("init();"); bodyBuilder.appendFormalLine("if (" + INDEX_VAR + " < 0) {"); bodyBuilder.indent(); bodyBuilder.appendFormalLine(INDEX_VAR + " = 0;"); new MethodMetadataBuilder(getId(), Modifier.PUBLIC, methodName, this.entity, AnnotatedJavaType.convertFromJavaTypes(parameterType), parameterNames, bodyBuilder); "%1$s the specific {@link %1$s}", this.entity.getSimpleTypeName()), null); comment.addComment(javadocComment, CommentLocation.BEGINNING); methodBuilder.setCommentStructure(comment); this.specificEntityMethod = methodBuilder.build(); return this.specificEntityMethod;
JavaSymbolName methodName = method.getMethodName(); List<AnnotatedJavaType> parameterTypes = method.getParameterTypes(); List<JavaSymbolName> parameterNames = method.getParameterNames(); AnnotatedJavaType.convertFromAnnotatedJavaTypes(parameterTypes)); if (existingMethod != null) { return existingMethod; InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder(); String entity = this.entity.getSimpleTypeName(); String entityVariable = StringUtils.uncapitalize(entity); JavaType finderParamType = parameterTypes.get(0).getJavaType(); String finderParamName = parameterNames.get(0).getSymbolName(); bodyBuilder.newLine(); bodyBuilder.appendFormalLine(String.format("%1$s %2$s = %1$s.%2$s;", getNameOfJavaType(entityQtype), entityVariable)); bodyBuilder.newLine(); new MethodMetadataBuilder(getId(), Modifier.PUBLIC, methodName, method.getReturnType(), parameterTypes, parameterNames, bodyBuilder); return methodBuilder.build();
final JavaType entity = info.childType; parameterTypes.add(new AnnotatedJavaType(parentEntity, ANN_METADATA_MODEL_ATTRIBUTE)); AnnotatedJavaType.convertFromAnnotatedJavaTypes(parameterTypes)); if (existingMethod != null) { return existingMethod; String parentEntityParamName = StringUtils.uncapitalize(parentEntity.getSimpleTypeName()); parameterNames.add(new JavaSymbolName(parentEntityParamName)); parameterNames.add(MODEL_PARAM_NAME); AnnotationMetadataBuilder getMapping = new AnnotationMetadataBuilder(GET_MAPPING); getMapping.addStringAttribute("value", "/create-form"); getMapping.addStringAttribute("name", methodName.getSymbolName()); annotations.add(getMapping); this.mvcMethodNames.put(methodName.getSymbolName(), methodName.getSymbolName()); InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder(); new MethodMetadataBuilder(getId(), Modifier.PUBLIC, methodName, SpringJavaType.MODEL_AND_VIEW, parameterTypes, parameterNames, bodyBuilder); methodBuilder.setAnnotations(annotations); return methodBuilder.build();
final JavaSymbolName methodName = new JavaSymbolName("init"); final JavaType[] parameterTypes = {}; final List<JavaSymbolName> parameterNames = Collections.<JavaSymbolName>emptyList(); Validate.isTrue(userMethod.getReturnType().equals(returnType), "Method '%s' on '%s' must return '%s'", methodName, destination, returnType.getNameIncludingTypeParameters()); return new MethodMetadataBuilder(userMethod); final InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder(); bodyBuilder.appendFormalLine("int from = 0;"); bodyBuilder.appendFormalLine("int to = " + quantity + ";"); bodyBuilder.appendFormalLine("%s cb = %s().getCriteriaBuilder();", getNameOfJavaType(JpaJavaType.CRITERIA_BUILDER), getAccessorMethod(getEntityManagerField().build()).getMethodName()); bodyBuilder.indent(); bodyBuilder.appendFormalLine("%s().createQuery(all).setFirstResult(from).setMaxResults(to);", getAccessorMethod(getEntityManagerField().build()).getMethodName()); new MethodMetadataBuilder(getId(), Modifier.PUBLIC, methodName, returnType, AnnotatedJavaType.convertFromJavaTypes(parameterTypes), parameterNames, bodyBuilder); new JavadocComment("Creates the initial list of generated entities."); comment.addComment(javadocComment, CommentLocation.BEGINNING); methodBuilder.setCommentStructure(comment);
final InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder(); final String fieldName = field.getFieldName().getSymbolName(); final JavaType fieldType = field.getFieldType(); builder.getImportRegistrationResolver().addImport(fieldType); final String initializer = getFieldInitializer(field, null, dataOnDemandClasses); bodyBuilder.append(getFieldValidationBody(field, initializer, null, true)); sb.append(fieldName); bodyBuilder.appendFormalLine(""); bodyBuilder.appendFormalLine(embeddedIdFieldType.getSimpleTypeName() + " embeddedIdClass = new " + embeddedIdFieldType.getSimpleTypeName() + "(" + sb.toString() + ");"); bodyBuilder.appendFormalLine(OBJ_VAR + "." + embeddedIdMutator + "(embeddedIdClass);"); return new MethodMetadataBuilder(getId(), Modifier.PUBLIC, methodName, JavaType.VOID_PRIMITIVE, AnnotatedJavaType.convertFromJavaTypes(parameterTypes), parameterNames, bodyBuilder);
private void createReceiverJmsService(JavaType service, String destinationProperty) { getPathResolver().getCanonicalPath(service.getModule(), Path.SRC_MAIN_JAVA, service); final String mid = PhysicalTypeIdentifier.createIdentifier(service, new AnnotationMetadataBuilder(SpringJavaType.SERVICE); cidBuilder.addAnnotation(serviceAnnotation); final JavaSymbolName methodName = new JavaSymbolName("receiveJmsMessage"); parameterTypes.add(new AnnotatedJavaType(JavaType.STRING)); parameterNames.add(new JavaSymbolName("msg")); new AnnotationMetadataBuilder(SpringJavaType.JMS_LISTENER); jmsListenerAnnotation.addStringAttribute("destination", "${".concat(destinationProperty) .concat("}")); annotations.add(jmsListenerAnnotation); InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder(); bodyBuilder.newLine(); bodyBuilder.appendFormalLine(" // To be implemented"); new MethodMetadataBuilder(mid, Modifier.PUBLIC, methodName, JavaType.VOID_PRIMITIVE, parameterTypes, parameterNames, bodyBuilder); methodBuilder.setAnnotations(annotations);
for (final AnnotationMetadata parameterAnnotation : methodParameter.getAnnotations()) { JavaParserAnnotationMetadataBuilder.addAnnotationToList(compilationUnitServices, parameterAnnotations, parameterAnnotation); if (methodParameter.getJavaType().isPrimitive()) { parameterType = JavaParserUtils.getType(methodParameter.getJavaType()); if (methodParameter.getJavaType().isArray()) { final ReferenceType rt = new ReferenceType(); rt.setArrayCount(methodParameter.getJavaType().getArray()); rt.setType(parameterType); parameterType = rt; final NameExpr type = JavaParserUtils.importTypeIfRequired(compilationUnitServices.getEnclosingTypeName(), compilationUnitServices.getImports(), methodParameter.getJavaType()); final ClassOrInterfaceType cit = JavaParserUtils.getClassOrInterfaceType(type); if (methodParameter.getJavaType().getParameters().size() > 0) { final List<Type> typeArgs = new ArrayList<Type>(); cit.setTypeArgs(typeArgs); for (final JavaType parameter : methodParameter.getJavaType().getParameters()) { typeArgs.add(JavaParserUtils.importParametersForType( compilationUnitServices.getEnclosingTypeName(), if (methodParameter.getJavaType().isArray()) { final ReferenceType rt = new ReferenceType(); rt.setArrayCount(methodParameter.getJavaType().getArray()); rt.setType(cit);
private MethodMetadata getAccessibilityMethod() { final JavaSymbolName methodName = new JavaSymbolName("accessibility"); parameterTypes.add(AnnotatedJavaType.convertFromJavaType(SpringJavaType.MODEL)); parameterNames.add(new JavaSymbolName("model")); AnnotatedJavaType.convertFromAnnotatedJavaTypes(parameterTypes)); if (existingMethod != null) { return existingMethod; new AnnotationMetadataBuilder(SpringJavaType.GET_MAPPING); getMapping.addStringAttribute("value", "/accessibility"); annotations.add(getMapping); InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder(); bodyBuilder.appendFormalLine( "model.addAttribute(\"application_locale\", %s.getLocale().getLanguage());", getNameOfJavaType(SpringJavaType.LOCALE_CONTEXT_HOLDER)); bodyBuilder.appendFormalLine("return \"accessibility\";"); new MethodMetadataBuilder(getId(), Modifier.PUBLIC, methodName, JavaType.STRING, parameterTypes, parameterNames, bodyBuilder); methodBuilder.setAnnotations(annotations); return methodBuilder.build();
final JavaSymbolName methodName = new JavaSymbolName("populateForm"); parameterTypes.add(AnnotatedJavaType.convertFromJavaType(SpringJavaType.MODEL)); AnnotatedJavaType.convertFromAnnotatedJavaTypes(parameterTypes)); if (existingMethod != null) { return existingMethod; InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder(); bodyBuilder.appendFormalLine("%s(model);", populateFormatsMethod.getMethodName()); new MethodMetadataBuilder(getId(), Modifier.PUBLIC, methodName, JavaType.VOID_PRIMITIVE, parameterTypes, parameterNames, bodyBuilder); methodBuilder.setAnnotations(annotations); return methodBuilder.build();
private MethodMetadata getMethodAddRemoveRel(MethodMetadata methodToBeImplemented, RelationInfo relationInfo, MethodMetadata operationMethod) { InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder(); final String operation = operationMethod.getMethodName().getSymbolName(); final JavaSymbolName param0 = methodToBeImplemented.getParameterNames().get(0); final JavaType childType = relationInfo.childType; final FieldMetadata childServideField = requiredServiceFieldByEntity.get(childType); final String parentFieldName = relationInfo.fieldName; final JavaSymbolName param1 = methodToBeImplemented.getParameterNames().get(1); final JavaType param1TypeWrapped = methodToBeImplemented.getParameterTypes().get(1).getJavaType().getParameters().get(0); final String saveMethod = serviceMetadata.getCurrentSaveMethod().getMethodName().getSymbolName(); if (childType.equals(param1TypeWrapped)) { childListVariable = param1.getSymbolName(); } else { bodyBuilder.appendFormalLine("%s<%s> %s = %s().findAll(%s);", getNameOfJavaType(JavaType.LIST), getNameOfJavaType(childType), parentFieldName, getAccessorMethod(childServideField).getMethodName(), param1); bodyBuilder.appendFormalLine("%s.%s(%s);", param0, operation, childListVariable);
final List<JavaSymbolName> parameterNames = new ArrayList<JavaSymbolName>(1); if (cardinality != Cardinality.ONE_TO_ONE) { parameterTypes.add(JavaType.iterableOf(childType)); parameterNames.add(new JavaSymbolName(field.getFieldName().getSymbolName() + REMOVE_PARAMETER_SUFFIX)); final InvocableMemberBodyBuilder builder = new InvocableMemberBodyBuilder(); return new MethodMetadataBuilder(getId(), Modifier.PUBLIC, removeMethodName, JavaType.VOID_PRIMITIVE, AnnotatedJavaType.convertFromJavaTypes(parameterTypes), parameterNames, builder).build();
private MethodMetadata getRemoveFromRelationMethod(RelationInfo relationInfo) { final MethodMetadata entityRemoveMethod = relationInfo.removeMethod; JavaSymbolName methodName = entityRemoveMethod.getMethodName(); parameterTypes.add(AnnotatedJavaType.convertFromJavaType(entity)); parameterNames.add(new JavaSymbolName(StringUtils.uncapitalize(entity.getSimpleTypeName()))); parameterTypes.add(AnnotatedJavaType.convertFromJavaType(JavaType .iterableOf(childEntityMetadata.getCurrentIndentifierField().getFieldType()))); parameterNames.add(entityRemoveMethod.getParameterNames().get(0)); AnnotatedJavaType.convertFromAnnotatedJavaTypes(parameterTypes)); if (existingMethod != null) { return existingMethod; new MethodMetadataBuilder(getId(), Modifier.PUBLIC + Modifier.ABSTRACT, methodName, entity, parameterTypes, parameterNames, null); return methodBuilder.build(); // Build and return a MethodMetadata
/** * Builds a method which returns the class of entity JavaType. * * @return MethodMetadataBuilder */ private MethodMetadata getEntityTypeGetterMethod() { List<JavaSymbolName> parameterNames = new ArrayList<JavaSymbolName>(); List<AnnotatedJavaType> parameterTypes = new ArrayList<AnnotatedJavaType>(); MethodMetadata existingMethod = getGovernorMethod(GET_ENTITY_TYPE_METHOD_NAME, AnnotatedJavaType.convertFromAnnotatedJavaTypes(parameterTypes)); if (existingMethod != null) { return existingMethod; } InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder(); // return ENTITY_TYPE.class; bodyBuilder.appendFormalLine("return %s.class;", this.entity.getNameIncludingTypeParameters(false, importResolver)); // Use the MethodMetadataBuilder for easy creation of MethodMetadata MethodMetadataBuilder methodBuilder = new MethodMetadataBuilder(getId(), Modifier.PUBLIC, GET_ENTITY_TYPE_METHOD_NAME, JavaType.wrapperOf(JavaType.CLASS, this.entity), parameterTypes, parameterNames, bodyBuilder); // Build and return a MethodMetadata instance return methodBuilder.build(); }