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 static void adjustQuickSearch() throws Exception { JavaClassSource javaClass = Roaster.parse(JavaClassSource.class, new File(QUICK_SEARCH_PATH)); // Set all field public javaClass.getField("id").setPublic(); javaClass.getField("name").setPublic(); javaClass.getField("mode").setPublic(); javaClass.getField("category").setPublic(); javaClass.getField("keyword").setPublic(); javaClass.getField("advanceSearch").setPublic(); javaClass.getField("minRating").setPublic(); javaClass.getField("time").setPublic(); javaClass.addMethod("\t@Override\n" + "\tpublic String toString() {\n" + "\t\treturn name;\n" + "\t}"); FileWriter fileWriter = new FileWriter(QUICK_SEARCH_PATH); fileWriter.write(javaClass.toString()); fileWriter.close(); }
javaClass.addMethod("\t@Override\n" + "\tpublic int describeContents() {\n" + "\t\treturn 0;\n" + "\t}"); javaClass.addMethod("\t@Override\n" + "\tpublic void writeToParcel(Parcel dest, int flags) {\n" + "\t\tsuper.writeToParcel(dest, flags);\n" + "\t\tdest.writeLong(this.time);\n" + "\t}"); javaClass.addMethod("\tprotected LocalFavoriteInfo(Parcel in) {\n" + "\t\tsuper(in);\n" + "\t\tthis.time = in.readLong();\n" + javaClass.addImport("android.os.Parcel"); javaClass.addMethod("\tpublic LocalFavoriteInfo(GalleryInfo galleryInfo) {\n" + "\t\tthis.gid = galleryInfo.gid;\n" + "\t\tthis.token = galleryInfo.token;\n" +
javaClass.getField("time").setPublic(); javaClass.addMethod("\t@Override\n" + "\tpublic int describeContents() {\n" + "\t\treturn 0;\n" + "\t}"); javaClass.addMethod("\t@Override\n" + "\tpublic void writeToParcel(Parcel dest, int flags) {\n" + "\t\tsuper.writeToParcel(dest, flags);\n" + "\t\tdest.writeLong(this.time);\n" + "\t}"); javaClass.addMethod("\tprotected BookmarkInfo(Parcel in) {\n" + "\t\tsuper(in);\n" + "\t\tthis.page = in.readInt();\n" + javaClass.addImport("android.os.Parcel"); javaClass.addMethod("\tpublic BookmarkInfo(GalleryInfo galleryInfo) {\n" + "\t\tthis.gid = galleryInfo.gid;\n" + "\t\tthis.token = galleryInfo.token;\n" +
javaClass.getField("time").setPublic(); javaClass.addMethod("\t@Override\n" + "\tpublic int describeContents() {\n" + "\t\treturn 0;\n" + "\t}"); javaClass.addMethod("\t@Override\n" + "\tpublic void writeToParcel(Parcel dest, int flags) {\n" + "\t\tsuper.writeToParcel(dest, flags);\n" + "\t\tdest.writeLong(this.time);\n" + "\t}"); javaClass.addMethod("\tprotected HistoryInfo(Parcel in) {\n" + "\t\tsuper(in);\n" + "\t\tthis.mode = in.readInt();\n" + javaClass.addImport("android.os.Parcel"); javaClass.addMethod("\tpublic HistoryInfo(GalleryInfo galleryInfo) {\n" + "\t\tthis.gid = galleryInfo.gid;\n" + "\t\tthis.token = galleryInfo.token;\n" +
javaClass.getField("label").setPublic(); javaClass.addMethod("\t@Override\n" + "\tpublic int describeContents() {\n" + "\t\treturn 0;\n" + "\t}"); javaClass.addMethod("\t@Override\n" + "\tpublic void writeToParcel(Parcel dest, int flags) {\n" + "\t\tsuper.writeToParcel(dest, flags);\n" + "\t\tdest.writeString(this.label);\n" + "\t}"); javaClass.addMethod("\tprotected DownloadInfo(Parcel in) {\n" + "\t\tsuper(in);\n" + "\t\tthis.state = in.readInt();\n" + javaClass.addField("public int total"); javaClass.addMethod("\tpublic DownloadInfo(GalleryInfo galleryInfo) {\n" + "\t\tthis.gid = galleryInfo.gid;\n" + "\t\tthis.token = galleryInfo.token;\n" +
JavaClassSource source = Roaster.create(JavaClassSource.class); source.setName("MyClass").setPublic(); source.addMethod().setName("testMethod").setPrivate().setBody("return null;") .setReturnType(String.class).addAnnotation(MyAnnotation.class); System.out.println(source);
public void createClass() { final JavaClassSource javaClass = Roaster.create(JavaClassSource.class); javaClass.setPackage("com.company.example").setName("Person"); javaClass.addInterface(Serializable.class); javaClass.addField().setName("serialVersionUID").setType("long").setLiteralInitializer("1L").setPrivate() .setStatic(true).setFinal(true); javaClass.addProperty(Integer.class, "id").setMutable(false); javaClass.addProperty(String.class, "firstName"); javaClass.addProperty("String", "lastName"); javaClass.addMethod().setConstructor(true).setPublic().setBody("this.id = id;").addParameter(Integer.class, "id"); try { File file = new File("src/main/java/" + "com.company.example" + "/" + "Person" + ".java"); file.getParentFile().mkdirs(); FileWriter fw = new FileWriter(file.getAbsoluteFile()); BufferedWriter bw = new BufferedWriter(fw); bw.write(javaClass.toString()); bw.close(); } catch (IOException e) { } }
private JavaClassSource createCommand(JavaClassSource command, String commandName, Iterable<String> categories) { MethodSource<JavaClassSource> commandMethod = command.addMethod().setName(toMethodName(command, commandName)) .setReturnType(String.class) .setBody(String.format("return \"Command %s executed\";", commandName)).setPublic(); AnnotationSource<JavaClassSource> commandAnn = commandMethod.addAnnotation(Command.class); List<String> categoryList = new ArrayList<>(Lists.toList(categories)); commandAnn.setStringValue("value", commandName); if (!categoryList.isEmpty()) { commandAnn.setStringArrayValue("categories", categoryList.toArray(new String[categoryList.size()])); } // build the thing return command; }
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 writeCreator(final JavaClassSource javaClass, final Class beanDef) { if (!beanDef.isAbstract() && !javaClass.hasMethodSignature("create")) { final StringBuilder javadoc = new StringBuilder(); javadoc .append("Build a new instance of {@link ").append(beanDef.name()).append("}."); final String body = Templates.use(TemplateName.Creator, beanDef); final MethodSource<?> method = javaClass.addMethod() .setName("of") .setPublic() .setStatic(true) .setBody(body) .setReturnType(beanDef.qualifiedName()); method.getJavaDoc().setFullText(javadoc.toString()) .addTagValue("@return", "a fresh instance"); } else { // javaClass.getMethod(propDef.getName()).setBody(javaClass.getMethod(propDef.getName()).getBody() // + body.toString()); } }
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; }
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"); }
private void addInitializeUIMethod(JavaClassSource command) { command.addMethod() .setPublic() .setName("initializeUI") .setReturnTypeVoid() .setBody("// not implemented") .setParameters("UIBuilder builder") .addThrows(Exception.class) .addAnnotation(Override.class); }
private void addNextMethod(JavaClassSource command) { MethodSource<JavaClassSource> method = command.addMethod().setPublic() .setName("next") .setReturnType(NavigationResult.class) .setParameters("UINavigationContext context"); method.addThrows(Exception.class).addAnnotation(Override.class); try { final String bodyTemplate = loadTextResource( Boolean.TRUE.equals(requireProject.getValue()) ? "nextMethodBodyP.txt" : "nextMethodBody.txt"); method.setBody(String.format(bodyTemplate, command.getName(), script.getValue().getName())); } catch (IOException e) { method.setBody("// ERROR READING BODY TEMPLATE"); } }
private void addExecuteMethod(JavaClassSource command) { command.addMethod() .setPublic() .setName("execute") .setReturnType(Result.class) .setParameters("UIExecutionContext context") .setBody( "return Results.success(\"Command '" + commandName.getValue() + "' successfully executed!\");") .addThrows(Exception.class) .addAnnotation(Override.class); }
protected void addPropertyChangeSupport(JavaClassSource type, ClassPlan plan) { // property change listeners type.addField() .setName("pcs") .setType(PropertyChangeSupport.class) .setPrivate(); final MethodSource<JavaClassSource> listenerAdd = type.addMethod(); listenerAdd.getJavaDoc().setText("Adds a property change listener"); listenerAdd.setPublic() .setName("addPropertyChangeListener") .addParameter(PropertyChangeListener.class, "listener"); listenerAdd.setBody("if(null==this.pcs) this.pcs = new PropertyChangeSupport(this);\n" + "this.pcs.addPropertyChangeListener(listener);"); final MethodSource<JavaClassSource> listenerRemove = type.addMethod(); listenerRemove.getJavaDoc().setText("Removes a property change listener"); listenerRemove.setPublic() .setName("removePropertyChangeListener") .addParameter(PropertyChangeListener.class, "listener"); listenerRemove.setBody("if(this.pcs!=null) this.pcs.removePropertyChangeListener(listener);"); }
protected void addPropertyChangeSupport(JavaClassSource type, ClassPlan plan) { // property change listeners type.addField() .setName("pcs") .setType(PropertyChangeSupport.class) .setPrivate(); final MethodSource<JavaClassSource> listenerAdd = type.addMethod(); listenerAdd.getJavaDoc().setText("Adds a property change listener"); listenerAdd.setPublic() .setName("addPropertyChangeListener") .addParameter(PropertyChangeListener.class, "listener"); listenerAdd.setBody("if(null==this.pcs) this.pcs = new PropertyChangeSupport(this);\n" + "this.pcs.addPropertyChangeListener(listener);"); final MethodSource<JavaClassSource> listenerRemove = type.addMethod(); listenerRemove.getJavaDoc().setText("Removes a property change listener"); listenerRemove.setPublic() .setName("removePropertyChangeListener") .addParameter(PropertyChangeListener.class, "listener"); listenerRemove.setBody("if(this.pcs!=null) this.pcs.removePropertyChangeListener(listener);"); }
private void addMethod(JavaClassSource javaClassSource, org.kie.workbench.common.services.datamodeller.core.Method method, ClassTypeResolver classTypeResolver) throws ClassNotFoundException { MethodSource<JavaClassSource> methodSource = javaClassSource.addMethod(); methodSource.setName(method.getName()); methodSource.setReturnType(buildMethodReturnTypeString(method.getReturnType(), classTypeResolver)); methodSource.setParameters(buildMethodParameterString(method.getParameters(), classTypeResolver)); methodSource.setBody(method.getBody()); methodSource.setVisibility(buildVisibility(method.getVisibilty())); for (Annotation annotation : method.getAnnotations()) { addAnnotation(methodSource, annotation); } }