Package org.springframework.roo.classpath.itd

Examples of org.springframework.roo.classpath.itd.InvocableMemberBodyBuilder


        }

        builder.getImportRegistrationResolver().addImport(identifierType);

        // Create method
        final InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder();
        bodyBuilder.appendFormalLine("init();");
        bodyBuilder.appendFormalLine("if (" + INDEX_VAR + " < 0) {");
        bodyBuilder.indent();
        bodyBuilder.appendFormalLine(INDEX_VAR + " = 0;");
        bodyBuilder.indentRemove();
        bodyBuilder.appendFormalLine("}");
        bodyBuilder.appendFormalLine("if (" + INDEX_VAR + " > ("
                + getDataFieldName().getSymbolName() + ".size() - 1)) {");
        bodyBuilder.indent();
        bodyBuilder.appendFormalLine(INDEX_VAR + " = "
                + getDataFieldName().getSymbolName() + ".size() - 1;");
        bodyBuilder.indentRemove();
        bodyBuilder.appendFormalLine("}");
        bodyBuilder.appendFormalLine(entity.getSimpleTypeName() + " " + OBJ_VAR
                + " = " + getDataFieldName().getSymbolName() + ".get("
                + INDEX_VAR + ");");
        bodyBuilder.appendFormalLine(identifierType.getSimpleTypeName()
                + " id = " + OBJ_VAR + "."
                + identifierAccessor.getMethodName().getSymbolName() + "();");
        bodyBuilder.appendFormalLine("return " + findMethod.getMethodCall()
                + ";");

        findMethod.copyAdditionsTo(builder, governorTypeDetails);

        final MethodMetadataBuilder methodBuilder = new MethodMetadataBuilder(
View Full Code Here


        final List<JavaSymbolName> methodParameterNames = new ArrayList<JavaSymbolName>();
        final List<JavaType> finderParameterTypes = AnnotatedJavaType
                .convertFromAnnotatedJavaTypes(finder.getFinderMethodMetadata()
                        .getParameterTypes());

        final InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder();

        boolean needModel = false;
        for (final JavaType finderParameterType : finderParameterTypes) {
            JavaTypeMetadataDetails typeMd = specialDomainTypes
                    .get(finderParameterType);
            JavaTypePersistenceMetadataDetails javaTypePersistenceMetadataHolder = null;
            if (finderParameterType.isCommonCollectionType()) {
                typeMd = specialDomainTypes.get(finderParameterType
                        .getParameters().get(0));
                if (typeMd != null && typeMd.isApplicationType()) {
                    javaTypePersistenceMetadataHolder = typeMd
                            .getPersistenceDetails();
                }
            }
            else if (typeMd != null && typeMd.isEnumType()) {
                bodyBuilder.appendFormalLine("uiModel.addAttribute(\""
                        + typeMd.getPlural().toLowerCase()
                        + "\", java.util.Arrays.asList("
                        + getShortName(finderParameterType)
                        + ".class.getEnumConstants()));");
            }
            else if (typeMd != null && typeMd.isApplicationType()) {
                javaTypePersistenceMetadataHolder = typeMd
                        .getPersistenceDetails();
            }
            if (typeMd != null
                    && javaTypePersistenceMetadataHolder != null
                    && javaTypePersistenceMetadataHolder.getFindAllMethod() != null) {
                bodyBuilder.appendFormalLine("uiModel.addAttribute(\""
                        + typeMd.getPlural().toLowerCase()
                        + "\", "
                        + javaTypePersistenceMetadataHolder.getFindAllMethod()
                                .getMethodCall() + ");");
            }
            needModel = true;
        }
        if (finderParameterTypes.contains(DATE)
                || finderParameterTypes.contains(CALENDAR)) {
            bodyBuilder.appendFormalLine("addDateTimeFormatPatterns(uiModel);");
        }
        bodyBuilder.appendFormalLine("return \""
                + controllerPath
                + "/"
                + finder.getFinderMethodMetadata().getMethodName()
                        .getSymbolName() + "\";");
View Full Code Here

                        .getSymbolName());

        final List<AnnotatedJavaType> parameterTypes = new ArrayList<AnnotatedJavaType>();
        final List<JavaSymbolName> parameterNames = new ArrayList<JavaSymbolName>();

        final InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder();
        final StringBuilder methodParams = new StringBuilder();

        boolean dateFieldPresent = !dateTypes.isEmpty();
        for (final FieldMetadata field : finderMetadataDetails
                .getFinderMethodParamFields()) {
            final JavaSymbolName fieldName = field.getFieldName();
            final List<AnnotationMetadata> annotations = new ArrayList<AnnotationMetadata>();
            final List<AnnotationAttributeValue<?>> attributes = new ArrayList<AnnotationAttributeValue<?>>();
            attributes.add(new StringAttributeValue(
                    new JavaSymbolName("value"), uncapitalize(fieldName
                            .getSymbolName())));
            if (field.getFieldType().equals(JavaType.BOOLEAN_PRIMITIVE)
                    || field.getFieldType().equals(JavaType.BOOLEAN_OBJECT)) {
                attributes.add(new BooleanAttributeValue(new JavaSymbolName(
                        "required"), false));
            }
            final AnnotationMetadataBuilder requestParamAnnotation = new AnnotationMetadataBuilder(
                    REQUEST_PARAM, attributes);
            annotations.add(requestParamAnnotation.build());
            if (field.getFieldType().equals(DATE)
                    || field.getFieldType().equals(CALENDAR)) {
                dateFieldPresent = true;
                final AnnotationMetadata annotation = MemberFindingUtils
                        .getAnnotationOfType(field.getAnnotations(),
                                DATE_TIME_FORMAT);
                if (annotation != null) {
                    getShortName(DATE_TIME_FORMAT);
                    annotations.add(annotation);
                }
            }
            parameterNames.add(fieldName);
            parameterTypes.add(new AnnotatedJavaType(field.getFieldType(),
                    annotations));

            if (field.getFieldType().equals(JavaType.BOOLEAN_OBJECT)) {
                methodParams.append(fieldName + " == null ? Boolean.FALSE : "
                        + fieldName + ", ");
            }
            else {
                methodParams.append(fieldName + ", ");
            }
        }

        if (methodParams.length() > 0) {
            methodParams.delete(methodParams.length() - 2,
                    methodParams.length());
        }
       
        final List<AnnotationAttributeValue<?>> firstResultAttributes = new ArrayList<AnnotationAttributeValue<?>>();
        firstResultAttributes.add(new StringAttributeValue(new JavaSymbolName(
                "value"), "page"));
        firstResultAttributes.add(new BooleanAttributeValue(new JavaSymbolName(
                "required"), false));
        final AnnotationMetadataBuilder firstResultAnnotation = new AnnotationMetadataBuilder(
                REQUEST_PARAM, firstResultAttributes);

        final List<AnnotationAttributeValue<?>> maxResultsAttributes = new ArrayList<AnnotationAttributeValue<?>>();
        maxResultsAttributes.add(new StringAttributeValue(new JavaSymbolName(
                "value"), "size"));
        maxResultsAttributes.add(new BooleanAttributeValue(new JavaSymbolName(
                "required"), false));
        final AnnotationMetadataBuilder maxResultAnnotation = new AnnotationMetadataBuilder(
                REQUEST_PARAM, maxResultsAttributes);
       
        final List<AnnotationAttributeValue<?>> sortFieldNameAttributes = new ArrayList<AnnotationAttributeValue<?>>();
        sortFieldNameAttributes.add(new StringAttributeValue(new JavaSymbolName(
                "value"), "sortFieldName"));
        sortFieldNameAttributes.add(new BooleanAttributeValue(new JavaSymbolName(
                "required"), false));
        final AnnotationMetadataBuilder sortFieldNameAnnotation = new AnnotationMetadataBuilder(
                REQUEST_PARAM, sortFieldNameAttributes);
       
        final List<AnnotationAttributeValue<?>> sortOrderAttributes = new ArrayList<AnnotationAttributeValue<?>>();
        sortOrderAttributes.add(new StringAttributeValue(new JavaSymbolName(
                "value"), "sortOrder"));
        sortOrderAttributes.add(new BooleanAttributeValue(new JavaSymbolName(
                "required"), false));
        final AnnotationMetadataBuilder sortOrderAnnotation = new AnnotationMetadataBuilder(
                REQUEST_PARAM, sortOrderAttributes);
       
       
        parameterTypes.add(new AnnotatedJavaType(
                new JavaType(Integer.class.getName()),
                firstResultAnnotation.build()));
        parameterTypes.add(new AnnotatedJavaType(
                new JavaType(Integer.class.getName()),
                maxResultAnnotation.build()));
        parameterTypes.add(new AnnotatedJavaType(
                new JavaType(String.class.getName()),
                sortFieldNameAnnotation.build()));
        parameterTypes.add(new AnnotatedJavaType(
                new JavaType(String.class.getName()),
                sortOrderAnnotation.build()));
       
        parameterTypes.add(new AnnotatedJavaType(MODEL));
        if (getGovernorMethod(finderMethodName,
                AnnotatedJavaType.convertFromAnnotatedJavaTypes(parameterTypes)) != null) {
            return null;
        }

        final List<JavaSymbolName> newParamNames = new ArrayList<JavaSymbolName>();
        newParamNames.addAll(parameterNames);
        newParamNames.add(new JavaSymbolName("page"));
        newParamNames.add(new JavaSymbolName("size"));
        newParamNames.add(new JavaSymbolName("sortFieldName"));
        newParamNames.add(new JavaSymbolName("sortOrder"));
        newParamNames.add(new JavaSymbolName("uiModel"));    
       
        final List<AnnotationAttributeValue<?>> requestMappingAttributes = new ArrayList<AnnotationAttributeValue<?>>();
        requestMappingAttributes.add(new StringAttributeValue(
                new JavaSymbolName("params"), "find="
                        + finderMetadataDetails
                                .getFinderMethodMetadata()
                                .getMethodName()
                                .getSymbolName()
                                .replaceFirst(
                                        "find"
                                                + javaTypeMetadataHolder
                                                        .getPlural(), "")));
        requestMappingAttributes.add(new EnumAttributeValue(new JavaSymbolName(
                "method"), new EnumDetails(REQUEST_METHOD, new JavaSymbolName(
                "GET"))));
        final AnnotationMetadataBuilder requestMapping = new AnnotationMetadataBuilder(
                REQUEST_MAPPING, requestMappingAttributes);
        final List<AnnotationMetadataBuilder> annotations = new ArrayList<AnnotationMetadataBuilder>();
        annotations.add(requestMapping);

        bodyBuilder.appendFormalLine("if (page != null || size != null) {");
        bodyBuilder.indent();
        bodyBuilder
                .appendFormalLine("int sizeNo = size == null ? 10 : size.intValue();");
        bodyBuilder
                .appendFormalLine("final int firstResult = page == null ? 0 : (page.intValue() - 1) * sizeNo;");
        String methodParamsString = methodParams.toString();
        if(StringUtils.isNotBlank(methodParamsString)){
          methodParamsString.concat(", ");
        }
        bodyBuilder.appendFormalLine("uiModel.addAttribute(\""
                + javaTypeMetadataHolder.getPlural().toLowerCase()
                + "\", "
                + getShortName(formBackingType)
                + "."
                + finderMetadataDetails.getFinderMethodMetadata()
                        .getMethodName().getSymbolName() + "("
                + methodParamsString  + ", sortFieldName, sortOrder).setFirstResult(firstResult).setMaxResults(sizeNo).getResultList());");
       
        char[] methodNameArray = finderMetadataDetails.getFinderMethodMetadata()
                .getMethodName().getSymbolName().toCharArray();
        methodNameArray[0] = Character.toUpperCase(methodNameArray[0]);
        String countMethodName = "count" + new String(methodNameArray);
       
        bodyBuilder.appendFormalLine("float nrOfPages = (float) "
            + getShortName(formBackingType)
                + "."
                + countMethodName + "("
                + methodParamsString + ") / sizeNo;");
        bodyBuilder
                .appendFormalLine("uiModel.addAttribute(\"maxPages\", (int) ((nrOfPages > (int) nrOfPages || nrOfPages == 0.0) ? nrOfPages + 1 : nrOfPages));");
        bodyBuilder.indentRemove();
        bodyBuilder.appendFormalLine("} else {");
        bodyBuilder.indent();
        bodyBuilder.appendFormalLine("uiModel.addAttribute(\""
                + javaTypeMetadataHolder.getPlural().toLowerCase()
                + "\", "
                + getShortName(formBackingType)
                + "."
                + finderMetadataDetails.getFinderMethodMetadata()
                        .getMethodName().getSymbolName() + "("
                + methodParamsString + ", sortFieldName, sortOrder).getResultList());");
        bodyBuilder.indentRemove();
        bodyBuilder.appendFormalLine("}");
       
        if (dateFieldPresent) {
            bodyBuilder.appendFormalLine("addDateTimeFormatPatterns(uiModel);");
        }
        bodyBuilder.appendFormalLine("return \"" + controllerPath + "/list\";");

        final MethodMetadataBuilder methodBuilder = new MethodMetadataBuilder(
                getId(), Modifier.PUBLIC, finderMethodName, JavaType.STRING,
                parameterTypes, newParamNames, bodyBuilder);
        methodBuilder.setAnnotations(annotations);
