Package org.springframework.roo.addon.web.mvc.controller.details

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


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


        final JavaType formBackingType = webScaffoldMetadata
                .getAnnotationValues().getFormBackingObject();
        final MemberDetails memberDetails = webMetadataService
                .getMemberDetails(formBackingType);
        final JavaTypeMetadataDetails formBackingTypeMetadataDetails = webMetadataService
                .getJavaTypeMetadataDetails(formBackingType, memberDetails,
                        jspMetadataId);
        Validate.notNull(formBackingTypeMetadataDetails,
                "Unable to obtain metadata for type %s",
                formBackingType.getFullyQualifiedTypeName());

        formBackingObjectTypesToLocalMids.put(formBackingType, jspMetadataId);

        final SortedMap<JavaType, JavaTypeMetadataDetails> relatedTypeMd = webMetadataService
                .getRelatedApplicationTypeMetadata(formBackingType,
                        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
View Full Code Here

                continue;
            }

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

            }
            Validate.notNull(paramName, "Could not find field '%s' in '%s'",
                    paramName, type.getFullyQualifiedTypeName());
            Element fieldElement = null;

            final JavaTypeMetadataDetails typeMetadataHolder = relatedDomainTypes
                    .get(getJavaTypeForField(field));

            if (type.isCommonCollectionType()
                    && relatedDomainTypes
                            .containsKey(getJavaTypeForField(field))) {
                final JavaTypeMetadataDetails collectionTypeMetadataHolder = relatedDomainTypes
                        .get(getJavaTypeForField(field));
                final JavaTypePersistenceMetadataDetails typePersistenceMetadataHolder = collectionTypeMetadataHolder
                        .getPersistenceDetails();
                if (typePersistenceMetadataHolder != null) {
                    fieldElement = new XmlElementBuilder("field:select",
                            document)
                            .addAttribute("required", "true")
                            .addAttribute(
                                    "items",
                                    "${"
                                            + collectionTypeMetadataHolder
                                                    .getPlural().toLowerCase()
                                            + "}")
                            .addAttribute(
                                    "itemValue",
                                    typePersistenceMetadataHolder
View Full Code Here

        return document;
    }

    private String getPathForType(final JavaType type) {
        final JavaTypeMetadataDetails javaTypeMetadataHolder = relatedDomainTypes
                .get(type);
        Validate.notNull(javaTypeMetadataHolder,
                "Unable to obtain metadata for type %s",
                type.getFullyQualifiedTypeName());
        return javaTypeMetadataHolder.getControllerPath();
    }
View Full Code Here

TOP

Related Classes of org.springframework.roo.addon.web.mvc.controller.details.JavaTypeMetadataDetails

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.