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

113 lines
3.2 KiB
Java

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("");
}
}