View Full Code Here

        for (final FieldMetadata field : embeddedHolder.getFields()) {
            final String initializer = getFieldInitializer(field, null);
            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());
View Full Code Here

                    precision - scale, '9')
                    + "."
                    + StringUtils.rightPad("9", scale, '9'));
        }

        final InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder();
        if (fieldType.equals(BIG_DECIMAL)) {
            bodyBuilder.appendFormalLine("if (" + fieldName + ".compareTo(new "
                    + BIG_DECIMAL.getSimpleTypeName() + "(\"" + maxValue
                    + "\")) == 1) {");
            bodyBuilder.indent();
            bodyBuilder.appendFormalLine(fieldName + " = new "
                    + BIG_DECIMAL.getSimpleTypeName() + "(\"" + maxValue
                    + "\");");
        }
        else {
            bodyBuilder.appendFormalLine("if (" + fieldName + " > "
                    + maxValue.doubleValue() + suffix + ") {");
            bodyBuilder.indent();
            bodyBuilder.appendFormalLine(fieldName + " = "
                    + maxValue.doubleValue() + suffix + ";");
        }

        bodyBuilder.indentRemove();
        bodyBuilder.appendFormalLine("}");

        return bodyBuilder.getOutput();
    }
View Full Code Here

    findMethod.copyAdditionsTo(builder, governorTypeDetails);
    final JavaType converterJavaType = SpringJavaType.getConverterType(
        idType, targetType);

    final InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder();
    bodyBuilder.appendFormalLine("return new "
        + converterJavaType.getNameIncludingTypeParameters() + "() {");
    bodyBuilder.indent();
    bodyBuilder.appendFormalLine("public "
        + targetType.getFullyQualifiedTypeName() + " convert(" + idType
        + " id) {");
    bodyBuilder.indent();
    bodyBuilder.appendFormalLine("return " + findMethod.getMethodCall()
        + ";");
    bodyBuilder.indentRemove();
    bodyBuilder.appendFormalLine("}");
    bodyBuilder.indentRemove();
    bodyBuilder.appendFormalLine("};");

    return new MethodMetadataBuilder(getId(), Modifier.PUBLIC, methodName,
        converterJavaType, bodyBuilder);
  }
