Package org.springframework.roo.classpath.details

Examples of org.springframework.roo.classpath.details.ClassOrInterfaceTypeDetails


  private List<MethodMetadataBuilder> generateEmbeddableTypeToStringMethods() {
    final List<MethodMetadataBuilder> embeddableToStringMethods = new ArrayList<MethodMetadataBuilder>();

    for (JavaType embeddableType : this.embeddableTypes) {

      ClassOrInterfaceTypeDetails embeddableTypeDetails = typeLocationService
          .getTypeDetails(embeddableType);

      // Generating method
      final JavaSymbolName methodName = new JavaSymbolName(String.format(
          "get%sToStringConverter",
          embeddableType.getSimpleTypeName()));

      if (governorHasMethod(methodName)) {
        continue;
      }

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


            @CliOption(key = { "class", "" }, mandatory = true, help = "The path and name of the controller object to be created") final JavaType controller,
            @CliOption(key = "backingType", mandatory = false, optionContext = PROJECT, unspecifiedDefaultValue = "*", help = "The name of the form backing type which the controller exposes to the web tier") final JavaType backingType,
            @CliOption(key = "path", mandatory = false, help = "The base path under which the controller listens for RESTful requests (defaults to the simple name of the form backing object)") String path,
            @CliOption(key = "disallowedOperations", mandatory = false, help = "A comma separated list of operations (only create, update, delete allowed) that should not be generated in the controller") final String disallowedOperations) {

        final ClassOrInterfaceTypeDetails cid = typeLocationService
                .getTypeDetails(backingType);
        if (cid == null) {
            LOGGER.warning("The specified entity can not be resolved to a type in your project");
            return;
        }

        if (controller.getSimpleTypeName().equalsIgnoreCase(
                backingType.getSimpleTypeName())) {
            LOGGER.warning("Controller class name needs to be different from the class name of the form backing object (suggestion: '"
                    + backingType.getSimpleTypeName() + "Controller')");
            return;
        }

        final Set<String> disallowedOperationSet = new HashSet<String>();
        if (!"".equals(disallowedOperations)) {
            final String[] disallowedOperationsTokens = new StrTokenizer(
                    disallowedOperations, ",").getTokenArray();
            for (final String operation : disallowedOperationsTokens) {
                if (!("create".equals(operation) || "update".equals(operation) || "delete"
                        .equals(operation))) {
                    LOGGER.warning("-disallowedOperations options can only contain 'create', 'update', 'delete': -disallowedOperations update,delete");
                    return;
                }
                disallowedOperationSet.add(operation.toLowerCase());
            }
        }

        if (StringUtils.isBlank(path)) {
            final LogicalPath targetPath = PhysicalTypeIdentifier.getPath(cid
                    .getDeclaredByMetadataId());
            final PluralMetadata pluralMetadata = (PluralMetadata) metadataService
                    .get(PluralMetadata.createIdentifier(backingType,
                            targetPath));
            Validate.notNull(pluralMetadata,
View Full Code Here

            if (fieldType.equals(DATE)
                    && field.getFieldName().getSymbolName().equals("created")) {
                continue;
            }

            final ClassOrInterfaceTypeDetails fieldTypeCid = typeLocationService
                    .getTypeDetails(fieldType);

            // Check field is to be displayed in the entity's list view
            if (listViewFields < MAX_LIST_VIEW_FIELDS
                    && isFieldOfInterest(field) && fieldTypeCid == null) {
                listViewFields++;
                customDataBuilder.put(LIST_VIEW_FIELD_KEY, field);
            }

            final boolean enumerated = field.getCustomData().keySet()
                    .contains(CustomDataKeys.ENUMERATED_FIELD)
                    || isEnum(fieldTypeCid);
            if (enumerated) {
                customDataBuilder.put(ENUMERATED_KEY, null);
            }
            else {
                if (fieldType.isCommonCollectionType()) {
                    parameterTypeLoop: for (final JavaType parameter : fieldType
                            .getParameters()) {
                        final ClassOrInterfaceTypeDetails parameterTypeCid = typeLocationService
                                .getTypeDetails(parameter);
                        if (parameterTypeCid == null) {
                            continue;
                        }

                        for (final ClassOrInterfaceTypeDetails managedBeanType : managedBeanTypes) {
                            final AnnotationMetadata managedBeanAnnotation = managedBeanType
                                    .getAnnotation(ROO_JSF_MANAGED_BEAN);
                            if (((JavaType) managedBeanAnnotation.getAttribute(
                                    "entity").getValue()).equals(parameter)) {
                                customDataBuilder.put(PARAMETER_TYPE_KEY,
                                        parameter);
                                customDataBuilder.put(
                                        PARAMETER_TYPE_MANAGED_BEAN_NAME_KEY,
                                        managedBeanAnnotation.getAttribute(
                                                "beanName").getValue());

                                final LogicalPath logicalPath = PhysicalTypeIdentifier
                                        .getPath(parameterTypeCid
                                                .getDeclaredByMetadataId());
                                final PluralMetadata pluralMetadata = (PluralMetadata) metadataService
                                        .get(PluralMetadata.createIdentifier(
                                                parameter, logicalPath));
                                if (pluralMetadata != null) {
View Full Code Here

                declaredByMetadataId, Modifier.PUBLIC, javaType,
                PhysicalTypeCategory.CLASS);
        cidBuilder.setExtendsTypes(extendsTypes);
        cidBuilder.setAnnotations(annotations);

        final ClassOrInterfaceTypeDetails entity = cidBuilder.build();
        typeManagementService.createOrUpdateTypeOnDisk(entity);

        shell.flash(Level.FINE,
                "Created " + javaType.getFullyQualifiedTypeName(),
                DbreDatabaseListenerImpl.class.getName());
View Full Code Here

     * @return a non-<code>null</code> ID type
     */
    private JavaType getIdentifierType(final JavaType entity) {
        final PhysicalTypeMetadata governorPhysicalTypeMetadata = getPhysicalTypeMetadata(entity);
        if (governorPhysicalTypeMetadata != null) {
            final ClassOrInterfaceTypeDetails governorTypeDetails = governorPhysicalTypeMetadata
                    .getMemberHoldingTypeDetails();
            final AnnotationMetadata jpaAnnotation = getJpaAnnotation(governorTypeDetails);
            if (jpaAnnotation != null) {
                final AnnotationAttributeValue<?> identifierTypeAttribute = jpaAnnotation
                        .getAttribute(new JavaSymbolName(IDENTIFIER_TYPE));
View Full Code Here

        if (governorPhysicalTypeMetadata == null) {
            return false;
        }

        // Check for added constructors, fields and methods
        final ClassOrInterfaceTypeDetails managedIdentifier = governorPhysicalTypeMetadata
                .getMemberHoldingTypeDetails();
        return managedIdentifier.getDeclaredConstructors().isEmpty()
                && managedIdentifier.getDeclaredFields().isEmpty()
                && managedIdentifier.getDeclaredMethods().isEmpty();
    }
View Full Code Here

     *
     * @param governor the governor to check (required)
     * @return see above
     */
    private String getWebScaffoldMidIfLayerComponent(final JavaType governor) {
        final ClassOrInterfaceTypeDetails governorTypeDetails = typeLocationService
                .getTypeDetails(governor);
        if (governorTypeDetails != null) {
            for (final JavaType type : governorTypeDetails.getLayerEntities()) {
                final String localMid = entityToWebScaffoldMidMap.get(type);
                if (localMid != null) {
                    /*
                     * The ITD's governor is a layer component that manages an
                     * entity for which we maintain web scaffold metadata =>
View Full Code Here

  private MethodMetadataBuilder getCreateFormMethod(
      final List<JavaTypeMetadataDetails> dependentTypes) {

    // Getting entity fields names
    ClassOrInterfaceTypeDetails cid = typeLocationService
        .getTypeDetails(formBackingType);

    final JavaSymbolName methodName = new JavaSymbolName("createForm");
    if (governorHasMethodWithSameName(methodName)) {
      return null;
View Full Code Here

        }
    }

    private void appendToExistingType(final JavaType type,
            final JavaType jsonEntity) {
        final ClassOrInterfaceTypeDetails cid = typeLocationService
                .getTypeDetails(type);
        if (cid == null) {
            throw new IllegalArgumentException("Cannot locate source for '"
                    + type.getFullyQualifiedTypeName() + "'");
        }

        if (MemberFindingUtils.getAnnotationOfType(cid.getAnnotations(),
                RooJavaType.ROO_WEB_JSON) != null) {
            return;
        }

        final ClassOrInterfaceTypeDetailsBuilder cidBuilder = new ClassOrInterfaceTypeDetailsBuilder(
View Full Code Here

        }

        // Lookup the form backing object's metadata
        final JavaType formBackingType = annotationValues
                .getFormBackingObject();
        final ClassOrInterfaceTypeDetails formBackingTypeDetails = typeLocationService
                .getTypeDetails(formBackingType);
        if (formBackingTypeDetails == null
                || !formBackingTypeDetails.getCustomData().keySet()
                        .contains(CustomDataKeys.PERSISTENT_TYPE)) {
            return null;
        }

        // We need to be informed if our dependent metadata changes
        metadataDependencyRegistry.registerDependency(
                formBackingTypeDetails.getDeclaredByMetadataId(),
                metadataIdentificationString);

        final MemberDetails formBackingObjectMemberDetails = getMemberDetails(formBackingTypeDetails);
        final Set<FinderMetadataDetails> dynamicFinderMethods = webMetadataService
                .getDynamicFinderMethodsAndFields(formBackingType,
View Full Code Here

TOP

Related Classes of org.springframework.roo.classpath.details.ClassOrInterfaceTypeDetails

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.