private void setCurrentWorkingResource(UIExecutionContext context, JavaClassSource javaClass) throws FileNotFoundException { Project selectedProject = getSelectedProject(context); if (selectedProject != null) { JavaSourceFacet facet = selectedProject.getFacet(JavaSourceFacet.class); facet.saveJavaSource(javaClass); } context.getUIContext().setSelection(javaClass); }
private void createCRUDRepository(JavaClassSource entitySource, Project project) { // build interface declaration final String name = entitySource.getName(); final String idFieldType = entitySource.getFields().stream() .filter(field -> field.hasAnnotation(Id.class)) .findFirst() .orElseThrow(IllegalArgumentException::new) .getType() .getSimpleName(); final String repoInterfaceDeclaration = "public interface " + name + "Repository extends CrudRepository<" + name + "," + idFieldType + "> {}"; JavaInterfaceSource repoSource = Roaster.parse(JavaInterfaceSource.class, repoInterfaceDeclaration) .setPackage(entitySource.getPackage()); repoSource.addImport("org.springframework.data.repository.CrudRepository"); Roaster.format(repoSource.toString()); // Create Java Classes Greeting and GreetingProperties JavaSourceFacet facet = project.getFacet(JavaSourceFacet.class); facet.saveJavaSource(repoSource); }
project.getFacet(JavaSourceFacet.class).saveJavaSource(entity);
public static void modifyJavaClass(Project project, String className, Optional<String> packageName, JavaClassSourceDecorator decorator) { final String packageLocation = packageName.orElseGet(() -> project.getFacet(MetadataFacet.class).getProjectGroupName()); final JavaSourceFacet sourceFacet = project.getFacet(JavaSourceFacet.class); final DirectoryResource targetPackage = sourceFacet.getPackage(packageLocation); final JavaResource sbAppResource = targetPackage.getChild(className).as(JavaResource.class); if (sbAppResource.exists()) { JavaClassSource sbApp = Roaster.parse(JavaClassSource.class, sbAppResource.getResourceInputStream()); decorator.modify(sbApp); sourceFacet.saveJavaSource(sbApp); } }
@Override public void install(Project project) { JavaSourceFacet facet = project.getFacet(JavaSourceFacet.class); applicationClass.setSuperType(Application.class); if (applicationClass.hasAnnotation(ApplicationPath.class)) { applicationClass.getAnnotation(ApplicationPath.class).setStringValue(path); } else { applicationClass.addAnnotation(ApplicationPath.class).setStringValue(path); } facet.saveJavaSource(applicationClass); }
private String addJavaVerticle(Project project, String packageName, String className, boolean isMain) { JavaSourceFacet source = project.getFacet(JavaSourceFacet.class); String topLevelPackage; if (packageName == null) { topLevelPackage = source.getBasePackage(); } else { topLevelPackage = packageName; } if (className.endsWith(".java")) { className = className.substring(0, className.length() - ".java".length()); } JavaClassSource mainVerticle = Roaster.create(JavaClassSource.class) .setPackage(topLevelPackage) .setAbstract(false) .setName(className) .setSuperType("io.vertx.core.AbstractVerticle"); mainVerticle .addImport("io.vertx.core.*"); mainVerticle.addMethod().setName("start").setBody( "vertx.createHttpServer().requestHandler(req -> req.response().end(\"Hello World!\")).listen(8080);") .setPublic() .addAnnotation(Override.class); JavaResource resource = source.saveJavaSource(mainVerticle.getEnclosingType()); if (isMain) { ForgeUtils.addPropertyToProject(project, "vertx.verticle", topLevelPackage + "." + className); } addJavaVerticleTest(project,packageName,className); return resource.toString(); }
@Override public Result execute(UIExecutionContext context) throws Exception { UIContext uiContext = context.getUIContext(); Project project = getSelectedProject(uiContext); JavaSourceFacet javaSourceFacet = project.getFacet(JavaSourceFacet.class); SOURCETYPE source = buildJavaSource(javaSourceFacet); JavaResource javaResource; if (source.hasSyntaxErrors()) { UIOutput output = uiContext.getProvider().getOutput(); PrintStream err = output.err(); err.println("Syntax Errors:"); for (SyntaxError error : source.getSyntaxErrors()) { err.println(error); } err.println(); return Results.fail("Syntax Errors found. See above"); } else { SOURCETYPE decorated = delegate.decorateSource(context, project, source); if (decorated != null) source = decorated; javaResource = javaSourceFacet.saveJavaSource(source); } uiContext.setSelection(javaResource); return Results.success(getType() + " " + source.getQualifiedName() + " was created"); }
javaSourceFacet.saveJavaSource(javaSource);
@Override public Result execute(UIExecutionContext context) throws Exception { Map<Object, Object> attributeMap = context.getUIContext().getAttributeMap(); Project project = (Project) attributeMap.get(Project.class); if (project.hasFacet(JavaSourceFacet.class)) { JavaSourceFacet facet = project.getFacet(JavaSourceFacet.class); MetadataFacet metadata = project.getFacet(MetadataFacet.class); if (createMain.getValue()) { JavaClassSource javaClass = Roaster .create(JavaClassSource.class) .setPackage(facet.getBasePackage()) .setName("Main") .addMethod("public static void main(String[] args) {}") .setBody("System.out.println(\"Hi there! I was forged as part of the project you call " + metadata.getProjectName() + ".\");") .getOrigin(); facet.saveJavaSource(javaClass); } } return null; } }
method.addAnnotation(GET.class); method.addAnnotation(javax.ws.rs.Produces.class).setStringArrayValue(new String[] { MediaType.TEXT_PLAIN }); facet.saveJavaSource(restEndpoint);
facet.saveJavaSource(createGreetingClass(source)); facet.saveJavaSource(createGreetingPropertiesClass(source));
@Override public void setupSimpleAddonProject(Project project, Iterable<AddonId> dependencyAddons) throws FileNotFoundException, FacetNotFoundException { FacetFactory facetFactory = getFacetFactory(); generateReadme(project); facetFactory.install(project, FurnaceVersionFacet.class); facetFactory.install(project, ForgeVersionFacet.class); facetFactory.install(project, ForgeBOMFacet.class); facetFactory.install(project, FurnacePluginFacet.class); facetFactory.install(project, AddonClassifierFacet.class); facetFactory.install(project, JavaSourceFacet.class); facetFactory.install(project, ResourcesFacet.class); facetFactory.install(project, JavaCompilerFacet.class); facetFactory.install(project, DefaultFurnaceContainerFacet.class); facetFactory.install(project, CDIFacet_1_1.class); facetFactory.install(project, AddonTestFacet.class); JavaSourceFacet javaSource = project.getFacet(JavaSourceFacet.class); javaSource.saveJavaSource(Roaster.create(JavaPackageInfoSource.class).setPackage(javaSource.getBasePackage())); installSelectedAddons(project, dependencyAddons, false); }
private void createRepositoryConfiguration(JavaClassSource entitySource, Project project) { final String entitySourcePackage = entitySource.getPackage(); // only create repository configuration if we haven't done so already JavaSourceFacet facet = project.getFacet(JavaSourceFacet.class); final DirectoryResource entityPackage = facet.getPackage(entitySourcePackage); final Resource<?> configuration = entityPackage.getChild(REPOSITORY_CONFIGURATION + ".java"); if (configuration == null || !configuration.exists()) { final JavaClassSource source = Roaster.create(JavaClassSource.class) .setName(REPOSITORY_CONFIGURATION) .setPackage(entitySourcePackage); source.addImport("org.springframework.context.annotation.Configuration"); source.addImport("org.springframework.boot.autoconfigure.EnableAutoConfiguration"); source.addImport("org.springframework.transaction.annotation.EnableTransactionManagement"); source.addImport("org.springframework.boot.autoconfigure.domain.EntityScan"); source.addImport("org.springframework.data.jpa.repository.config.EnableJpaRepositories"); source.addAnnotation("Configuration"); source.addAnnotation("EnableAutoConfiguration"); source.addAnnotation("EnableTransactionManagement"); source.addAnnotation("EntityScan") .setStringArrayValue("basePackages", new String[]{entitySourcePackage}); source.addAnnotation("EnableJpaRepositories") .setStringArrayValue("basePackages", new String[]{entitySourcePackage}); facet.saveJavaSource(source); } } }
this.project.getFacet(JavaSourceFacet.class).saveJavaSource(entity);
javaSource.saveJavaSource(Roaster.create(JavaPackageInfoSource.class).setPackage(javaSource.getBasePackage()));