You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ddlutils-dev@db.apache.org by to...@apache.org on 2005/12/20 00:54:59 UTC
svn commit: r357840 - in
/db/ddlutils/trunk/src/java/org/apache/ddlutils/model: Column.java
IndexColumn.java Table.java UniqueIndex.java
Author: tomdz
Date: Mon Dec 19 15:54:53 2005
New Revision: 357840
URL: http://svn.apache.org/viewcvs?rev=357840&view=rev
Log:
Adjustments to the equals/hashCode methods catering for numerical types
Modified:
db/ddlutils/trunk/src/java/org/apache/ddlutils/model/Column.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/model/IndexColumn.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/model/Table.java
db/ddlutils/trunk/src/java/org/apache/ddlutils/model/UniqueIndex.java
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/model/Column.java
URL: http://svn.apache.org/viewcvs/db/ddlutils/trunk/src/java/org/apache/ddlutils/model/Column.java?rev=357840&r1=357839&r2=357840&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/model/Column.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/model/Column.java Mon Dec 19 15:54:53 2005
@@ -427,20 +427,26 @@
{
if (obj instanceof Column)
{
- Column other = (Column)obj;
+ Column other = (Column)obj;
+ EqualsBuilder comparator = new EqualsBuilder();
// Note that this compares case sensitive
- return new EqualsBuilder().append(_name, other._name)
- .append(_primaryKey, other._primaryKey)
- .append(_required, other._required)
- .append(_autoIncrement, other._autoIncrement)
- .append(_typeCode, other._typeCode)
- .append(_type, other._type)
- .append(_size, other._size)
- .append(_sizeAsInt, other._sizeAsInt)
- .append(_scale, other._scale)
- .append(_defaultValue, other._defaultValue)
- .isEquals();
+ comparator.append(_name, other._name);
+ comparator.append(_primaryKey, other._primaryKey);
+ comparator.append(_required, other._required);
+ comparator.append(_autoIncrement, other._autoIncrement);
+ comparator.append(_typeCode, other._typeCode);
+ comparator.append(_type, other._type);
+ comparator.append(_scale, other._scale);
+ comparator.append(_defaultValue, other._defaultValue);
+
+ // comparing the size makes only sense for types where it is relevant
+ if (!TypeMap.isNumericType(_typeCode) && TypeMap.isNumericType(other._typeCode))
+ {
+ comparator.append(_size, other._size);
+ }
+
+ return comparator.isEquals();
}
else
{
@@ -453,17 +459,22 @@
*/
public int hashCode()
{
- return new HashCodeBuilder(17, 37).append(_name)
- .append(_primaryKey)
- .append(_required)
- .append(_autoIncrement)
- .append(_typeCode)
- .append(_type)
- .append(_size)
- .append(_sizeAsInt)
- .append(_scale)
- .append(_defaultValue)
- .toHashCode();
+ HashCodeBuilder builder = new HashCodeBuilder(17, 37);
+
+ builder.append(_name);
+ builder.append(_primaryKey);
+ builder.append(_required);
+ builder.append(_autoIncrement);
+ builder.append(_typeCode);
+ builder.append(_type);
+ builder.append(_scale);
+ builder.append(_defaultValue);
+ if (!TypeMap.isNumericType(_typeCode))
+ {
+ builder.append(_size);
+ }
+
+ return builder.toHashCode();
}
/**
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/model/IndexColumn.java
URL: http://svn.apache.org/viewcvs/db/ddlutils/trunk/src/java/org/apache/ddlutils/model/IndexColumn.java?rev=357840&r1=357839&r2=357840&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/model/IndexColumn.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/model/IndexColumn.java Mon Dec 19 15:54:53 2005
@@ -40,6 +40,23 @@
// TODO: It might be useful if the referenced column is directly acessible here ?
/**
+ * Creates a new index column object.
+ */
+ public IndexColumn()
+ {
+ }
+
+ /**
+ * Creates a new index column object.
+ *
+ * @param columnName The name of the corresponding table column
+ */
+ public IndexColumn(String columnName)
+ {
+ _name = columnName;
+ }
+
+ /**
* Returns the name of the column.
*
* @return The name
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/model/Table.java
URL: http://svn.apache.org/viewcvs/db/ddlutils/trunk/src/java/org/apache/ddlutils/model/Table.java?rev=357840&r1=357839&r2=357840&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/model/Table.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/model/Table.java Mon Dec 19 15:54:53 2005
@@ -624,10 +624,8 @@
Table other = (Table)obj;
// Note that this compares case sensitive
- return new EqualsBuilder().append(_catalog, other._catalog)
- .append(_schema, other._schema)
- .append(_name, other._name)
- .append(_type, other._type)
+ // TODO: For now we ignore catalog and schema (type should be irrelevant anyways)
+ return new EqualsBuilder().append(_name, other._name)
.append(_columns, other._columns)
.append(_foreignKeys, other._foreignKeys)
.append(_indices, other._indices)
@@ -644,10 +642,8 @@
*/
public int hashCode()
{
- return new HashCodeBuilder(17, 37).append(_catalog)
- .append(_schema)
- .append(_name)
- .append(_type)
+ // TODO: For now we ignore catalog and schema (type should be irrelevant anyways)
+ return new HashCodeBuilder(17, 37).append(_name)
.append(_columns)
.append(_foreignKeys)
.append(_indices)
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/model/UniqueIndex.java
URL: http://svn.apache.org/viewcvs/db/ddlutils/trunk/src/java/org/apache/ddlutils/model/UniqueIndex.java?rev=357840&r1=357839&r2=357840&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/model/UniqueIndex.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/model/UniqueIndex.java Mon Dec 19 15:54:53 2005
@@ -18,9 +18,6 @@
import java.util.ArrayList;
-import org.apache.commons.lang.builder.EqualsBuilder;
-import org.apache.commons.lang.builder.HashCodeBuilder;
-
/**
* Provides compatibility with Torque-style xml with separate <index> and
* <unique> tags, but adds no functionality. All indexes are treated the
@@ -64,9 +61,8 @@
{
UniqueIndex other = (UniqueIndex)obj;
- return new EqualsBuilder().append(_name, other._name)
- .append(_columns, other._columns)
- .isEquals();
+ // Note that we ignore the name here
+ return _columns.equals(other._columns);
}
else
{
@@ -79,9 +75,7 @@
*/
public int hashCode()
{
- return new HashCodeBuilder(17, 37).append(_name)
- .append(_columns)
- .toHashCode();
+ return _columns.hashCode();
}
/**