@Override public <NESTED_TYPE extends JavaSource<?>> NESTED_TYPE addNestedType(Class<NESTED_TYPE> type) { JavaSource<?> nestedType = Roaster.create(type); return (NESTED_TYPE) addNestedType(nestedType); }
@Override public <NESTED_TYPE extends JavaSource<?>> NESTED_TYPE addNestedType(Class<NESTED_TYPE> type) { if (type != JavaClassSource.class) { throw new IllegalArgumentException(ENUM_CONSTANTS_BODY_ALLOW_ONLY_CLASSES_TO_BE_ADDED); } JavaSource<?> nestedType = Roaster.create(type); return (NESTED_TYPE) addNestedType(nestedType); }
@Override public <NESTED_TYPE extends JavaSource<?>> NESTED_TYPE addNestedType(Class<NESTED_TYPE> type) { if (type != JavaClassSource.class) { throw new IllegalArgumentException(ENUM_CONSTANTS_BODY_ALLOW_ONLY_CLASSES_TO_BE_ADDED); } JavaSource<?> nestedType = Roaster.create(type); return (NESTED_TYPE) addNestedType(nestedType); }
@Override public <NESTED_TYPE extends JavaSource<?>> NESTED_TYPE addNestedType(Class<NESTED_TYPE> type) { JavaSource<?> nestedType = Roaster.create(type); return (NESTED_TYPE) addNestedType(nestedType); }
javaType instanceof JavaInterfaceSource ? (JavaEnumSource) javaType : Roaster.create(JavaEnumSource.class)); } else if (bean instanceof Class) { if (((Class) bean).isInterface()) { javaType instanceof JavaInterfaceSource ? (JavaInterfaceSource) javaType : Roaster.create(JavaInterfaceSource.class)); } else { formattedSource = Generators.beanGenerator.generate((Class) bean, javaType instanceof JavaClassSource ? (JavaClassSource) javaType : Roaster.create(JavaClassSource.class));
final String pkg = moduleName.substring(0, moduleName.lastIndexOf('.')); final JavaClassSource javaClass = Roaster.create(JavaClassSource.class);
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 DirectoryResource saveTestPackage(String packageName, boolean createPackageInfo) { DirectoryResource child = getTestPackage(packageName); if (!child.exists()) { child.mkdirs(); } if (createPackageInfo) { JavaPackageInfoSource packageInfo = Roaster.create(JavaPackageInfoSource.class).setPackage(packageName); JavaResource resource = child.getChild("package-info.java").reify(JavaResource.class); resource.setContents(packageInfo); } return child; }
@Override public DirectoryResource savePackage(String packageName, boolean createPackageInfo) { DirectoryResource child = getPackage(packageName); if (!child.exists()) { child.mkdirs(); } if (createPackageInfo) { JavaPackageInfoSource packageInfo = Roaster.create(JavaPackageInfoSource.class).setPackage(packageName); JavaResource resource = child.getChild("package-info.java").reify(JavaResource.class); resource.setContents(packageInfo); } return child; }
public static JavaClassSource createGreetingPropertiesClass(JavaClassSource current) { JavaClassSource source = Roaster.create(JavaClassSource.class).setName("GreetingProperties").setPackage(current.getPackage()); source.addAnnotation(Component.class); source.addAnnotation(ConfigurationProperties.class).setStringValue("greeting"); source.addProperty(String.class, "message").getField().setStringInitializer("Hello, %s!"); return source; }
JavaClassSource javaClass = Roaster.create(JavaClassSource.class); javaClass.setPackage(packageName); javaClass.setName(className);
public static JavaClassSource createGreetingClass(JavaClassSource current) { JavaClassSource source = Roaster.create(JavaClassSource.class).setName("Greeting").setPackage(current.getPackage()); source.addMethod().setPublic().setConstructor(true).setBody("this.id = 0;this.content = null;"); source.addMethod().setPublic().setConstructor(true).setParameters("long id, String content").setBody("this.id = id; this.content = content;"); source.addProperty(String.class, "content"); source.addProperty("long", "id"); Roaster.format(source.toString()); return source; }
@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; } }
@Override public Result execute(UIExecutionContext context) throws Exception { Project project = getSelectedProject(context); final DependencyFacet dependencyFacet = project.getFacet(DependencyFacet.class); if (!isArquillianWildflySwarmDependencyInstalled(dependencyFacet)) { installArquillianWildflySwarmDependency(dependencyFacet); } JavaClassSource test = Roaster.create(JavaClassSource.class) .setPackage(targetPackage.getValue()) .setName(named.getValue()); addArquillianRunner(test); addDefaultDeploymentAnnotation(test, project); addArquillianResourceEnricher(test); addTestMethod(test); JavaSourceFacet facet = project.getFacet(JavaSourceFacet.class); facet.saveTestJavaSource(test); return Results.success(String.format("Test Class %s.%s was created", targetPackage.getValue(), named.getValue())); }
JavaClassSource restEndpoint = Roaster.create(JavaClassSource.class) .setPackage(facet.getBasePackage() + ".rest") .setName("HelloWorldEndpoint");
@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); }
JavaClassSource builderClass = Roaster.create(JavaClassSource.class) .setName(builderClassName) .setPackage(javaClass.getPackage());
JavaClassSource builderClass = Roaster.create(JavaClassSource.class) .setName(builderClassName) .setPackage(javaClass.getPackage());
@SuppressWarnings("unchecked") private SOURCETYPE buildJavaSource(JavaSourceFacet javaFacet) { if (!named.hasValue() && !named.hasDefaultValue()) { return null; } SOURCETYPE source = (SOURCETYPE) Roaster.create(getSourceType()).setName(named.getValue()); if (targetPackage.hasValue() || targetPackage.hasDefaultValue()) { source.setPackage(targetPackage.getValue()); } else { source.setPackage(javaFacet.getBasePackage()); } if (source instanceof ExtendableSource && extendsType.isEnabled() && extendsType.hasValue()) { ExtendableSource<?> extendableSource = (ExtendableSource<?>) source; extendSuperType(extendableSource, extendsType.getValue(), javaFacet); } if (source instanceof InterfaceCapableSource && implementsType.isEnabled() && implementsType.hasValue()) { InterfaceCapableSource<?> interfaceCapableSource = (InterfaceCapableSource<?>) source; implementInterface(interfaceCapableSource, implementsType.getValue(), javaFacet); } return source; }
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); } } }