Package org.jboss.forge.parser.java

Examples of org.jboss.forge.parser.java.JavaClass


   {
      JavaSourceFacet java = project.getFacet(JavaSourceFacet.class);

      try
      {
         JavaClass one = getJavaClass();
         JavaClass many = findEntity(fieldType);

         one.addImport(Set.class);
         one.addImport(HashSet.class);
         one.addImport(many.getQualifiedName());
         Field<JavaClass> oneField = one.addField("private Set<" + many.getName() + "> " + fieldName + "= new HashSet<"
                  + many.getName() + ">();");
         Annotation<JavaClass> annotation = oneField.addAnnotation(OneToMany.class);
         Refactory.createGetterAndSetter(one, oneField);

         if ((inverseFieldName != null) && !inverseFieldName.isEmpty())
         {
            annotation.setStringValue("mappedBy", inverseFieldName);
            annotation.setLiteralValue("cascade", "CascadeType.ALL");
            annotation.getOrigin().addImport(CascadeType.class);
            annotation.setLiteralValue("orphanRemoval", "true");

            many.addImport(one);
            Field<JavaClass> manyField = many.addField("private " + one.getName() + " " + inverseFieldName + ";");
            manyField.addAnnotation(ManyToOne.class);
            Refactory.createGetterAndSetter(many, manyField);
            java.saveJavaSource(many);
         }
         java.saveJavaSource(one);
View Full Code Here


         {
            strategy = RestConfigurationStrategyFactory.createUsingWebXml(path);
         }
         else
         {
            JavaClass javaClass = JavaParser.create(JavaClass.class).setPackage(targetPackage.getValue())
                     .setName(className.getValue());
            strategy = RestConfigurationStrategyFactory.createUsingJavaClass(path, javaClass);
         }
         facet.setConfigurationStrategy(strategy);
         return Results.success("JAX-RS has been installed.");
View Full Code Here

                  out.println(ShellColor.RED, "[fields]");
               }

               if (javaSource instanceof JavaClass)
               {
                  JavaClass javaClass = (JavaClass) javaSource;
                  List<Field<JavaClass>> fields = javaClass.getFields();

                  for (Field<JavaClass> field : fields)
                  {
                     String entry = out.renderColor(ShellColor.BLUE, field.getVisibility().scope());
                     entry += out.renderColor(ShellColor.GREEN, DELIM + field.getType() + "");
                     entry += DELIM + field.getName() + ";";
                     output.add(entry);
                  }

                  if (out.isPiped())
                  {
                     GeneralUtils.OutputAttributes attr = new GeneralUtils.OutputAttributes(120, 1);
                     printOutColumns(output, ShellColor.NONE, out, attr, null, false);
                  }
                  else
                  {
                     GeneralUtils.printOutColumns(output, out, shell, true);
                     out.println();
                  }

                  // rinse and repeat for methods
                  output = new ArrayList<String>();
                  List<Method<JavaClass>> methods = javaClass.getMethods();

                  if (!out.isPiped())
                  {
                     out.println(ShellColor.RED, "[methods]");
                  }
View Full Code Here

      if (field == null)
      {
         throw new IllegalArgumentException("The parameter 'field' cannot be null");
      }

      final JavaClass javaClass = field.getOrigin();
      final String accessorMethodSuffix = getAccessorMethodSuffix(field);

      Method<JavaClass> method = null;
      if (field.isType(Boolean.class) || field.isType(Boolean.TYPE) || field.isType(boolean.class))
      {
         method = javaClass.getMethod(IS_PREFIX + accessorMethodSuffix);
      }
      if (method == null)
      {
         method = javaClass.getMethod(GET_PREFIX + accessorMethodSuffix);
      }
      return method;
   }
View Full Code Here

            throw new IllegalArgumentException("The parameter 'annotationClass' cannot be null");
        }

        if (resource instanceof JavaResource)
        {
            final JavaClass javaClass = getJavaClassFromResource(resource);
            return javaClass.hasAnnotation(annotationClass);
        }
        else if (resource instanceof JavaMemberResource)
        {
            final JavaMemberResource javaMemberResource = (JavaMemberResource) resource;
            return javaMemberResource.getUnderlyingResourceObject().hasAnnotation(annotationClass);
View Full Code Here

   {
      JavaResource javaResource;
      Project project = getSelectedProject(context);
      if (project == null)
      {
         JavaClass javaClass = createCommand(named.getValue(), targetPackage.getValue(), categories.getValue());
         javaResource = getJavaResource(targetLocation.getValue(), javaClass.getName());
         javaResource.setContents(javaClass);
      }
      else
      {
         final JavaSourceFacet java = project.getFacet(JavaSourceFacet.class);
         JavaClass javaClass = createCommand(named.getValue(), targetPackage.getValue(), categories.getValue());
         javaResource = java.saveJavaSource(javaClass);
      }
      context.getUIContext().setSelection(javaResource);
      return Results.success("Command " + javaResource + " created");
   }
View Full Code Here

   }

   private JavaClass createCommand(String commandName, String targetPackage, Iterable<String> categories)
   {
      // TODO Replace with Templates addon?
      JavaClass command = javaSourceFactory.create(JavaClass.class)
               .setName(commandName)
               .setPublic();

      if (targetPackage != null && !targetPackage.isEmpty())
         command.setPackage(targetPackage);

      command.setSuperType(AbstractUICommand.class);
      command.addImport(UIBuilder.class);
      command.addImport(UIContext.class);
      command.addImport(UIExecutionContext.class);
      command.addImport(UICommandMetadata.class);
      command.addImport(Metadata.class);
      command.addImport(Categories.class);
      command.addImport(Result.class);
      command.addImport(Results.class);

      Method<JavaClass> getMetadataMethod = command.addMethod()
               .setPublic()
               .setName("getMetadata")
               .setReturnType(UICommandMetadata.class)
               .setParameters("UIContext context");
      getMetadataMethod.addAnnotation(Override.class);

      String getMetadataMethodBody = "return Metadata.forCommand(" + command.getName() + ".class" + ")\n"
               + "\t.name(\"" + commandName + "\")";
      Iterator<String> iterator = categories.iterator();
      if (iterator.hasNext())
      {
         getMetadataMethodBody += "\t.category(Categories.create(";
         while (iterator.hasNext())
         {
            getMetadataMethodBody += "\"" + iterator.next() + "\"";
            if (iterator.hasNext())
               getMetadataMethodBody += ", ";
         }
         getMetadataMethodBody += "))";
      }
      getMetadataMethodBody += ";";
      getMetadataMethod.setBody(getMetadataMethodBody);

      command.addMethod()
               .setPublic()
               .setName("initializeUI")
               .setReturnTypeVoid()
               .setBody("// not implemented")
               .setParameters("UIBuilder builder")
               .addThrows(Exception.class)
               .addAnnotation(Override.class);

      command.addMethod()
               .setPublic()
               .setName("execute")
               .setReturnType(Result.class)
               .setParameters("UIExecutionContext context")
               .setBody("return Results.fail(\"Not implemented!\");")
View Full Code Here

   @Override
   public Result execute(UIExecutionContext context) throws Exception
   {
      UIContext uiContext = context.getUIContext();
      Project project = getSelectedProject(uiContext);
      JavaClass javaClass = javaSourceFactory.create(JavaClass.class).setName(named.getValue())
               .setPackage(packageName.getValue());

      // Add imports
      javaClass.addImport("org.jboss.arquillian.container.test.api.Deployment");
      javaClass.addImport("org.jboss.arquillian.junit.Arquillian");
      javaClass.addImport("org.junit.runner.RunWith");
      javaClass.addImport("org.jboss.forge.arquillian.AddonDependency");
      javaClass.addImport("org.jboss.forge.arquillian.Dependencies");
      javaClass.addImport("org.jboss.forge.arquillian.archive.ForgeArchive");
      javaClass.addImport("org.jboss.forge.furnace.repositories.AddonDependencyEntry");
      javaClass.addImport("org.jboss.shrinkwrap.api.ShrinkWrap");

      // Add Arquillian annotation
      javaClass.addAnnotation("RunWith").setLiteralValue("Arquillian.class");

      // Create getDeployment method
      StringBuilder body = new StringBuilder(
               "ForgeArchive archive = ShrinkWrap.create(ForgeArchive.class).addBeansXML()");
      StringBuilder dependenciesAnnotationBody = new StringBuilder();
      if (addonDependencies.hasValue())
      {
         body.append(".addAsAddonDependencies(");
         Iterator<AddonId> it = addonDependencies.getValue().iterator();
         while (it.hasNext())
         {
            AddonId addonId = it.next();
            Dependency dependency = DependencyBuilder.create(addonId.getName()).setVersion(
                     addonId.getVersion().toString());
            String name = addonId.getName();
            String version = null;
            if (dependencyInstaller.isInstalled(project, dependency))
            {
               version = addonId.getVersion().toString();
            }
            body.append("AddonDependencyEntry.create(\"").append(name);
            dependenciesAnnotationBody.append("@AddonDependency(name = \"").append(name);
            if (version != null)
            {
               body.append("\", \"");
               body.append(version);
               dependenciesAnnotationBody.append("\", version=\"");
               dependenciesAnnotationBody.append(version);
            }

            body.append("\")");
            dependenciesAnnotationBody.append("\")");
            if (it.hasNext())
            {
               body.append(",");
               dependenciesAnnotationBody.append(",");
            }
         }
         body.append(")");
      }
      body.append(";");
      body.append("return archive;");
      Method<JavaClass> getDeployment = javaClass.addMethod().setName("getDeployment").setPublic().setStatic(true)
               .setBody(body.toString());
      getDeployment.addAnnotation("Deployment");
      String annotationBody = dependenciesAnnotationBody.toString();
      if (annotationBody.length() > 0)
      {
         getDeployment.addAnnotation("Dependencies").setLiteralValue("{" + annotationBody + "}");
      }

      JavaSourceFacet facet = project.getFacet(JavaSourceFacet.class);
      JavaResource javaResource = facet.saveTestJavaSource(javaClass);
      uiContext.setSelection(javaResource);
      return Results.success("Test class " + javaClass.getQualifiedName() + " created");
   }
View Full Code Here

   public MethodImpl(final O parent, final String method)
   {
      init(parent);

      String stub = "public class Stub { " + method + " }";
      JavaClass temp = (JavaClass) JavaParser.parse(stub);
      List<Method<JavaClass>> methods = temp.getMethods();
      MethodDeclaration newMethod = (MethodDeclaration) methods.get(0).getInternal();
      MethodDeclaration subtree = (MethodDeclaration) ASTNode.copySubtree(cu.getAST(), newMethod);
      this.method = subtree;
   }
View Full Code Here

   @Override
   public Method<O> setBody(final String body)
   {
      String stub = "public class Stub { public void method() {" + body + "} }";
      JavaClass temp = (JavaClass) JavaParser.parse(stub);
      List<Method<JavaClass>> methods = temp.getMethods();
      Block block = ((MethodDeclaration) methods.get(0).getInternal()).getBody();

      block = (Block) ASTNode.copySubtree(method.getAST(), block);
      method.setBody(block);
View Full Code Here

TOP

Related Classes of org.jboss.forge.parser.java.JavaClass

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.