Examples of JavaTypePersistenceMetadataDetails


Examples of org.springframework.roo.addon.web.mvc.controller.details.JavaTypePersistenceMetadataDetails

        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)
View Full Code Here

Examples of org.springframework.roo.addon.web.mvc.controller.details.JavaTypePersistenceMetadataDetails

    return fieldsNamesList;
  }

  private MethodMetadataBuilder getCreateMethod(
      final MemberTypeAdditions persistMethod) {
    final JavaTypePersistenceMetadataDetails javaTypePersistenceMetadataHolder = javaTypeMetadataHolder
        .getPersistenceDetails();
    if (javaTypePersistenceMetadataHolder == null
        || javaTypePersistenceMetadataHolder
            .getIdentifierAccessorMethod() == null) {
      return null;
    }

    final JavaSymbolName methodName = new JavaSymbolName("create");
    if (governorHasMethodWithSameName(methodName)) {
      return null;
    }

    final AnnotationMetadataBuilder validAnnotation = new AnnotationMetadataBuilder(
        VALID);

    final List<AnnotatedJavaType> parameterTypes = Arrays
        .asList(new AnnotatedJavaType(formBackingType, validAnnotation
            .build()), new AnnotatedJavaType(BINDING_RESULT),
            new AnnotatedJavaType(MODEL), new AnnotatedJavaType(
                HTTP_SERVLET_REQUEST));
    final List<JavaSymbolName> parameterNames = Arrays.asList(
        new JavaSymbolName(entityName), new JavaSymbolName(
            "bindingResult"), new JavaSymbolName("uiModel"),
        new JavaSymbolName("httpServletRequest"));

    final List<AnnotationAttributeValue<?>> requestMappingAttributes = new ArrayList<AnnotationAttributeValue<?>>();
    requestMappingAttributes.add(new EnumAttributeValue(new JavaSymbolName(
        "method"), new EnumDetails(REQUEST_METHOD, new JavaSymbolName(
        "POST"))));
    requestMappingAttributes.add(PRODUCES_HTML);
    final AnnotationMetadataBuilder requestMapping = new AnnotationMetadataBuilder(
        REQUEST_MAPPING, requestMappingAttributes);
    final List<AnnotationMetadataBuilder> annotations = new ArrayList<AnnotationMetadataBuilder>();
    annotations.add(requestMapping);

    final InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder();
    bodyBuilder.appendFormalLine("if (bindingResult.hasErrors()) {");
    bodyBuilder.indent();
    bodyBuilder.appendFormalLine("populateEditForm(uiModel, " + entityName
        + ");");
    bodyBuilder.appendFormalLine("return \"" + controllerPath
        + "/create\";");
    bodyBuilder.indentRemove();
    bodyBuilder.appendFormalLine("}");
    bodyBuilder.appendFormalLine("uiModel.asMap().clear();");
    bodyBuilder.appendFormalLine(persistMethod.getMethodCall() + ";");
    bodyBuilder.appendFormalLine("return \"redirect:/"
        + controllerPath
        + "/\" + encodeUrlPathSegment("
        + (compositePk ? "conversionService.convert(" : "")
        + entityName
        + "."
        + javaTypePersistenceMetadataHolder
            .getIdentifierAccessorMethod().getMethodName() + "()"
        + (compositePk ? ", String.class)" : ".toString()")
        + ", httpServletRequest);");

    final MethodMetadataBuilder methodBuilder = new MethodMetadataBuilder(
View Full Code Here

Examples of org.springframework.roo.addon.web.mvc.controller.details.JavaTypePersistenceMetadataDetails

  }

  private MethodMetadataBuilder getDeleteMethod(final FieldMetadata idField,
      final MemberTypeAdditions deleteMethodAdditions,
      final MemberTypeAdditions findMethod) {
    final JavaTypePersistenceMetadataDetails javaTypePersistenceMetadataHolder = javaTypeMetadataHolder
        .getPersistenceDetails();
    if (javaTypePersistenceMetadataHolder == null) {
      return null;
    }
    final JavaSymbolName methodName = new JavaSymbolName("delete");
    if (governorHasMethodWithSameName(methodName)) {
      return null;
    }

    final JavaSymbolName idFieldName = idField.getFieldName();
    String fieldName = entityName;
    String deleteMethodCall = deleteMethodAdditions.getMethodCall();
    if (idFieldName.getSymbolName().equals(entityName)) {
      fieldName += "_";
      deleteMethodCall = fieldName + "."
          + deleteMethodAdditions.getMethodName() + "()";
    }

    final List<AnnotationAttributeValue<?>> attributes = new ArrayList<AnnotationAttributeValue<?>>();
    attributes.add(new StringAttributeValue(new JavaSymbolName("value"),
        idFieldName.getSymbolName()));
    final AnnotationMetadataBuilder pathVariableAnnotation = new AnnotationMetadataBuilder(
        PATH_VARIABLE, attributes);

    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<AnnotatedJavaType> parameterTypes = Arrays.asList(
        new AnnotatedJavaType(javaTypePersistenceMetadataHolder
            .getIdentifierType(), pathVariableAnnotation.build()),
        new AnnotatedJavaType(new JavaType(Integer.class.getName()),
            firstResultAnnotation.build()), new AnnotatedJavaType(
            new JavaType(Integer.class.getName()),
            maxResultAnnotation.build()), new AnnotatedJavaType(
View Full Code Here

Examples of org.springframework.roo.addon.web.mvc.controller.details.JavaTypePersistenceMetadataDetails

      bodyBuilder.appendFormalLine("addDateTimeFormatPatterns(uiModel);");
    }
    if (annotationValues.isPopulateMethods()) {
      for (final JavaTypeMetadataDetails domainType : specialDomainTypes) {
        if (editableFieldTypes.contains(domainType.getJavaType())) {
          final JavaTypePersistenceMetadataDetails persistenceDetails = domainType
              .getPersistenceDetails();
          final String modelAttribute = domainType.getPlural()
              .toLowerCase();
          if (persistenceDetails != null
              && persistenceDetails.getFindAllMethod() != null) {
            bodyBuilder.appendFormalLine("uiModel.addAttribute(\""
                + modelAttribute
                + "\", "
                + persistenceDetails.getFindAllMethod()
                    .getMethodCall() + ");");
            persistenceDetails.getFindAllMethod().copyAdditionsTo(
                builder, governorTypeDetails);
          } else if (domainType.isEnumType()) {
            bodyBuilder.appendFormalLine("uiModel.addAttribute(\""
                + modelAttribute + "\", "
                + getShortName(ARRAYS) + ".asList("
View Full Code Here

Examples of org.springframework.roo.addon.web.mvc.controller.details.JavaTypePersistenceMetadataDetails

        builder.getImportRegistrationResolver());
  }

  private MethodMetadataBuilder getShowMethod(final FieldMetadata idField,
      final MemberTypeAdditions findMethod) {
    final JavaTypePersistenceMetadataDetails javaTypePersistenceMetadataHolder = javaTypeMetadataHolder
        .getPersistenceDetails();
    if (javaTypePersistenceMetadataHolder == null) {
      return null;
    }

    final JavaSymbolName methodName = new JavaSymbolName("show");
    if (governorHasMethodWithSameName(methodName)) {
      return null;
    }

    final List<AnnotationAttributeValue<?>> attributes = new ArrayList<AnnotationAttributeValue<?>>();
    final String idFieldName = idField.getFieldName().getSymbolName();
    attributes.add(new StringAttributeValue(new JavaSymbolName("value"),
        idFieldName));
    final AnnotationMetadataBuilder pathVariableAnnotation = new AnnotationMetadataBuilder(
        PATH_VARIABLE, attributes);

    final List<AnnotatedJavaType> parameterTypes = Arrays.asList(
        new AnnotatedJavaType(javaTypePersistenceMetadataHolder
            .getIdentifierType(), pathVariableAnnotation.build()),
        new AnnotatedJavaType(MODEL));
    final List<JavaSymbolName> parameterNames = Arrays.asList(
        new JavaSymbolName(idFieldName), new JavaSymbolName("uiModel"));
View Full Code Here

Examples of org.springframework.roo.addon.web.mvc.controller.details.JavaTypePersistenceMetadataDetails

    return methodBuilder;
  }

  private MethodMetadataBuilder getUpdateFormMethod(
      final FieldMetadata idField, final MemberTypeAdditions findMethod) {
    final JavaTypePersistenceMetadataDetails javaTypePersistenceMetadataHolder = javaTypeMetadataHolder
        .getPersistenceDetails();
    if (javaTypePersistenceMetadataHolder == null) {
      return null;
    }
    final JavaSymbolName methodName = new JavaSymbolName("updateForm");
    if (governorHasMethodWithSameName(methodName)) {
      return null;
    }

    final String idFieldName = idField.getFieldName().getSymbolName();
    final List<AnnotationAttributeValue<?>> attributes = new ArrayList<AnnotationAttributeValue<?>>();
    attributes.add(new StringAttributeValue(new JavaSymbolName("value"),
        idFieldName));
    final AnnotationMetadataBuilder pathVariableAnnotation = new AnnotationMetadataBuilder(
        PATH_VARIABLE, attributes);

    final List<AnnotatedJavaType> parameterTypes = Arrays.asList(
        new AnnotatedJavaType(javaTypePersistenceMetadataHolder
            .getIdentifierType(), pathVariableAnnotation.build()),
        new AnnotatedJavaType(MODEL));
    final List<JavaSymbolName> parameterNames = Arrays.asList(
        new JavaSymbolName(idFieldName), new JavaSymbolName("uiModel"));
View Full Code Here

Examples of org.springframework.roo.addon.web.mvc.controller.details.JavaTypePersistenceMetadataDetails

    return methodBuilder;
  }

  private MethodMetadataBuilder getUpdateMethod(
      final MemberTypeAdditions updateMethod) {
    final JavaTypePersistenceMetadataDetails javaTypePersistenceMetadataHolder = javaTypeMetadataHolder
        .getPersistenceDetails();
    if (javaTypePersistenceMetadataHolder == null
        || javaTypePersistenceMetadataHolder.getMergeMethod() == null) {
      return null;
    }
    final JavaSymbolName methodName = new JavaSymbolName("update");
    if (governorHasMethodWithSameName(methodName)) {
      return null;
    }

    final AnnotationMetadataBuilder validAnnotation = new AnnotationMetadataBuilder(
        VALID);

    final List<AnnotatedJavaType> parameterTypes = Arrays
        .asList(new AnnotatedJavaType(formBackingType, validAnnotation
            .build()), new AnnotatedJavaType(BINDING_RESULT),
            new AnnotatedJavaType(MODEL), new AnnotatedJavaType(
                HTTP_SERVLET_REQUEST));
    final List<JavaSymbolName> parameterNames = Arrays.asList(
        new JavaSymbolName(entityName), new JavaSymbolName(
            "bindingResult"), new JavaSymbolName("uiModel"),
        new JavaSymbolName("httpServletRequest"));

    final List<AnnotationAttributeValue<?>> requestMappingAttributes = new ArrayList<AnnotationAttributeValue<?>>();
    requestMappingAttributes.add(new EnumAttributeValue(new JavaSymbolName(
        "method"), new EnumDetails(REQUEST_METHOD, new JavaSymbolName(
        "PUT"))));
    requestMappingAttributes.add(PRODUCES_HTML);
    final AnnotationMetadataBuilder requestMapping = new AnnotationMetadataBuilder(
        REQUEST_MAPPING, requestMappingAttributes);
    final List<AnnotationMetadataBuilder> annotations = new ArrayList<AnnotationMetadataBuilder>();
    annotations.add(requestMapping);

    final InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder();
    bodyBuilder.appendFormalLine("if (bindingResult.hasErrors()) {");
    bodyBuilder.indent();
    bodyBuilder.appendFormalLine("populateEditForm(uiModel, " + entityName
        + ");");
    bodyBuilder.appendFormalLine("return \"" + controllerPath
        + "/update\";");
    bodyBuilder.indentRemove();
    bodyBuilder.appendFormalLine("}");
    bodyBuilder.appendFormalLine("uiModel.asMap().clear();");
    bodyBuilder.appendFormalLine(updateMethod.getMethodCall() + ";");
    bodyBuilder.appendFormalLine("return \"redirect:/"
        + controllerPath
        + "/\" + encodeUrlPathSegment("
        + (compositePk ? "conversionService.convert(" : "")
        + entityName
        + "."
        + javaTypePersistenceMetadataHolder
            .getIdentifierAccessorMethod().getMethodName() + "()"
        + (compositePk ? ", String.class)" : ".toString()")
        + ", httpServletRequest);");

    final MethodMetadataBuilder methodBuilder = new MethodMetadataBuilder(
View Full Code Here

Examples of org.springframework.roo.addon.web.mvc.controller.details.JavaTypePersistenceMetadataDetails

                        memberDetails, jspMetadataId);
        final JavaTypeMetadataDetails formbackingTypeMetadata = relatedTypeMd
                .get(formBackingType);
        Validate.notNull(formbackingTypeMetadata,
                "Form backing type metadata required");
        final JavaTypePersistenceMetadataDetails formBackingTypePersistenceMetadata = formbackingTypeMetadata
                .getPersistenceDetails();
        if (formBackingTypePersistenceMetadata == null) {
            return null;
        }
        final ClassOrInterfaceTypeDetails formBackingTypeDetails = typeLocationService
                .getTypeDetails(formBackingType);
        final LogicalPath formBackingTypePath = PhysicalTypeIdentifier
                .getPath(formBackingTypeDetails.getDeclaredByMetadataId());
        metadataDependencyRegistry.registerDependency(PhysicalTypeIdentifier
                .createIdentifier(formBackingType, formBackingTypePath),
                JspMetadata.createIdentifier(formBackingType,
                        formBackingTypePath));
        final LogicalPath path = JspMetadata.getPath(jspMetadataId);

        // Install web artifacts only if Spring MVC config is missing
        // TODO: Remove this call when 'controller' commands are gone
        final PathResolver pathResolver = projectOperations.getPathResolver();
        final LogicalPath webappPath = LogicalPath.getInstance(
                Path.SRC_MAIN_WEBAPP, path.getModule());

        if (!fileManager.exists(pathResolver.getIdentifier(webappPath,
                WEB_INF_VIEWS))) {
            jspOperations.installCommonViewArtefacts(path.getModule());
        }

        installImage(webappPath, "images/show.png");
        if (webScaffoldMetadata.getAnnotationValues().isUpdate()) {
            installImage(webappPath, "images/update.png");
        }
        if (webScaffoldMetadata.getAnnotationValues().isDelete()) {
            installImage(webappPath, "images/delete.png");
        }

        final List<FieldMetadata> eligibleFields = webMetadataService
                .getScaffoldEligibleFieldMetadata(formBackingType,
                        memberDetails, jspMetadataId);
        if (eligibleFields.isEmpty()
                && formBackingTypePersistenceMetadata.getRooIdentifierFields()
                        .isEmpty()) {
            return null;
        }
       
        final JspViewManager viewManager = new JspViewManager(eligibleFields,
                webScaffoldMetadata.getAnnotationValues(), relatedTypeMd, typeLocationService);

        String controllerPath = webScaffoldMetadata.getAnnotationValues()
                .getPath();
        if (controllerPath.startsWith("/")) {
            controllerPath = controllerPath.substring(1);
        }

        // Make the holding directory for this controller
        final String destinationDirectory = pathResolver.getIdentifier(
                webappPath, WEB_INF_VIEWS + controllerPath);
        if (!fileManager.exists(destinationDirectory)) {
            fileManager.createDirectory(destinationDirectory);
        }
        else {
            final File file = new File(destinationDirectory);
            Validate.isTrue(file.isDirectory(),
                    "%s is a file, when a directory was expected",
                    destinationDirectory);
        }

        // By now we have a directory to put the JSPs inside
        final String listPath1 = destinationDirectory + "/list.jspx";
        xmlRoundTripFileManager.writeToDiskIfNecessary(listPath1,
                viewManager.getListDocument());
        tilesOperations.addViewDefinition(controllerPath, webappPath,
                controllerPath + "/" + "list",
                TilesOperations.DEFAULT_TEMPLATE, WEB_INF_VIEWS
                        + controllerPath + "/list.jspx");

        final String showPath = destinationDirectory + "/show.jspx";
        xmlRoundTripFileManager.writeToDiskIfNecessary(showPath,
                viewManager.getShowDocument());
        tilesOperations.addViewDefinition(controllerPath, webappPath,
                controllerPath + "/" + "show",
                TilesOperations.DEFAULT_TEMPLATE, WEB_INF_VIEWS
                        + controllerPath + "/show.jspx");

        final Map<String, String> properties = new LinkedHashMap<String, String>();

        final JavaSymbolName categoryName = new JavaSymbolName(
                formBackingType.getSimpleTypeName());
        properties.put("menu_category_"
                + categoryName.getSymbolName().toLowerCase() + "_label",
                categoryName.getReadableSymbolName());

        final JavaSymbolName newMenuItemId = new JavaSymbolName("new");
        properties.put("menu_item_"
                + categoryName.getSymbolName().toLowerCase() + "_"
                + newMenuItemId.getSymbolName().toLowerCase() + "_label",
                new JavaSymbolName(formBackingType.getSimpleTypeName())
                        .getReadableSymbolName());

        if (webScaffoldMetadata.getAnnotationValues().isCreate()) {
            final String listPath = destinationDirectory + "/create.jspx";
            xmlRoundTripFileManager.writeToDiskIfNecessary(listPath,
                    viewManager.getCreateDocument());
            // Add 'create new' menu item
            menuOperations.addMenuItem(categoryName, newMenuItemId,
                    "global_menu_new", "/" + controllerPath + "?form",
                    MenuOperations.DEFAULT_MENU_ITEM_PREFIX, webappPath);
            tilesOperations.addViewDefinition(controllerPath, webappPath,
                    controllerPath + "/" + "create",
                    TilesOperations.DEFAULT_TEMPLATE, WEB_INF_VIEWS
                            + controllerPath + "/create.jspx");
        }
        else {
            menuOperations
                    .cleanUpMenuItem(categoryName, new JavaSymbolName("new"),
                            MenuOperations.DEFAULT_MENU_ITEM_PREFIX, webappPath);
            tilesOperations.removeViewDefinition(controllerPath + "/"
                    + "create", controllerPath, webappPath);
        }
        if (webScaffoldMetadata.getAnnotationValues().isUpdate()) {
            final String listPath = destinationDirectory + "/update.jspx";
            xmlRoundTripFileManager.writeToDiskIfNecessary(listPath,
                    viewManager.getUpdateDocument());
            tilesOperations.addViewDefinition(controllerPath, webappPath,
                    controllerPath + "/" + "update",
                    TilesOperations.DEFAULT_TEMPLATE, WEB_INF_VIEWS
                            + controllerPath + "/update.jspx");
        }
        else {
            tilesOperations.removeViewDefinition(controllerPath + "/"
                    + "update", controllerPath, webappPath);
        }

        // Setup labels for i18n support
        final String resourceId = XmlUtils.convertId("label."
                + formBackingType.getFullyQualifiedTypeName().toLowerCase());
        properties.put(resourceId,
                new JavaSymbolName(formBackingType.getSimpleTypeName())
                        .getReadableSymbolName());

        final String pluralResourceId = XmlUtils.convertId(resourceId
                + ".plural");
        final String plural = formBackingTypeMetadataDetails.getPlural();
        properties.put(pluralResourceId,
                new JavaSymbolName(plural).getReadableSymbolName());

        final JavaTypePersistenceMetadataDetails javaTypePersistenceMetadataDetails = formBackingTypeMetadataDetails
                .getPersistenceDetails();
        Validate.notNull(javaTypePersistenceMetadataDetails,
                "Unable to determine persistence metadata for type %s",
                formBackingType.getFullyQualifiedTypeName());

        if (!javaTypePersistenceMetadataDetails.getRooIdentifierFields()
                .isEmpty()) {
            for (final FieldMetadata idField : javaTypePersistenceMetadataDetails
                    .getRooIdentifierFields()) {
                properties.put(
                        XmlUtils.convertId(resourceId
                                + "."
                                + javaTypePersistenceMetadataDetails
                                        .getIdentifierField().getFieldName()
                                        .getSymbolName()
                                + "."
                                + idField.getFieldName().getSymbolName()
                                        .toLowerCase()), idField.getFieldName()
                                .getReadableSymbolName());
            }
        }

        // If no auto generated value for id, put name in i18n
        if (javaTypePersistenceMetadataDetails.getIdentifierField()
                .getAnnotation(JpaJavaType.GENERATED_VALUE) == null) {
            properties.put(
                    XmlUtils.convertId(resourceId
                            + "."
                            + javaTypePersistenceMetadataDetails
                                    .getIdentifierField().getFieldName()
                                    .getSymbolName().toLowerCase()),
                    javaTypePersistenceMetadataDetails.getIdentifierField()
                            .getFieldName().getReadableSymbolName());
        }

        for (final MethodMetadata method : memberDetails.getMethods()) {
            if (!BeanInfoUtils.isAccessorMethod(method)) {
                continue;
            }

            final FieldMetadata field = BeanInfoUtils
                    .getFieldForJavaBeanMethod(memberDetails, method);
            if (field == null) {
                continue;
            }
           
         
            final JavaSymbolName fieldName = field.getFieldName();
            final String fieldResourceId = XmlUtils.convertId(resourceId + "."
                    + fieldName.getSymbolName().toLowerCase());
            if (typeLocationService.isInProject(method.getReturnType())
                    && webMetadataService.isRooIdentifier(method
                            .getReturnType(), webMetadataService
                            .getMemberDetails(method.getReturnType()))) {
                final JavaTypePersistenceMetadataDetails typePersistenceMetadataDetails = webMetadataService
                        .getJavaTypePersistenceMetadataDetails(method
                                .getReturnType(), webMetadataService
                                .getMemberDetails(method.getReturnType()),
                                jspMetadataId);
                if (typePersistenceMetadataDetails != null) {
                    for (final FieldMetadata f : typePersistenceMetadataDetails
                            .getRooIdentifierFields()) {
                        final String sb = f.getFieldName()
                                .getReadableSymbolName();
                        properties.put(
                                XmlUtils.convertId(resourceId
View Full Code Here

Examples of org.springframework.roo.addon.web.mvc.controller.details.JavaTypePersistenceMetadataDetails

        if (finderDetails == null) {
            return null;
        }
        final Map<MethodMetadataCustomDataKey, MemberTypeAdditions> persistenceAdditions = webMetadataService
                .getCrudAdditions(jsonObject, metadataIdentificationString);
        final JavaTypePersistenceMetadataDetails javaTypePersistenceMetadataDetails = webMetadataService
                .getJavaTypePersistenceMetadataDetails(jsonObject,
                        getMemberDetails(jsonObject),
                        metadataIdentificationString);
        final PluralMetadata pluralMetadata = (PluralMetadata) metadataService
                .get(PluralMetadata.createIdentifier(jsonObject,
                        typeLocationService.getTypePath(jsonObject)));
        if (persistenceAdditions.isEmpty()
                || javaTypePersistenceMetadataDetails == null
                || pluralMetadata == null) {
            return null;
        }

        // Maintain a list of entities that are being tested
        managedEntityTypes.put(jsonObject, metadataIdentificationString);

        return new WebJsonMetadata(metadataIdentificationString, aspectName,
                governorPhysicalTypeMetadata, annotationValues,
                persistenceAdditions,
                javaTypePersistenceMetadataDetails.getIdentifierField(),
                pluralMetadata.getPlural(), finderDetails, jsonMetadata,
                introduceLayerComponents(governorPhysicalTypeMetadata));
    }
View Full Code Here

Examples of org.springframework.roo.addon.web.mvc.controller.details.JavaTypePersistenceMetadataDetails

            fieldType = getJavaTypeForField(field);

            final JavaTypeMetadataDetails typeMetadataHolder = relatedDomainTypes
                    .get(fieldType);
            JavaTypePersistenceMetadataDetails typePersistenceMetadataHolder = null;
            if (typeMetadataHolder != null) {
                typePersistenceMetadataHolder = typeMetadataHolder
                        .getPersistenceDetails();
            }

            Element fieldElement = null;

            if (fieldType.getFullyQualifiedTypeName().equals(
                    Boolean.class.getName())
                    || fieldType.getFullyQualifiedTypeName().equals(
                            boolean.class.getName())) {
                fieldElement = document.createElement("field:checkbox");
                // Handle enum fields
            }
            else if (typeMetadataHolder != null
                    && typeMetadataHolder.isEnumType()) {
                fieldElement = new XmlElementBuilder("field:select", document)
                        .addAttribute(
                                "items",
                                "${"
                                        + typeMetadataHolder.getPlural()
                                                .toLowerCase() + "}")
                        .addAttribute("path", getPathForType(fieldType))
                        .build();
            }
            else if (field.getCustomData().keySet()
                    .contains(CustomDataKeys.ONE_TO_MANY_FIELD)) {
                // OneToMany relationships are managed from the 'many' side of
                // the relationship, therefore we provide a link to the relevant
                // form the link URL is determined as a best effort attempt
                // following Roo REST conventions, this link might be wrong if
                // custom paths are used if custom paths are used the developer
                // can adjust the path attribute in the field:reference tag
                // accordingly
                if (typePersistenceMetadataHolder != null) {
                    fieldElement = new XmlElementBuilder("field:simple",
                            document)
                            .addAttribute("messageCode",
                                    "entity_reference_not_managed")
                            .addAttribute(
                                    "messageCodeAttribute",
                                    new JavaSymbolName(fieldType
                                            .getSimpleTypeName())
                                            .getReadableSymbolName()).build();
                }
                else {
                    continue;
                }
            }
            else if (field.getCustomData().keySet()
                    .contains(CustomDataKeys.MANY_TO_ONE_FIELD)
                    || field.getCustomData().keySet()
                            .contains(CustomDataKeys.MANY_TO_MANY_FIELD)
                    || field.getCustomData().keySet()
                            .contains(CustomDataKeys.ONE_TO_ONE_FIELD)) {
                final JavaType referenceType = getJavaTypeForField(field);
                final JavaTypeMetadataDetails referenceTypeMetadata = relatedDomainTypes
                        .get(referenceType);
                if (referenceType != null && referenceTypeMetadata != null
                        && referenceTypeMetadata.isApplicationType()
                        && typePersistenceMetadataHolder != null) {
                    fieldElement = new XmlElementBuilder("field:select",
                            document)
                            .addAttribute(
                                    "items",
                                    "${"
                                            + referenceTypeMetadata.getPlural()
                                                    .toLowerCase() + "}")
                            .addAttribute(
                                    "itemValue",
                                    typePersistenceMetadataHolder
                                            .getIdentifierField()
                                            .getFieldName().getSymbolName())
                            .addAttribute(
                                    "path",
                                    "/"
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.