/**
* Type name.
*/
- private String name;
+ private String _name;
/**
* Persistent id of the type.
*/
- private long rid;
+ private long _index;
// ==============================================================================================================================
// Public member functions
*
* @see java.lang.Object#equals(java.lang.Object)
*/
- public boolean equals(Object entity) {
- if (entity == null)
- return false;
- if (entity instanceof String) {
- return this.name.equals((String) entity); // Names are unique
- } else if (entity instanceof KnowledgeElementTypeDTO) {
- KnowledgeElementTypeDTO object = (KnowledgeElementTypeDTO) entity;
- long he = object.getIndex();
- long me = this.getIndex();
- if (me * he != 0) {
- return (he == me);
- } else {
- return this.getName().equals(object.getName());
+ @Override
+ public boolean equals(final Object entity) {
+ boolean res = (entity != null);
+ if (res) {
+ if (entity instanceof String) {
+ res = this._name.equals(entity); // Names are unique
+ } else if (entity instanceof KnowledgeElementTypeDTO) {
+ KnowledgeElementTypeDTO object = (KnowledgeElementTypeDTO) entity;
+ long he = object.getIndex();
+ long me = this.getIndex();
+ if (me * he == 0) {
+ res = this.getName().equals(object.getName());
+ } else {
+ res = (he == me);
+ }
}
- } else {
- return false;
}
+ return res;
}
+ /**
+ * {@inheritDoc}
+ * @see java.lang.Object#hashCode()
+ */
+ @Override
+ public int hashCode() {
+ long oid = getIndex(); // getIndex() is supposed fetching the index if not yet done
+ if (oid == 0) {
+ oid = super.hashCode(); // WARNING: Must not call super.toString() as it goes back here (this.toString())
+ }
+ return new StringBuffer("object ").append(getClass().getName()).append(
+ "@").append(oid).toString().hashCode();
+ }
+
/**
* Get the name of the knowledge type.
*
* @return the type name
*/
public String getName() {
- return name;
+ return _name;
}
/**
* @return the rid
*/
public long getIndex() {
- return rid;
+ return _index;
}
/**
* @param rid
* the rid to set
*/
- public void setIndex(long rid) {
- this.rid = rid;
+ public void setIndex(final long rid) {
+ this._index = rid;
}
/**
* Set the name.
* @param name the name to set
*/
- public void setName(String name) {
- this.name = name;
+ public void setName(final String name) {
+ this._name = name;
}
}
\ No newline at end of file