View Full Code Here

      final JavaType converterJavaType = SpringJavaType.getConverterType(
          embeddableType, JavaType.STRING);
      final String targetTypeName = StringUtils
          .uncapitalize(embeddableType.getSimpleTypeName());

      final InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder();
      bodyBuilder.appendFormalLine("return new "
          + converterJavaType.getNameIncludingTypeParameters()
          + "() {");
      bodyBuilder.indent();
      bodyBuilder.appendFormalLine("public String convert("
          + embeddableType.getSimpleTypeName() + " " + targetTypeName
          + ") {");
      bodyBuilder.indent();

      // Getting embedded class fields
      List<? extends FieldMetadata> embeddableFields = embeddableTypeDetails
          .getDeclaredFields();

      if (embeddableFields.isEmpty()) {
        bodyBuilder.appendFormalLine("return \"\";");
      } else {
        StringBuilder sb = new StringBuilder();
        for (FieldMetadata field : embeddableFields) {
          sb.append(String.format(
              ".append(%s.get%s()).append(\" \")",
              targetTypeName, field.getFieldName()
                  .getSymbolNameCapitalisedFirstLetter()));
        }

        bodyBuilder.appendFormalLine(String.format(
            "return new StringBuilder()%s.toString();",
            sb.toString()));
      }

      bodyBuilder.indentRemove();
      bodyBuilder.appendFormalLine("}");
      bodyBuilder.indentRemove();
      bodyBuilder.appendFormalLine("};");

      embeddableToStringMethods
          .add(new MethodMetadataBuilder(getId(), Modifier.PUBLIC,
              methodName, converterJavaType, bodyBuilder));
