110 lines
2.3 KiB
Java
110 lines
2.3 KiB
Java
package com.dbgen;
|
|
|
|
|
|
import java.io.PrintStream;
|
|
|
|
class MethodVarGetter implements Visitor {
|
|
|
|
static void make(Variable var, PrintStream ps, String prefix) {
|
|
var.getType().accept(new MethodVarGetter(var, ps, prefix));
|
|
}
|
|
|
|
private Variable var;
|
|
private PrintStream ps;
|
|
private String prefix;
|
|
private String varname;
|
|
private String Varname;
|
|
private String this_varname;
|
|
|
|
private MethodVarGetter(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(this.varname);
|
|
}
|
|
|
|
|
|
|
|
private void simple(Type type) {
|
|
simple(type, this_varname);
|
|
}
|
|
|
|
private void simple(Type type, String ret) {
|
|
|
|
String gettername = TypeName.getGetterName(type);
|
|
|
|
ps.println(prefix + "public " + gettername + " get" + Varname + "() { " + var.getComment());
|
|
if( var.getType() instanceof TypeMap){
|
|
ps.println(prefix + " if( null == " + varname + "Log && "+varname +" != null)");
|
|
ps.println(prefix + " " +varname + "Log = new LogHashMap( this,"+StringUtils.quote(varname)+","+varname+");");
|
|
ps.println(prefix + " return " + ret + "Log;");
|
|
}else if(var.getType() instanceof TypeSet || var.getType() instanceof TypeList){
|
|
ps.println(prefix + " if( null == " + varname + "Log && "+varname +" != null)");
|
|
ps.println(prefix + " " +varname + "Log = new Log"+TypeName.getName(type)+"( this,"+StringUtils.quote(varname)+","+varname+");");
|
|
ps.println(prefix + " return " + ret + "Log;");
|
|
}else {
|
|
ps.println(prefix + " return " + ret + ";");
|
|
}
|
|
ps.println(prefix + "}");
|
|
ps.println("");
|
|
}
|
|
|
|
@Override
|
|
public void visit(TypeString type) {
|
|
simple(type);
|
|
}
|
|
|
|
@Override
|
|
public void visit(TypeBoolean type) {
|
|
simple(type);
|
|
}
|
|
|
|
|
|
@Override
|
|
public void visit(TypeShort type) {
|
|
simple(type);
|
|
}
|
|
|
|
@Override
|
|
public void visit(TypeInt type) {
|
|
simple(type);
|
|
}
|
|
|
|
@Override
|
|
public void visit(TypeLong type) {
|
|
simple(type);
|
|
}
|
|
|
|
@Override
|
|
public void visit(TypeFloat type) {
|
|
simple(type);
|
|
}
|
|
|
|
@Override
|
|
public void visit(TypeDouble type) {
|
|
simple(type);
|
|
}
|
|
@Override
|
|
public void visit(Jbean type) {
|
|
simple(type);
|
|
}
|
|
|
|
@Override
|
|
public void visit(TypeList type) {
|
|
simple(type);
|
|
}
|
|
|
|
@Override
|
|
public void visit(TypeSet type) {
|
|
simple(type);
|
|
}
|
|
|
|
@Override
|
|
public void visit(TypeMap type) {
|
|
simple(type);
|
|
}
|
|
|
|
}
|