private static void adjustFilter() throws Exception { JavaClassSource javaClass = Roaster.parse(JavaClassSource.class, new File(FILTER_PATH)); // Set field public javaClass.getField("mode").setPublic(); javaClass.getField("text").setPublic(); javaClass.getField("enable").setPublic(); // Add hashCode method and equals method javaClass.addImport("com.hippo.util.HashCodeUtils"); javaClass.addMethod("\t@Override\n" + "\tpublic int hashCode() {\n" + "\t\treturn HashCodeUtils.hashCode(mode, text);\n" + "\t}"); javaClass.addImport("com.hippo.yorozuya.ObjectUtils"); javaClass.addMethod("\t@Override\n" + "\tpublic boolean equals(Object o) {\n" + "\t\tif (!(o instanceof Filter)) {\n" + "\t\t\treturn false;\n" + "\t\t}\n" + "\n" + "\t\tFilter filter = (Filter) o;\n" + "\t\treturn filter.mode == mode && ObjectUtils.equal(filter.text, text);\n" + "\t}"); FileWriter fileWriter = new FileWriter(FILTER_PATH); fileWriter.write(javaClass.toString()); fileWriter.close(); } }
private void addImports(JavaClassSource command) { command.addImport(Manifest.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); command.addImport(Project.class); command.addImport(UIWizard.class); command.addImport(UINavigationContext.class); command.addImport(NavigationResult.class); command.addImport(DynJS.class); command.addImport(GlobalObjectFactory.class); command.addImport(GlobalObject.class); command.addImport(EvalStep.class); command.addImport(AddonUtils.class.getName().concat(".*")).setStatic(true); }
private void appendPreload(JavaClassSource javaClass, StringBuilder body, Set<? extends Element> list) { for (final Element element : list) { body.append("\npreloadClass(") .append(getSimpleClassName(element)) .append(".class);\n"); javaClass.addImport(getClassName(element)); } }
private void appendBootComponent(JavaClassSource javaClass, StringBuilder body, Set<? extends Element> list) { for (final Element element : list) { body.append("\nbootComponent(") .append(getSimpleClassName(element)) .append(".class);\n"); javaClass.addImport(getClassName(element)); } }
private void appendRegistrationPoints(JavaClassSource javaClass, StringBuilder body, Set<? extends Element> list) { for (final Element element : list) { final RegistrationPoint r = element.getAnnotation(RegistrationPoint.class); body.append("\ndefine(") .append(getSimpleClassName(element)) .append(".class, ") .append(Boolean.toString(r.exclusive())) .append(", ") .append(Boolean.toString(r.reverse())) .append(");\n"); javaClass.addImport(getClassName(element)); } }
protected void addResourceTypeAnnotation(JavaClassSource type, ClassPlan plan) { type.addImport(ResourceType.class); AnnotationSource<JavaClassSource> typeAnno = type.addAnnotation(); typeAnno.setName("ResourceType"); typeAnno.setStringValue(plan.getResourceType()); if (plan.isSingleton()) { type.addImport(Implicit.class); AnnotationSource<JavaClassSource> implicitMeta = type.addAnnotation(); implicitMeta.setName(Implicit.class.getSimpleName()); } }
protected void addResourceTypeAnnotation(JavaClassSource type, ClassPlan plan) { type.addImport(ResourceType.class); AnnotationSource<JavaClassSource> typeAnno = type.addAnnotation(); typeAnno.setName("ResourceType"); typeAnno.setStringValue(plan.getResourceType()); if (plan.isSingleton()) { type.addImport(Implicit.class); AnnotationSource<JavaClassSource> implicitMeta = type.addAnnotation(); implicitMeta.setName(Implicit.class.getSimpleName()); } }
protected void addAddressAnnotations(JavaClassSource type, ClassPlan plan) { AddressTemplate address = plan.getAddr(); // resource references if (1 == plan.getAddresses().size()) { type.addImport(Address.class); AnnotationSource<JavaClassSource> addressMeta = type.addAnnotation(Address.class); addressMeta.setStringValue(plan.getAddresses().get(0).toString()); } else { type.addImport(Addresses.class); String[] addresses = new String[plan.getAddresses().size()]; int i = 0; for (AddressTemplate addressTemplate : plan.getAddresses()) { addresses[i] = addressTemplate.toString(); i++; } AnnotationSource<JavaClassSource> addressesMeta = type.addAnnotation(Addresses.class); addressesMeta.setStringArrayValue(addresses); } }
protected void addAddressAnnotations(JavaClassSource type, ClassPlan plan) { AddressTemplate address = plan.getAddr(); // resource references if (1 == plan.getAddresses().size()) { type.addImport(Address.class); AnnotationSource<JavaClassSource> addressMeta = type.addAnnotation(Address.class); addressMeta.setStringValue(plan.getAddresses().get(0).toString()); } else { type.addImport(Addresses.class); String[] addresses = new String[plan.getAddresses().size()]; int i = 0; for (AddressTemplate addressTemplate : plan.getAddresses()) { addresses[i] = addressTemplate.toString(); i++; } AnnotationSource<JavaClassSource> addressesMeta = type.addAnnotation(Addresses.class); addressesMeta.setStringArrayValue(addresses); } }
private void writeMapRemove(final JavaClassSource javaClass, final Property propDef) { final String name = "remove" + propDef.getPropertyName(); if (!javaClass.hasMethodSignature(name)) { final StringBuilder javadoc = new StringBuilder(); javadoc .append("@return the pSourcePath\n"); String body = ""; javaClass.addImport("javafx.collections.FXCollections"); body = Templates.use(TemplateName.PropertyRemoveMap, propDef); final MethodSource<?> method = javaClass.addMethod() .setName(name) .setPublic() .setBody(body.toString()) .setReturnType(javaClass.getTypeVariables().isEmpty() ? javaClass.getName() : javaClass.getTypeVariables().get(0).getName()); method.getJavaDoc().setFullText(javadoc.toString()); } else { // javaClass.getMethod(propDef.getName()).setBody(javaClass.getMethod(propDef.getName()).getBody() // + body.toString()); } }
private void writeMapPut(final JavaClassSource javaClass, final Property propDef) { final String name = "put" + propDef.getPropertyName(); if (!javaClass.hasMethodSignature(name)) { final StringBuilder javadoc = new StringBuilder(); javadoc .append("@return the pSourcePath\n"); String body = ""; javaClass.addImport("javafx.collections.FXCollections"); body = Templates.use(TemplateName.PropertyPutMap, propDef); final MethodSource<?> method = javaClass.addMethod() .setName(name) .setPublic() .setBody(body.toString()) .setReturnType(javaClass.getTypeVariables().isEmpty() ? javaClass.getName() : javaClass.getTypeVariables().get(0).getName()); method.getJavaDoc().setFullText(javadoc.toString()); } else { // javaClass.getMethod(propDef.getName()).setBody(javaClass.getMethod(propDef.getName()).getBody() // + body.toString()); } }
private void addArquillianResourceEnricher(JavaClassSource test) { if (asClient.hasValue()) { test.addImport("org.jboss.arquillian.test.api.ArquillianResource"); final FieldSource<JavaClassSource> urlField = test.addField(); urlField .setName("url") .setType(URL.class) .setPrivate(); urlField.addAnnotation("ArquillianResource"); } }
private void addTestMethod(JavaClassSource test) { test.addImport("org.junit.Test"); MethodSource<JavaClassSource> testMethod = test.addMethod() .setPublic() .setReturnTypeVoid() .setName("should_start_service") .setBody(""); testMethod.addAnnotation("Test"); }
public void updateImports(JavaClassSource javaClassSource, Map<String, String> renamedClasses, List<String> deletedClasses) { List<Import> imports = javaClassSource.getImports(); String newClassName; String currentPackage = javaClassSource.isDefaultPackage() ? null : javaClassSource.getPackage(); if (imports != null) { for (Import currentImport : imports) { if (!currentImport.isWildcard() && !currentImport.isStatic()) { if ((newClassName = renamedClasses.get(currentImport.getQualifiedName())) != null) { javaClassSource.removeImport(currentImport); if (!StringUtils.equals(currentPackage, NamingUtils.extractPackageName(newClassName))) { javaClassSource.addImport(newClassName); } } else if (deletedClasses.contains(currentImport.getQualifiedName())) { javaClassSource.removeImport(currentImport); } } } } }
private void addDefaultDeploymentAnnotation(JavaClassSource test, Project project) throws ClassNotFoundException, IOException { test.addImport("org.wildfly.swarm.arquillian.DefaultDeployment"); final AnnotationSource<JavaClassSource> defaultDeploymentAnnotation = test.addAnnotation("DefaultDeployment"); if (asClient.hasValue()) { defaultDeploymentAnnotation.setLiteralValue("testable", "false"); } if (mainClass.hasValue()) { defaultDeploymentAnnotation.setLiteralValue("main", mainClass.getValue() + ".class"); } if (archiveType.hasValue()) { defaultDeploymentAnnotation.setLiteralValue("type", String.format("DefaultDeployment.Type.%s", archiveType.getValue())); } }