View Full Code Here

                for (final MethodMetadata method : typeDetails
                        .getDeclaredMethods()) {
                    // Check if public, non-abstract method
                    if (Modifier.isPublic(method.getModifier())
                            && !Modifier.isAbstract(method.getModifier())) {
                        final InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder();
                        bodyBuilder
                                .appendFormalLine("org.junit.Assert.assertTrue(true);");

                        final MethodMetadataBuilder methodBuilder = new MethodMetadataBuilder(
                                declaredByMetadataId, Modifier.PUBLIC,
                                method.getMethodName(),
View Full Code Here

        final List<JavaType> parameterTypes = Arrays.asList(OBJECT);
        final List<JavaSymbolName> parameterNames = Arrays
                .asList(new JavaSymbolName("message"));

        // Create some method content to get people started
        final InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder();
        bodyBuilder
                .appendFormalLine("System.out.println(\"JMS message received: \" + message);");
        methods.add(new MethodMetadataBuilder(declaredByMetadataId, PUBLIC,
                new JavaSymbolName("onMessage"), JavaType.VOID_PRIMITIVE,
                AnnotatedJavaType.convertFromJavaTypes(parameterTypes),
                parameterNames, bodyBuilder));
View Full Code Here

            final boolean asynchronous) {
        final List<JavaType> parameterTypes = Arrays.asList(JavaType.OBJECT);
        final List<JavaSymbolName> parameterNames = Arrays
                .asList(new JavaSymbolName("messageObject"));

        final InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder();
        bodyBuilder.appendFormalLine(fieldName
                + ".convertAndSend(messageObject);");

        final MethodMetadataBuilder methodBuilder = new MethodMetadataBuilder(
                declaredByMetadataId, PUBLIC,
                new JavaSymbolName("sendMessage"), JavaType.VOID_PRIMITIVE,
View Full Code Here

TOP

Related Classes of org.springframework.roo.classpath.itd.InvocableMemberBodyBuilder

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.