miduo_server/jieling-dbgen/src/main/java/com/dbgen/JbeanFormatter.java

67 lines
1.9 KiB
Java

package com.dbgen;
import java.io.PrintStream;
import java.util.List;
class JbeanFormatter {
public static void make(Jbean jbean) {
try (PrintStream ps = Ldbgen.openJBeanFile(jbean.getName())) {
new JbeanFormatter(jbean, ps).make();
}
}
private final Jbean xbean;
private final PrintStream ps;
private final List<Variable> variables;
private JbeanFormatter(Jbean xbean, PrintStream ps) {
this.xbean = xbean;
this.ps = ps;
this.variables = xbean.getVariables();
}
private void make() {
String cls = xbean.getName();
ps.println("package com.ljsd.jieling.jbean;");
ps.println();
ps.println("import com.ljsd.common.mogodb.MongoBase;");
ps.println("import java.util.Map;");
ps.println("import java.util.HashMap;");
ps.println("import java.util.Set;");
ps.println("import java.util.HashSet;");
ps.println("import java.util.List;");
ps.println("import java.util.LinkedList;");
ps.println("import org.springframework.data.annotation.Transient;");
ps.println("import com.ljsd.common.mogodb.dblog.*;");
ps.println();
ps.println("public final class " + cls + " extends MongoBase " + " {");
ClassDeclare.make(variables,ps, " ");
//variables.forEach(var -> ClassDeclare.make(var, ClassDeclare.Type.PRIVATE, ps, " "));
ps.println();
ps.println(" public " + cls + "() {");
ps.println(" }");
ps.println();
ps.println();
ps.println(" public " + cls + "(" + cls + " _o_ ) {");
variables.forEach(var -> VarDeepCopy.make(var, ps, " "));
ps.println(" }");
ps.println();
//
// ps.println(" public void copyFrom(" + cls + " _o_) {");
// variables.forEach(var -> VarCopyFrom.make(var, ps, " "));
// ps.println(" }");
// ps.println();
//MethodSetMongoKey.make(variables, ps, " ");
// getter setter
variables.forEach(var -> MethodVarGetter.make(var, ps, " "));
variables.forEach(var -> MethodVarSetter.make(var, ps, " "));
ps.println();
Trace.make(xbean, ps, " ");
ps.println("}");
}
}