package org.anodyneos.xpImpl.util; import java.util.ArrayList; import java.util.Iterator; public class JavaClass { private String className; private String packageName; private String classExtends; private ArrayList imports = new ArrayList(); private ArrayList interfaces = new ArrayList(); // constructors public JavaClass() { } // setters public void setExtends(String s) { this.classExtends = s; } public void addImport(String s) { this.imports.add(s); } public void addInterface(String s) { this.interfaces.add(s); } // getters public void setFullClassName(String fullClassName) { if (null == fullClassName) { this.packageName = null; this.className = null; } else { fullClassName = fullClassName.trim(); int lastDot = fullClassName.lastIndexOf("."); if (lastDot != -1) { this.packageName = fullClassName.substring(0, lastDot); this.className = fullClassName.substring(lastDot + 1); } else { this.packageName = null; this.className = fullClassName; } } } public String getFullClassName() { if(packageName != null) { return packageName + "." + className; } else { return className; } } public void setPackageName(String packageName) { packageName = packageName.trim(); this.packageName = packageName; } public String getPackageName() { return this.packageName; } public void setClassName(String className) { className = className.trim(); this.className = className; } public String getClassName() { return this.className; } // printers public void printHeader(CodeWriter out) { printPackage(out); printImports(out); printClassDeclaration(out); } public void printPackage(CodeWriter out) { if (null != packageName) { out.printIndent().println("package " + packageName + ";"); out.println(); } } public void printImports(CodeWriter out) { Iterator it = imports.iterator(); boolean hasAny = false; while (it.hasNext()) { hasAny = true; out.printIndent().println("import " + it.next() + ";"); } if (hasAny) out.println(); } public void printClassDeclaration(CodeWriter out) { out.printIndent().print("public class " + className); if(null != classExtends) { out.print(" extends " + classExtends); } if(interfaces.size() > 0) { out.print(" implements "); for (int i = 0; i < interfaces.size(); i++) { if(i != 0) { out.print(", "); } out.print(interfaces.get(i)); } } out.println(" {"); out.println(); out.indentPlus(); } }