blob: 1ea33feaff424f49f9baa87d121c32109c6bb88b [file] [log] [blame]
package org.eclipse.jpt.ui.internal.wizards.entity;
import org.eclipse.jpt.ui.internal.wizards.entity.data.model.*;
import java.util.*;
public class IdClassTemplate
{
protected static String nl;
public static synchronized IdClassTemplate create(String lineSeparator)
{
nl = lineSeparator;
IdClassTemplate result = new IdClassTemplate();
nl = null;
return result;
}
public final String NL = nl == null ? (System.getProperties().getProperty("line.separator")) : nl;
protected final String TEXT_1 = "package ";
protected final String TEXT_2 = ";";
protected final String TEXT_3 = NL;
protected final String TEXT_4 = NL + "import ";
protected final String TEXT_5 = ";";
protected final String TEXT_6 = NL + NL + "/**" + NL + " * ID class for entity: ";
protected final String TEXT_7 = NL + " *" + NL + " */ " + NL + "public class ";
protected final String TEXT_8 = " ";
protected final String TEXT_9 = " implements ";
protected final String TEXT_10 = ", ";
protected final String TEXT_11 = " { " + NL + " " + NL + "\t";
protected final String TEXT_12 = " " + NL + "\tprivate ";
protected final String TEXT_13 = " ";
protected final String TEXT_14 = ";";
protected final String TEXT_15 = NL + "\tprivate static final long serialVersionUID = 1L;" + NL + "" + NL + "\tpublic ";
protected final String TEXT_16 = "() {}" + NL + "" + NL + "\t";
protected final String TEXT_17 = NL + NL + "\tpublic ";
protected final String TEXT_18 = " get";
protected final String TEXT_19 = "() {" + NL + "\t\treturn this.";
protected final String TEXT_20 = ";" + NL + "\t}" + NL + "" + NL + "\tpublic void set";
protected final String TEXT_21 = "(";
protected final String TEXT_22 = " ";
protected final String TEXT_23 = ") {" + NL + "\t\tthis.";
protected final String TEXT_24 = " = ";
protected final String TEXT_25 = ";" + NL + "\t}" + NL + "\t";
protected final String TEXT_26 = NL + " " + NL + "\t/*" + NL + "\t * @see java.lang.Object#equals(Object)" + NL + "\t */\t" + NL + "\tpublic boolean equals(Object o) {" + NL + "\t\tif (o == this) {" + NL + "\t\t\treturn true;" + NL + "\t\t}" + NL + "\t\tif (!(o instanceof ";
protected final String TEXT_27 = ")) {" + NL + "\t\t\treturn false;" + NL + "\t\t}" + NL + "\t\t";
protected final String TEXT_28 = " other = (";
protected final String TEXT_29 = ") o;" + NL + "\t\treturn true";
protected final String TEXT_30 = NL + "\t\t\t&& ";
protected final String TEXT_31 = "() == other.";
protected final String TEXT_32 = "()";
protected final String TEXT_33 = NL + "\t\t\t&& (Double.doubleToLongBits(";
protected final String TEXT_34 = "()) == Double.doubleToLongBits(other.";
protected final String TEXT_35 = "()))";
protected final String TEXT_36 = NL + "\t\t\t&& (Float.floatToIntBits(";
protected final String TEXT_37 = "()) == Float.floatToIntBits(other.";
protected final String TEXT_38 = "()))";
protected final String TEXT_39 = NL + "\t\t\t&& (";
protected final String TEXT_40 = "() == null ? other.";
protected final String TEXT_41 = "() == null : ";
protected final String TEXT_42 = "().equals(other.";
protected final String TEXT_43 = "()))";
protected final String TEXT_44 = ";" + NL + "\t}" + NL + "\t" + NL + "\t/*\t " + NL + "\t * @see java.lang.Object#hashCode()" + NL + "\t */\t" + NL + "\tpublic int hashCode() {" + NL + "\t\tfinal int prime = 31;" + NL + "\t\tint result = 1;";
protected final String TEXT_45 = NL + "\t\tresult = prime * result + (";
protected final String TEXT_46 = "() ? 1 : 0);";
protected final String TEXT_47 = NL + "\t\tresult = prime * result + ";
protected final String TEXT_48 = "();";
protected final String TEXT_49 = NL + "\t\tresult = prime * result + ((int) ";
protected final String TEXT_50 = "());";
protected final String TEXT_51 = NL + "\t\tresult = prime * result + ((int) (";
protected final String TEXT_52 = "() ^ (";
protected final String TEXT_53 = "() >>> 32)));";
protected final String TEXT_54 = NL + "\t\tresult = prime * result + ((int) (Double.doubleToLongBits(";
protected final String TEXT_55 = "() ) ^ (Double.doubleToLongBits(";
protected final String TEXT_56 = "()) >>> 32)));";
protected final String TEXT_57 = NL + "\t\tresult = prime * result + Float.floatToIntBits(";
protected final String TEXT_58 = "());";
protected final String TEXT_59 = NL + "\t\tresult = prime * result + (";
protected final String TEXT_60 = "() == null ? 0 : ";
protected final String TEXT_61 = "().hashCode());";
protected final String TEXT_62 = NL + "\t\treturn result;" + NL + "\t}" + NL + " " + NL + " " + NL + "}";
protected final String TEXT_63 = NL;
public String generate(Object argument)
{
final StringBuffer stringBuffer = new StringBuffer();
CreateEntityTemplateModel model = (CreateEntityTemplateModel) argument;
if (model.getJavaPackageName()!=null && model.getJavaPackageName()!="") {
stringBuffer.append(TEXT_1);
stringBuffer.append(model.getJavaPackageName());
stringBuffer.append(TEXT_2);
}
stringBuffer.append(TEXT_3);
Collection<String> imports = model.getImports(true);
for (String anImport : imports) {
stringBuffer.append(TEXT_4);
stringBuffer.append(anImport);
stringBuffer.append(TEXT_5);
}
stringBuffer.append(TEXT_6);
stringBuffer.append(model.getClassName());
stringBuffer.append(TEXT_7);
stringBuffer.append(model.getIdClassName());
stringBuffer.append(TEXT_8);
List<String> interfaces = model.getInterfaces();
if (interfaces.size()>0) {
stringBuffer.append(TEXT_9);
}
for (int i=0; i<interfaces.size(); i++) {
String INTERFACE = (String) interfaces.get(i);
if (i>0) {
stringBuffer.append(TEXT_10);
}
stringBuffer.append(INTERFACE);
}
stringBuffer.append(TEXT_11);
List<EntityRow> fields = model.getEntityFields();
List<String> pkFields = model.getPKFields();
for (int i=0; i<fields.size(); i++) {
EntityRow entity = (EntityRow) fields.get(i);
if (!pkFields.contains(entity.getName())) {
continue;
}
stringBuffer.append(TEXT_12);
stringBuffer.append(entity.getType());
stringBuffer.append(TEXT_13);
stringBuffer.append(entity.getName());
stringBuffer.append(TEXT_14);
}
stringBuffer.append(TEXT_15);
stringBuffer.append(model.getIdClassName());
stringBuffer.append(TEXT_16);
fields = model.getEntityFields();
if (fields != null) for (int i=0; i<fields.size(); i++) {
EntityRow field = (EntityRow) fields.get(i);
String TYPE = field.getType();
String NAME = field.getName();
if (!pkFields.contains(NAME)) {
continue;
}
String METHOD = NAME.substring(0,1).toUpperCase() + NAME.substring(1);
stringBuffer.append(TEXT_17);
stringBuffer.append(TYPE);
stringBuffer.append(TEXT_18);
stringBuffer.append(METHOD);
stringBuffer.append(TEXT_19);
stringBuffer.append(NAME);
stringBuffer.append(TEXT_20);
stringBuffer.append(METHOD);
stringBuffer.append(TEXT_21);
stringBuffer.append(TYPE);
stringBuffer.append(TEXT_22);
stringBuffer.append(NAME);
stringBuffer.append(TEXT_23);
stringBuffer.append(NAME);
stringBuffer.append(TEXT_24);
stringBuffer.append(NAME);
stringBuffer.append(TEXT_25);
}
stringBuffer.append(TEXT_26);
stringBuffer.append(model.getIdClassName());
stringBuffer.append(TEXT_27);
stringBuffer.append(model.getIdClassName());
stringBuffer.append(TEXT_28);
stringBuffer.append(model.getIdClassName());
stringBuffer.append(TEXT_29);
if (fields != null) for (int i=0; i<fields.size(); i++) {
EntityRow field = (EntityRow) fields.get(i);
String NAME = field.getName();
if (!pkFields.contains(NAME)) {
continue;
}
String TYPE = field.getType();
String GET_METHOD = "get" + NAME.substring(0,1).toUpperCase() + NAME.substring(1);
if (TYPE.equals("boolean") || TYPE.equals("byte") || TYPE.equals("char") || TYPE.equals("short") || TYPE.equals("int") || TYPE.equals("long")) {
stringBuffer.append(TEXT_30);
stringBuffer.append(GET_METHOD);
stringBuffer.append(TEXT_31);
stringBuffer.append(GET_METHOD);
stringBuffer.append(TEXT_32);
} else if (TYPE.equals("double")) {
stringBuffer.append(TEXT_33);
stringBuffer.append(GET_METHOD);
stringBuffer.append(TEXT_34);
stringBuffer.append(GET_METHOD);
stringBuffer.append(TEXT_35);
} else if (TYPE.equals("float")) {
stringBuffer.append(TEXT_36);
stringBuffer.append(GET_METHOD);
stringBuffer.append(TEXT_37);
stringBuffer.append(GET_METHOD);
stringBuffer.append(TEXT_38);
} else {
stringBuffer.append(TEXT_39);
stringBuffer.append(GET_METHOD);
stringBuffer.append(TEXT_40);
stringBuffer.append(GET_METHOD);
stringBuffer.append(TEXT_41);
stringBuffer.append(GET_METHOD);
stringBuffer.append(TEXT_42);
stringBuffer.append(GET_METHOD);
stringBuffer.append(TEXT_43);
}
}
stringBuffer.append(TEXT_44);
if (fields != null) for (int i=0; i<fields.size(); i++) {
EntityRow field = (EntityRow) fields.get(i);
String NAME = field.getName();
if (!pkFields.contains(NAME)) {
continue;
}
String TYPE = field.getType();
String GET_METHOD = "get" + NAME.substring(0,1).toUpperCase() + NAME.substring(1);
if (TYPE.equals("boolean")) {
stringBuffer.append(TEXT_45);
stringBuffer.append(GET_METHOD);
stringBuffer.append(TEXT_46);
} else if (TYPE.equals("int")) {
stringBuffer.append(TEXT_47);
stringBuffer.append(GET_METHOD);
stringBuffer.append(TEXT_48);
} else if (TYPE.equals("byte") || TYPE.equals("char") || TYPE.equals("short")) {
stringBuffer.append(TEXT_49);
stringBuffer.append(GET_METHOD);
stringBuffer.append(TEXT_50);
} else if (TYPE.equals("long")) {
stringBuffer.append(TEXT_51);
stringBuffer.append(GET_METHOD);
stringBuffer.append(TEXT_52);
stringBuffer.append(GET_METHOD);
stringBuffer.append(TEXT_53);
} else if (TYPE.equals("double")) {
stringBuffer.append(TEXT_54);
stringBuffer.append(GET_METHOD);
stringBuffer.append(TEXT_55);
stringBuffer.append(GET_METHOD);
stringBuffer.append(TEXT_56);
} else if (TYPE.equals("float")) {
stringBuffer.append(TEXT_57);
stringBuffer.append(GET_METHOD);
stringBuffer.append(TEXT_58);
} else {
stringBuffer.append(TEXT_59);
stringBuffer.append(GET_METHOD);
stringBuffer.append(TEXT_60);
stringBuffer.append(GET_METHOD);
stringBuffer.append(TEXT_61);
}
}
stringBuffer.append(TEXT_62);
stringBuffer.append(TEXT_63);
return stringBuffer.toString();
}
}