package com.dbgen; import java.io.PrintStream; class MethodVarSetter implements Visitor { static void make(Variable var, PrintStream ps, String prefix) { var.getType().accept(new MethodVarSetter(var, ps, prefix)); } private Variable var; private PrintStream ps; private String prefix; private String varname; private String this_varname; private String Varname; private MethodVarSetter(Variable var, PrintStream ps, String prefix) { this.var = var; this.ps = ps; this.prefix = prefix; this.varname = var.getName(); this.this_varname = "this." + this.varname; this.Varname = StringUtils.upper1(varname); } @Override public void visit(Jbean type) { simple2(type.getLastName()); } @Override public void visit(TypeString type) { simple("String", true); } private void simple(String typename) { simple(typename, false); } private void simple(String typename, boolean checknull) { ps.println(prefix + "public void set" + Varname + "(" + typename + " "+varname.toLowerCase()+") { " + var.getComment()); ps.println(prefix + " updateString(" + StringUtils.quote(varname) + "," +varname.toLowerCase() + ");"); ps.println(prefix + " " + this_varname + " = "+varname.toLowerCase()+";"); ps.println(prefix + "}"); ps.println(""); } private void simple2(String typename) { ps.println(prefix + "public void set" + Varname + "(" + typename + " "+varname.toLowerCase()+") { " + var.getComment()); ps.println(prefix + " updateString(" + StringUtils.quote(varname) + "," +varname.toLowerCase() + ");"); ps.println(prefix + " "+varname.toLowerCase() + ".init(getRootId(),getMongoKey()+ "+StringUtils.quotepot(varname)+");"); ps.println(prefix + " " + this_varname + " = "+varname.toLowerCase()+";"); ps.println(prefix + "}"); ps.println(""); } @Override public void visit(TypeBoolean type) { simple("boolean"); } @Override public void visit(TypeShort type) { simple("short"); } @Override public void visit(TypeInt type) { simple("int"); } @Override public void visit(TypeLong type) { simple("long"); } @Override public void visit(TypeFloat type) { simple("float"); } @Override public void visit(TypeDouble type) { simple("double"); } @Override public void visit(TypeList type) { // unsupported } @Override public void visit(TypeSet type) { // unsupported } @Override public void visit(TypeMap type) { // ps.println(prefix + "public void set" + Varname + "(" + typename + " "+varname.toLowerCase()+") { " + var.getComment()); // ps.println(prefix + " updateString (" + StringUtils.quote(varname).toLowerCase() + "," +varname.toLowerCase() + ");"); // ps.println(prefix + " "+varname.toLowerCase() + ".init(getRootId(),getMongoKey()+ "+StringUtils.quotepot(varname.toLowerCase())+");"); // ps.println(prefix + " " + this_varname + " = "+varname.toLowerCase()+";"); // ps.println(prefix + "}"); // ps.println(""); } }