Author: arminw
Date: Wed Mar 14 17:52:54 2007
New Revision: 518398
URL: http://svn.apache.org/viewvc?view=rev&rev=518398
Log:
add convenience methods to check for 'null' fields
Modified:
db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/metadata/FieldDescriptor.java
Modified:
db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/metadata/FieldDescriptor.java
URL:
http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/metadata/FieldDescriptor.java?view=diff&rev=518398&r1=518397&r2=518398
==============================================================================
---
db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/metadata/FieldDescriptor.java
(original)
+++
db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/metadata/FieldDescriptor.java
Wed Mar 14 17:52:54 2007
@@ -331,7 +331,8 @@
}
/**
- * Returns the NullCheck instance used for this field.
+ * Returns the [EMAIL PROTECTED] NullCheck} instance used for this field.
+ *
* @return NullCheck instance for this field
*/
public NullCheck getNullCheck()
@@ -343,10 +344,55 @@
}
return nullCheck;
}
+
+ /**
+ * Returns wether the given object value represents 'null'
+ * for the specified field. Convenient method for:
+ * <br/>
+ * <code>
+ * fieldDescriptor.getNullCheck().representsNull(fieldDescriptor, aValue);
+ * </code>
+ *
+ * @param aValue the value to check if it represents 'null'
+ * @return true if and only if aValue represents null
+ */
+ public boolean representsNull(Object aValue)
+ {
+ // if no explicit class is specified use the default implementation
+ if (nullCheck == null)
+ {
+ nullCheck = new NullCheckDefaultImpl();
+ }
+ return nullCheck.representsNull(this, aValue);
+ }
+
+ /**
+ * Returns wether the associated object value for this field of
+ * the specified persistence capable object represents 'null'.
+ * Convenient method for:
+ * <br/>
+ * <code>
+ * <pre>
+ * Object aValue = fieldDescriptor.getPersistentField().get(obj);
+ * boolean result =
fieldDescriptor.getNullCheck().representsNull(fieldDescriptor, aValue);
+ * </pre>
+ * </code>
+ *
+ * @param obj the persistence capable object to check if the value
+ * associated with this field represents 'null'
+ * @return true if and only if the value represents null
+ */
+ public boolean representsNullAssociatedValue(Object obj)
+ {
+ return representsNull(getPersistentField().get(obj));
+ }
/**
- * Creates the NullCheck implementation to use for this field.
+ * Creates the [EMAIL PROTECTED] NullCheck} implementation to use for this
field.
+ *
* @param nullCheckClassName FQCN of the NullCheck implementation to
instantiate
+ * @see #representsNull(Object)
+ * @see #getNullCheck()
*/
public void setNullCheckClassName(String nullCheckClassName)
{
@@ -354,10 +400,15 @@
{
this.nullCheck = (NullCheck)
ClassHelper.newInstance(nullCheckClassName);
}
+ catch(ClassNotFoundException e)
+ {
+ throw new MetadataException(
+ "Could not find NullCheck class '" + nullCheckClassName +
"'", e);
+ }
catch (Exception e)
{
throw new MetadataException(
- "Could not instantiate NullCheck class using default
constructor", e);
+ "Could not instantiate NullCheck class '" +
nullCheckClassName + "' using default constructor", e);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]