Package org.springframework.roo.classpath.itd

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


          List<JavaSymbolName> hasPermissionParameterNames = new ArrayList<JavaSymbolName>();
            hasPermissionParameterNames.add(new JavaSymbolName("authentication"));
            hasPermissionParameterNames.add(new JavaSymbolName("targetObject"));
            hasPermissionParameterNames.add(new JavaSymbolName("permission"));
           
            final InvocableMemberBodyBuilder hasPermissionBodyBuilder = new InvocableMemberBodyBuilder();
           
            hasPermissionBodyBuilder.append("\n\t\treturn checkManagedPermissions(authentication, targetObject, permission);");

            MethodMetadataBuilder hasPermissionMethodMetadataBuilder = new MethodMetadataBuilder(
                    getId(), PUBLIC, hasPermissionMethodName, JavaType.BOOLEAN_PRIMITIVE,
                    AnnotatedJavaType
                            .convertFromJavaTypes(hasPermissionParameterTypes),
                    hasPermissionParameterNames, hasPermissionBodyBuilder);

            builder.addMethod(hasPermissionMethodMetadataBuilder.build());
        }
       
        //Creates method hasPermission(Authentication authentication, Serializable targetId, String targetType, Object permission)
        hasPermissionParameterTypes = new ArrayList<JavaType>();
        hasPermissionParameterTypes.add(AUTHENTICATION);
        hasPermissionParameterTypes.add(JavaType.SERIALIZABLE);
        hasPermissionParameterTypes.add(JavaType.STRING);
        hasPermissionParameterTypes.add(JavaType.OBJECT);

        if (!governorDetails.isMethodDeclaredByAnother(hasPermissionMethodName,
                hasPermissionParameterTypes, getId())) {
            final InvocableMemberBodyBuilder hasPermissionBodyBuilder2 = new InvocableMemberBodyBuilder();
            hasPermissionBodyBuilder2.append(String.format("\n\t\treturn %s;\n",annotationValues.getDefaultReturnValue()));

            List<JavaSymbolName> hasPermissionParameterNames2 = new ArrayList<JavaSymbolName>();
            hasPermissionParameterNames2.add(new JavaSymbolName(
                    "authentication"));
            hasPermissionParameterNames2.add(new JavaSymbolName("targetId"));
            hasPermissionParameterNames2.add(new JavaSymbolName("targetType"));
            hasPermissionParameterNames2.add(new JavaSymbolName("permission"));

            MethodMetadataBuilder hasPermissionMethodMetadataBuilder2 = new MethodMetadataBuilder(
                    getId(),
                    PUBLIC,
                    new JavaSymbolName("hasPermission"),
                    JavaType.BOOLEAN_PRIMITIVE,
                    AnnotatedJavaType
                            .convertFromJavaTypes(hasPermissionParameterTypes),
                    hasPermissionParameterNames2, hasPermissionBodyBuilder2);

            builder.addMethod(hasPermissionMethodMetadataBuilder2.build());
        }
       
        List<JavaType> checkManagedPermissionsParameterTypes = new ArrayList<JavaType>();
        checkManagedPermissionsParameterTypes.add(AUTHENTICATION);
        checkManagedPermissionsParameterTypes.add(JavaType.OBJECT);
        checkManagedPermissionsParameterTypes.add(JavaType.OBJECT);

        JavaSymbolName checkManagedPermissionsMethodName = new JavaSymbolName("checkManagedPermissions");
       
        if (!governorDetails.isMethodDeclaredByAnother(checkManagedPermissionsMethodName,
            checkManagedPermissionsParameterTypes, getId())) {
         
          List<JavaSymbolName> checkManagedPermissionsParameterNames = new ArrayList<JavaSymbolName>();
          checkManagedPermissionsParameterNames
                    .add(new JavaSymbolName("authentication"));
          checkManagedPermissionsParameterNames.add(new JavaSymbolName("targetObject"));
          checkManagedPermissionsParameterNames.add(new JavaSymbolName("permission"));
           
            final InvocableMemberBodyBuilder checkManagedPermissionsBodyBuilder = new InvocableMemberBodyBuilder();
            boolean firstPass = true;
            for (Entry<JavaType, String> entrySet : domainTypeToPlurals.entrySet()) {
              for (Permission permission : Permission.values()){
              String permissionName = permission.getName(entrySet.getKey(), entrySet.getValue());
            if (permissionName == null) {
              continue;
            }
                checkManagedPermissionsBodyBuilder.append(String.format("\n\t\t%sif(permission.equals(\"%s\")){",firstPass ? "" : "else ", permissionName));
                checkManagedPermissionsBodyBuilder.append(String.format("\n\t\t\treturn %s(authentication, (%s)targetObject);", permissionName, entrySet.getKey().getFullyQualifiedTypeName()));
                checkManagedPermissionsBodyBuilder.append("\n\t\t}");
              }
              firstPass = false;
            }
            checkManagedPermissionsBodyBuilder.append(String.format("\n\t\treturn %s;\n",annotationValues.getDefaultReturnValue()));

            MethodMetadataBuilder hasPermissionMethodMetadataBuilder = new MethodMetadataBuilder(
                    getId(), PUBLIC, checkManagedPermissionsMethodName, JavaType.BOOLEAN_PRIMITIVE,
                    AnnotatedJavaType
                            .convertFromJavaTypes(checkManagedPermissionsParameterTypes),
                            checkManagedPermissionsParameterNames, checkManagedPermissionsBodyBuilder);

            builder.addMethod(hasPermissionMethodMetadataBuilder.build());
           
        }
       
        for (Entry<JavaType, String> entrySet : domainTypeToPlurals.entrySet()) {
          for (Permission permission : Permission.values()){
          String permissionName = permission.getName(entrySet.getKey(), entrySet.getValue());
        if (permissionName == null) {
          continue;
        }
            JavaSymbolName isAllowedMethodName = new JavaSymbolName(permissionName);
            List<JavaType> isAllowedParameterTypes = new ArrayList<JavaType>();
            isAllowedParameterTypes.add(AUTHENTICATION);
            isAllowedParameterTypes.add(entrySet.getKey());
            if (!governorDetails.isMethodDeclaredByAnother(isAllowedMethodName, isAllowedParameterTypes, getId())) {
              List<JavaSymbolName> isAllowedParameterNames = new ArrayList<JavaSymbolName>();
              isAllowedParameterNames.add(new JavaSymbolName("authentication"));
              isAllowedParameterNames.add(JavaSymbolName.getReservedWordSafeName(entrySet.getKey()));
                 
                  final InvocableMemberBodyBuilder isAllowedBodyBuilder = new InvocableMemberBodyBuilder();
                  isAllowedBodyBuilder.append(String.format("\n\t\treturn %s;\n",annotationValues.getDefaultReturnValue()));
 
                  MethodMetadataBuilder isAllowedMethodMetadataBuilder = new MethodMetadataBuilder(
                          getId(), PUBLIC, isAllowedMethodName, JavaType.BOOLEAN_PRIMITIVE,
                          AnnotatedJavaType
                                  .convertFromJavaTypes(isAllowedParameterTypes),
View Full Code Here


            return;
        }

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

        final InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder();
        bodyBuilder.appendFormalLine("super();");
        for (final FieldMetadata field : constructorFields) {
            final String fieldName = field.getFieldName().getSymbolName();
            bodyBuilder.appendFormalLine("this." + fieldName + " = "
                    + fieldName + ";");
            parameterNames.add(field.getFieldName());
        }

        // Create the constructor
View Full Code Here

        return null;
    }

    public InvocableMemberBodyBuilder getBodyBuilder() {
        if (bodyBuilder == null) {
            bodyBuilder = new InvocableMemberBodyBuilder();
        }
        return bodyBuilder;
    }
View Full Code Here

        final JavaType returnType = identifierAccessor.getReturnType();

        builder.getImportRegistrationResolver().addImports(returnType,
                FACES_CONTEXT, UI_COMPONENT);

        final InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder();
        bodyBuilder
                .appendFormalLine("if (value == null || value.length() == 0) {");
        bodyBuilder.indent();
        bodyBuilder.appendFormalLine("return null;");
        bodyBuilder.indentRemove();
        bodyBuilder.appendFormalLine("}");
        bodyBuilder.appendFormalLine(returnType.getSimpleTypeName() + " "
                + ID_FIELD_NAME + " = "
                + getJavaTypeConversionString(returnType) + ";");
        bodyBuilder.appendFormalLine("return " + findMethod.getMethodCall()
                + ";");

        // Create getAsObject method
        final List<JavaSymbolName> parameterNames = Arrays.asList(
                new JavaSymbolName("context"), new JavaSymbolName("component"),
View Full Code Here

        builder.getImportRegistrationResolver().addImports(entity,
                FACES_CONTEXT, UI_COMPONENT);

        final String simpleTypeName = entity.getSimpleTypeName();

        final InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder();
        bodyBuilder.appendFormalLine("return value instanceof "
                + simpleTypeName + " ? ((" + simpleTypeName + ") value)."
                + identifierAccessor.getMethodName().getSymbolName()
                + "().toString() : \"\";");

        // Create getAsString method
View Full Code Here

        builder.getImportRegistrationResolver().addImports(EL_CONTEXT,
                APPLICATION, EXPRESSION_FACTORY, FACES_CONTEXT,
                PRIMEFACES_MENU_ITEM, PRIMEFACES_SUB_MENU,
                PRIMEFACES_DEFAULT_MENU_MODEL);

        final InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder();

        bodyBuilder
                .appendFormalLine("FacesContext facesContext = FacesContext.getCurrentInstance();");
        bodyBuilder
                .appendFormalLine("Application application = facesContext.getApplication();");
        bodyBuilder
                .appendFormalLine("ExpressionFactory expressionFactory = application.getExpressionFactory();");
        bodyBuilder
                .appendFormalLine("ELContext elContext = facesContext.getELContext();");
        bodyBuilder.appendFormalLine("");

        bodyBuilder.appendFormalLine("menuModel = new DefaultMenuModel();");
        bodyBuilder.appendFormalLine("Submenu submenu;");
        bodyBuilder.appendFormalLine("MenuItem item;");

        for (final ClassOrInterfaceTypeDetails managedBean : managedBeans) {
            final AnnotationMetadata annotation = MemberFindingUtils
                    .getAnnotationOfType(managedBean.getAnnotations(),
                            ROO_JSF_MANAGED_BEAN);
            if (annotation == null) {
                continue;
            }

            final AnnotationAttributeValue<?> includeOnMenuAttributeValue = annotation
                    .getAttribute(new JavaSymbolName("includeOnMenu"));
            if (includeOnMenuAttributeValue != null
                    && !((Boolean) includeOnMenuAttributeValue.getValue())
                            .booleanValue()) {
                continue;
            }

            final AnnotationAttributeValue<?> entityAttributeValue = annotation
                    .getAttribute(new JavaSymbolName("entity"));
            final JavaType entity = (JavaType) entityAttributeValue.getValue();
            final String entityLabel = entity.getSimpleTypeName().length() > 26 ? entity
                    .getSimpleTypeName().substring(0, 23) + "..."
                    : entity.getSimpleTypeName();

            final AnnotationAttributeValue<?> beanNameAttributeValue = annotation
                    .getAttribute(new JavaSymbolName("beanName"));
            final String beanName = (String) beanNameAttributeValue.getValue();

            bodyBuilder.appendFormalLine("");
            bodyBuilder.appendFormalLine("submenu = new Submenu();");
            bodyBuilder.appendFormalLine("submenu.setId(\""
                    + StringUtils.uncapitalize(entity.getSimpleTypeName())
                    + "Submenu\");");
            bodyBuilder.appendFormalLine("submenu.setLabel(\"" + entityLabel
                    + "\");");

            bodyBuilder.appendFormalLine("item = new MenuItem();");
            bodyBuilder.appendFormalLine("item.setId(\"create"
                    + entity.getSimpleTypeName() + "MenuItem\");");
            bodyBuilder
                    .appendFormalLine("item.setValueExpression(\"value\", expressionFactory.createValueExpression(elContext, \"#{messages.label_create}\", String.class));");
            bodyBuilder
                    .appendFormalLine("item.setActionExpression(expressionFactory.createMethodExpression(elContext, \"#{"
                            + beanName
                            + "."
                            + DISPLAY_CREATE_DIALOG
                            + "}\", String.class, new Class[0]));");
            bodyBuilder.appendFormalLine("item.setIcon(\"" + CREATE_ICON
                    + "\");");
            bodyBuilder.appendFormalLine("item.setAjax(false);");
            bodyBuilder.appendFormalLine("item.setAsync(false);");
            bodyBuilder.appendFormalLine("item.setUpdate(\":dataForm:data\");");
            bodyBuilder.appendFormalLine("submenu.getChildren().add(item);");

            bodyBuilder.appendFormalLine("item = new MenuItem();");
            bodyBuilder.appendFormalLine("item.setId(\"list"
                    + entity.getSimpleTypeName() + "MenuItem\");");
            bodyBuilder
                    .appendFormalLine("item.setValueExpression(\"value\", expressionFactory.createValueExpression(elContext, \"#{messages.label_list}\", String.class));");
            bodyBuilder
                    .appendFormalLine("item.setActionExpression(expressionFactory.createMethodExpression(elContext, \"#{"
                            + beanName
                            + "."
                            + DISPLAY_LIST
                            + "}\", String.class, new Class[0]));");
            bodyBuilder
                    .appendFormalLine("item.setIcon(\"" + LIST_ICON + "\");");
            bodyBuilder.appendFormalLine("item.setAjax(false);");
            bodyBuilder.appendFormalLine("item.setAsync(false);");
            bodyBuilder.appendFormalLine("item.setUpdate(\":dataForm:data\");");
            bodyBuilder.appendFormalLine("submenu.getChildren().add(item);");

            bodyBuilder.appendFormalLine("menuModel.addSubmenu(submenu);");
        }

        final MethodMetadataBuilder methodBuilder = new MethodMetadataBuilder(
                getId(), Modifier.PUBLIC, methodName, JavaType.VOID_PRIMITIVE,
                new ArrayList<AnnotatedJavaType>(),
View Full Code Here

        else {
            // Add the method via the ITD
            final List<AnnotationMetadataBuilder> annotations = new ArrayList<AnnotationMetadataBuilder>();
            annotations.add(new AnnotationMetadataBuilder(BEFORE_CLASS));

            final InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder();
            bodyBuilder.appendFormalLine("helper.setUp();");

            final MethodMetadataBuilder methodBuilder = new MethodMetadataBuilder(
                    getId(), Modifier.PUBLIC | Modifier.STATIC,
                    setUpMethodName, JavaType.VOID_PRIMITIVE,
                    AnnotatedJavaType.convertFromJavaTypes(SETUP_PARAMETERS),
                    new ArrayList<JavaSymbolName>(), bodyBuilder);
            methodBuilder.setAnnotations(annotations);
            builder.addMethod(methodBuilder);
        }

        // Prepare tearDown method signature
        final JavaSymbolName tearDownMethodName = new JavaSymbolName("tearDown");
        final MethodMetadata tearDownMethod = getGovernorMethod(
                tearDownMethodName, TEARDOWN_PARAMETERS);
        if (tearDownMethod != null) {
            Validate.notNull(
                    MemberFindingUtils.getAnnotationOfType(
                            tearDownMethod.getAnnotations(), AFTER_CLASS),
                    "Method 'tearDown' on '%s' must be annotated with @AfterClass",
                    destination.getFullyQualifiedTypeName());
        }
        else {
            // Add the method via the ITD
            final List<AnnotationMetadataBuilder> annotations = new ArrayList<AnnotationMetadataBuilder>();
            annotations.add(new AnnotationMetadataBuilder(AFTER_CLASS));

            final InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder();
            bodyBuilder.appendFormalLine("helper.tearDown();");

            final MethodMetadataBuilder methodBuilder = new MethodMetadataBuilder(
                    getId(),
                    Modifier.PUBLIC | Modifier.STATIC,
                    tearDownMethodName,
View Full Code Here

            // Found an existing no-arg constructor on this class
            return null;
        }

        // Create the constructor
        final InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder();
        bodyBuilder.appendFormalLine("super();");

        final ConstructorMetadataBuilder constructorBuilder = new ConstructorMetadataBuilder(
                getId());
        constructorBuilder.setModifier(publicNoArgConstructor ? Modifier.PUBLIC
                : Modifier.PRIVATE);
View Full Code Here

            return null;
        }

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

        final InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder();
        bodyBuilder.appendFormalLine("super();");
        for (final FieldMetadataBuilder field : fields) {
            final String fieldName = field.getFieldName().getSymbolName();
            bodyBuilder.appendFormalLine("this." + fieldName + " = "
                    + fieldName + ";");
            parameterNames.add(field.getFieldName());
        }

        // Create the constructor
View Full Code Here

        cidBuilder.addAnnotation(interfaceAnnotationMetadata.build());
        final JavaType listType = new JavaType(List.class.getName(), 0,
                DataType.TYPE, null, Arrays.asList(domainType));
        cidBuilder.addMethod(new MethodMetadataBuilder(interfaceMdId, 0,
                new JavaSymbolName("findAll"), listType,
                new InvocableMemberBodyBuilder()));
        typeManagementService.createOrUpdateTypeOnDisk(cidBuilder.build());
    }
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.