You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-dev@db.apache.org by ar...@apache.org on 2007/05/15 17:26:17 UTC
svn commit: r538212 - in
/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker:
Identity.java core/ValueContainer.java
Author: arminw
Date: Tue May 15 08:26:16 2007
New Revision: 538212
URL: http://svn.apache.org/viewvc?view=rev&rev=538212
Log:
optimize imports, comments, source
Modified:
db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/Identity.java
db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/core/ValueContainer.java
Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/Identity.java
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/Identity.java?view=diff&rev=538212&r1=538211&r2=538212
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/Identity.java (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/Identity.java Tue May 15 08:26:16 2007
@@ -109,7 +109,7 @@
differs in different JVM
*/
private transient String m_stringRepresentation = null;
- private transient Integer m_hashCode;
+ private transient int m_hashCode;
/**
* For internal use only!
@@ -268,9 +268,16 @@
}
/**
- * Determines whether the identity is transient.
+ * Determines whether the identity is transient or not - NOTE: It
+ * could happen that the <tt>Identity</tt> is not transient but the
+ * associated object is transient! For example, the object mapping doesn't
+ * use a primary key managed by OJB and the user set the PK values before
+ * insert the object, then the Identity of the object isn't transient (because
+ * OJB can extract the PK values from the object) but the object is still transient
+ * (because it's not insert yet). Use class {@link PersistenceChecker} to determine
+ * transient objects (via {@link PersistenceBrokerInternal#getPersistenceChecker()}).
*
- * @return <code>true</code> if the identity is transient
+ * @return <code>true</code> if the identity is transient.
*/
public boolean isTransient()
{
@@ -440,7 +447,7 @@
identity is quasi immutable (toplevel class and PK fields
never change), thus we can note hashCode
*/
- if(m_hashCode == null)
+ if(m_hashCode == 0)
{
int iTotal = persistenceState;
Object obj;
@@ -450,16 +457,16 @@
if(obj instanceof byte[])
{
iTotal = iTotal * iConstant + ((byte[]) obj).length;
- }
+ }
else
{
- iTotal = iTotal * iConstant + (obj != null ? obj.hashCode() : 0);
- }
+ iTotal += (obj != null ? obj.hashCode() : 0);
+ }
}
- iTotal = iTotal * iConstant + m_objectsTopLevelClass.hashCode();
- m_hashCode = new Integer(iTotal);
+ iTotal += m_objectsTopLevelClass.hashCode();
+ m_hashCode = iTotal;
}
- return m_hashCode.intValue();
+ return m_hashCode;
}
private ClassNotPersistenceCapableException createException(String msg, final Object objectToIdentify, final Exception e)
Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/core/ValueContainer.java
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/core/ValueContainer.java?view=diff&rev=538212&r1=538211&r2=538212
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/core/ValueContainer.java (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/core/ValueContainer.java Tue May 15 08:26:16 2007
@@ -17,32 +17,40 @@
import java.io.Serializable;
+import org.apache.commons.lang.ClassUtils;
import org.apache.ojb.broker.metadata.JdbcType;
-import org.apache.commons.lang.builder.EqualsBuilder;
-import org.apache.commons.lang.builder.HashCodeBuilder;
+/**
+ * Encapsulates a persistent object field value (expects the java to sql conversion object, see
+ * {@link org.apache.ojb.broker.accesslayer.conversions.FieldConversion}) and its associated
+ * {@link JdbcType}.
+ * <br/>
+ * For internal use only!
+ *
+ * @version $Id$
+ */
public final class ValueContainer implements Serializable
{
private static final long serialVersionUID = 3689069556052340793L;
-
- private final JdbcType m_jdbcType;
- private final Object m_value;
+
+ private final JdbcType jdbcType;
+ private final Object value;
private int hc;
public ValueContainer(Object value, JdbcType jdbcType)
{
- this.m_jdbcType = jdbcType;
- this.m_value = value;
+ this.jdbcType = jdbcType;
+ this.value = value;
}
public JdbcType getJdbcType()
{
- return m_jdbcType;
+ return jdbcType;
}
public Object getValue()
{
- return m_value;
+ return value;
}
public boolean equals(Object obj)
@@ -53,10 +61,10 @@
{
final ValueContainer container = (ValueContainer) obj;
// if jdbcType was null, we can't compare
- result = this.m_jdbcType != null ? this.m_jdbcType.equals(container.getJdbcType()) : false;
+ result = this.jdbcType != null && this.jdbcType.equals(container.jdbcType);
if(result)
{
- result = new EqualsBuilder().append(this.m_value, container.getValue()).isEquals();
+ result = this.value != null ? this.value.equals(container.value) : container.value == null;
}
}
return result;
@@ -64,18 +72,19 @@
public int hashCode()
{
-// int hash = m_value != null ? m_value.hashCode() : 0;
-// hash += m_jdbcType != null ? m_jdbcType.hashCode() : 0;
-// return hash;
- if(hc == 0) hc = new HashCodeBuilder().append(m_jdbcType).append(m_value).toHashCode();
+ if(hc == 0)
+ {
+ int hash = value != null ? value.hashCode() : 0;
+ hash += jdbcType != null ? jdbcType.hashCode() : 0;
+ hc = hash;
+ }
return hc;
}
public String toString()
{
- return this.getClass().getName() + "[jdbcType: "
- + m_jdbcType
- + ", value: " + m_value + "]";
+ return "[" + ClassUtils.getShortClassName(this.getClass()) + ": jdbcType="
+ + jdbcType
+ + ", value=" + value + "]";
}
-
}
---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-dev-help@db.apache.org