private JavaSymbolName getParameterNameFor(MethodMetadata method, JavaType type) { AnnotatedJavaType parameter; for (int i = 0; i < method.getParameterTypes().size(); i++) { parameter = method.getParameterTypes().get(i); if (parameter.getJavaType().equals(type)) { return method.getParameterNames().get(i); } } return null; }
/** * Method that generates findAll method for provided referenced fields on current interface * * @param countMethod * @return */ private MethodMetadata getFindAllReferencedFieldMethod(MethodMetadata method) { // Define method parameter types and parameter names List<AnnotatedJavaType> parameterTypes = new ArrayList<AnnotatedJavaType>(); List<JavaSymbolName> parameterNames = new ArrayList<JavaSymbolName>(); List<AnnotatedJavaType> methodParamTypes = method.getParameterTypes(); List<JavaSymbolName> methodParamNames = method.getParameterNames(); for (int i = 0; i < method.getParameterTypes().size(); i++) { parameterTypes.add(methodParamTypes.get(i)); parameterNames.add(methodParamNames.get(i)); } // Use the MethodMetadataBuilder for easy creation of MethodMetadata MethodMetadataBuilder methodBuilder = new MethodMetadataBuilder(getId(), Modifier.PUBLIC + Modifier.ABSTRACT, method.getMethodName(), method.getReturnType(), parameterTypes, parameterNames, null); return methodBuilder.build(); // Build and return a MethodMetadata // instance }
/** * Method that generates countByReferencedField method on current interface * * @param countMethod * @return */ private MethodMetadata getCountByReferencedFieldMethod(MethodMetadata countMethod) { // Define method parameter types and parameter names List<AnnotatedJavaType> parameterTypes = new ArrayList<AnnotatedJavaType>(); List<JavaSymbolName> parameterNames = new ArrayList<JavaSymbolName>(); List<AnnotatedJavaType> methodParamTypes = countMethod.getParameterTypes(); List<JavaSymbolName> methodParamNames = countMethod.getParameterNames(); for (int i = 0; i < countMethod.getParameterTypes().size(); i++) { parameterTypes.add(methodParamTypes.get(i)); parameterNames.add(methodParamNames.get(i)); } // Use the MethodMetadataBuilder for easy creation of MethodMetadata MethodMetadataBuilder methodBuilder = new MethodMetadataBuilder(getId(), Modifier.PUBLIC + Modifier.ABSTRACT, countMethod.getMethodName(), countMethod.getReturnType(), parameterTypes, parameterNames, null); return methodBuilder.build(); // Build and return a MethodMetadata // instance }
/** * Constructor used to generate full javadoc for a method * * @param description * @param method */ public JavadocComment(final String description, MethodMetadata method) { this.description = description; this.paramsInfo = new ArrayList<String>(); this.throwsInfo = new ArrayList<String>(); for (JavaSymbolName param : method.getParameterNames()) { paramsInfo.add(param.getSymbolName()); } for (JavaType exception : method.getThrowsTypes()) { throwsInfo.add(exception.getSimpleTypeName()); } JavaType returnType = method.getReturnType(); if (!returnType.equals(JavaType.VOID_OBJECT) && !returnType.equals(JavaType.VOID_PRIMITIVE)) { returnInfo = returnType.getSimpleTypeName(); } loadFromDefinitions(); }
/** * Build method body which delegates on repository * * @param methodToBeImplemented * @param isBatch * @param isDelete * @return */ private InvocableMemberBodyBuilder builMethodBody(final MethodMetadata methodToBeImplemented) { // Generate body InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder(); // Getting parameters String String parametersString = ""; for (JavaSymbolName parameterName : methodToBeImplemented.getParameterNames()) { parametersString = parametersString.concat(parameterName.getSymbolName()).concat(", "); } if (StringUtils.isNotBlank(parametersString)) { parametersString = parametersString.substring(0, parametersString.length() - 2); } bodyBuilder.appendFormalLine("%s %s().%s(%s);", methodToBeImplemented.getReturnType().equals(JavaType.VOID_PRIMITIVE) ? "" : "return", getAccessorMethod(repositoryFieldMetadata).getMethodName(), methodToBeImplemented .getMethodName().getSymbolName(), parametersString); return bodyBuilder; }
parameterNames.add(entityRemoveMethod.getParameterNames().get(0));
new MethodMetadataBuilder(getId(), Modifier.PUBLIC, seiMethod.getMethodName(), seiMethod.getReturnType(), AnnotatedJavaType.convertFromJavaTypes(parameters), seiMethod.getParameterNames(), null); for (JavaSymbolName param : seiMethod.getParameterNames()) { parametersList = parametersList.concat(param.getSymbolName()).concat(", ");
/** * Build "findOneForUpdate" method body which delegates on repository * * @param methodToBeImplemented * @return */ private InvocableMemberBodyBuilder buildFindOneForUpdateBody(MethodMetadata methodToBeImplemented) { // Generate body InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder(); final JavaSymbolName param0 = methodToBeImplemented.getParameterNames().get(0); // return entityRepository.findOneDetached(id); bodyBuilder.appendFormalLine("%s %s().%s(%s);", methodToBeImplemented.getReturnType().equals(JavaType.VOID_PRIMITIVE) ? "" : "return", getAccessorMethod(repositoryFieldMetadata).getMethodName(), FIND_ONE_DETACHED.getSymbolName(), param0); return bodyBuilder; }
parameterNames.add(entityAddMethod.getParameterNames().get(0)); if (relationInfo.cardinality == Cardinality.ONE_TO_ONE) { parameterTypes.add(AnnotatedJavaType.convertFromJavaType(relationInfo.childType));
/** * Method that generates custom count method. * * @return MethodMetadata */ private MethodMetadata getCustomCountMethod(MethodMetadata customCountMethod) { // Use the MethodMetadataBuilder for easy creation of MethodMetadata MethodMetadataBuilder methodBuilder = new MethodMetadataBuilder(getId(), Modifier.PUBLIC + Modifier.ABSTRACT, customCountMethod.getMethodName(), customCountMethod.getReturnType(), customCountMethod.getParameterTypes(), customCountMethod.getParameterNames(), null); return methodBuilder.build(); // Build and return a MethodMetadata // instance }
/** * Method that generates finder method on current interface * * @param finderMethod * @return */ private MethodMetadata getFinderMethod(MethodMetadata finderMethod) { // Use the MethodMetadataBuilder for easy creation of MethodMetadata MethodMetadataBuilder methodBuilder = new MethodMetadataBuilder(getId(), Modifier.PUBLIC + Modifier.ABSTRACT, finderMethod.getMethodName(), finderMethod.getReturnType(), finderMethod.getParameterTypes(), finderMethod.getParameterNames(), null); return methodBuilder.build(); // Build and return a MethodMetadata // instance }
parameterNames.addAll(removeFromDetailsMethod.getParameterNames()); .getParameterNames().get(0), removeFromDetailsMethod.getParameterNames().get(1));
parameterNames.addAll(addToMethod.getParameterNames()); .getMethodName(), addToMethod.getMethodName(), addToMethod.getParameterNames().get(0), addToMethod.getParameterNames().get(1));
final JavaSymbolName param0 = methodToBeImplemented.getParameterNames().get(0);
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);
if (!method.getParameterNames().isEmpty() && lastJavaDoc.getParamsInfo() == null) { List<String> paramsInfo = new ArrayList<String>(); for (JavaSymbolName name : method.getParameterNames()) { paramsInfo.add(name.getSymbolName());
boolean isTransactional, InvocableMemberBodyBuilder bodyBuilder) { List<JavaSymbolName> parameterNames = new ArrayList<JavaSymbolName>(methodToBeImplemented.getParameterNames());
/** * Method that generates method "findAll" method. This method includes * GlobalSearch parameters to be able to filter results. * * @return MethodMetadata */ private MethodMetadata getFindAllGlobalSearchMethod() { // Define method name JavaSymbolName methodName = this.findAllGlobalSearchMethod.getMethodName(); // Define method parameter types List<AnnotatedJavaType> parameterTypes = this.findAllGlobalSearchMethod.getParameterTypes(); // Define method parameter names List<JavaSymbolName> parameterNames = this.findAllGlobalSearchMethod.getParameterNames(); MethodMetadata existingMethod = getGovernorMethod(methodName, AnnotatedJavaType.convertFromAnnotatedJavaTypes(parameterTypes)); if (existingMethod != null) { return existingMethod; } // Use the MethodMetadataBuilder for easy creation of MethodMetadata MethodMetadataBuilder methodBuilder = new MethodMetadataBuilder(getId(), Modifier.PUBLIC + Modifier.ABSTRACT, methodName, this.findAllGlobalSearchMethod.getReturnType(), parameterTypes, parameterNames, null); return methodBuilder.build(); // Build and return a MethodMetadata // instance }
/** * Method that generates method "findAll" method. This method includes * GlobalSearch parameters to be able to filter results. * * @return MethodMetadata */ private MethodMetadata getFindAllByIdsInGlobalSearchMethod() { // Define method name JavaSymbolName methodName = this.findAllByIdsInGlobalSearchMethod.getMethodName(); // Define method parameter types List<AnnotatedJavaType> parameterTypes = this.findAllByIdsInGlobalSearchMethod.getParameterTypes(); // Define method parameter names List<JavaSymbolName> parameterNames = this.findAllByIdsInGlobalSearchMethod.getParameterNames(); MethodMetadata existingMethod = getGovernorMethod(methodName, AnnotatedJavaType.convertFromAnnotatedJavaTypes(parameterTypes)); if (existingMethod != null) { return existingMethod; } // Use the MethodMetadataBuilder for easy creation of MethodMetadata MethodMetadataBuilder methodBuilder = new MethodMetadataBuilder(getId(), Modifier.PUBLIC + Modifier.ABSTRACT, methodName, this.findAllByIdsInGlobalSearchMethod.getReturnType(), parameterTypes, parameterNames, null); return methodBuilder.build(); // Build and return a MethodMetadata // instance }
/** * This method generates new method instance using an existing * methodMetadata * * @param declaredByMetadataId * @param method * * @return */ private MethodMetadata getNewMethod(String declaredByMetadataId, MethodMetadata method) { // Create bodyBuilder InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder(); bodyBuilder.appendFormalLine(method.getBody()); // Use the MethodMetadataBuilder for easy creation of MethodMetadata // based on existing method MethodMetadataBuilder methodBuilder = new MethodMetadataBuilder(declaredByMetadataId, method.getModifier(), method.getMethodName(), method.getReturnType(), method.getParameterTypes(), method.getParameterNames(), bodyBuilder); methodBuilder.setAnnotations(method.getAnnotations()); // ROO-3834: Including default comment structure during push-in methodBuilder.setCommentStructure(method.getCommentStructure()); return methodBuilder.build(); }