blob: 2617675e2c2d530c6a44b51d0a6d14bb631b5792 [file] [log] [blame]
<%@ jet package="org.eclipse.jpt.jpa.ui.internal.wizards.entity"
imports="org.eclipse.jpt.jpa.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;
}
}