diff options
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.ui/templates/idClass.javajet')
-rw-r--r-- | jpa/plugins/org.eclipse.jpt.ui/templates/idClass.javajet | 124 |
1 files changed, 124 insertions, 0 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.ui/templates/idClass.javajet b/jpa/plugins/org.eclipse.jpt.ui/templates/idClass.javajet new file mode 100644 index 0000000000..7997344b4f --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.ui/templates/idClass.javajet @@ -0,0 +1,124 @@ +<%@ jet package="org.eclipse.jpt.ui.internal.wizards.entity" + imports="org.eclipse.jpt.ui.internal.wizards.entity.data.model.* java.util.* " + class="IdClassTemplate" +%> +<% CreateEntityTemplateModel model = (CreateEntityTemplateModel) argument; +if (model.getJavaPackageName()!=null && model.getJavaPackageName()!="") { %>package <%=model.getJavaPackageName()%>;<%}%> + +<% Collection<String> imports = model.getImports(true); +for (String anImport : imports) { %> +import <%=anImport%>; +<% } %> + +/** + * ID class for entity: <%=model.getClassName()%> + * + */ +public class <%=model.getIdClassName()%> +<% List<String> interfaces = model.getInterfaces(); + if (interfaces.size()>0) {%> implements <% } + for (int i=0; i<interfaces.size(); i++) { + String INTERFACE = (String) interfaces.get(i); + if (i>0) { %>, <%}%><%=INTERFACE%><%}%> { + + <% 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; + } + %> + private <%=entity.getType()%> <%=entity.getName()%>;<%}%> + private static final long serialVersionUID = 1L; + + public <%=model.getIdClassName()%>() {} + + <% + 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); + %> + + public <%=TYPE%> get<%=METHOD%>() { + return this.<%=NAME%>; + } + + public void set<%=METHOD%>(<%=TYPE%> <%=NAME%>) { + this.<%=NAME%> = <%=NAME%>; + } + <%}%> + + /* + * @see java.lang.Object#equals(Object) + */ + public boolean equals(Object o) { + if (o == this) { + return true; + } + if (!(o instanceof <%=model.getIdClassName()%>)) { + return false; + } + <%=model.getIdClassName()%> other = (<%=model.getIdClassName()%>) o; + return true +<% 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")) { %> + && <%=GET_METHOD%>() == other.<%=GET_METHOD%>() +<% } else if (TYPE.equals("double")) { %> + && (Double.doubleToLongBits(<%=GET_METHOD%>()) == Double.doubleToLongBits(other.<%=GET_METHOD%>())) +<% } else if (TYPE.equals("float")) { %> + && (Float.floatToIntBits(<%=GET_METHOD%>()) == Float.floatToIntBits(other.<%=GET_METHOD%>())) +<% } else { %> + && (<%=GET_METHOD%>() == null ? other.<%=GET_METHOD%>() == null : <%=GET_METHOD%>().equals(other.<%=GET_METHOD%>())) +<% } %> +<% } %>; + } + + /* + * @see java.lang.Object#hashCode() + */ + public int hashCode() { + final int prime = 31; + int result = 1; +<% 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")) { %> + result = prime * result + (<%=GET_METHOD%>() ? 1 : 0); +<% } else if (TYPE.equals("int")) { %> + result = prime * result + <%=GET_METHOD%>(); +<% } else if (TYPE.equals("byte") || TYPE.equals("char") || TYPE.equals("short")) { %> + result = prime * result + ((int) <%=GET_METHOD%>()); +<% } else if (TYPE.equals("long")) { %> + result = prime * result + ((int) (<%=GET_METHOD%>() ^ (<%=GET_METHOD%>() >>> 32))); +<% } else if (TYPE.equals("double")) { %> + result = prime * result + ((int) (Double.doubleToLongBits(<%=GET_METHOD%>() ) ^ (Double.doubleToLongBits(<%=GET_METHOD%>()) >>> 32))); +<% } else if (TYPE.equals("float")) { %> + result = prime * result + Float.floatToIntBits(<%=GET_METHOD%>()); +<% } else { %> + result = prime * result + (<%=GET_METHOD%>() == null ? 0 : <%=GET_METHOD%>().hashCode()); +<% } %> +<% } %> + return result; + } + + +} |