org.kuali.kfs.fp.dataaccess
Class PolymorphicMultiColumnDiscriminator
java.lang.Object
org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl
org.kuali.kfs.fp.dataaccess.PolymorphicMultiColumnDiscriminator
- All Implemented Interfaces:
- Serializable, org.apache.ojb.broker.accesslayer.RowReader
public abstract class PolymorphicMultiColumnDiscriminator
- extends org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl
(Inspired by example posted at http://nagoya.apache.org/eyebrowse/ReadMsg?listName=ojb-user@db.apache.org&msgId=749837) This
class enables mapping multiple (presumably similar) classes to a single database table. Subclasses must implement the
getDiscriminatorColumns method, returning a String array of columns to consider when determining which class to return, as well
as implement the corresponding chooseClass method that acts on received values for those columns. Sample OBJ config:
...
... (where ClassADiscriminator and ClassBDiscriminator
extend PolymorphicMultiColumnDiscriminator)
- See Also:
- Serialized Form
Fields inherited from interface org.apache.ojb.broker.accesslayer.RowReader |
serialVersionUID |
Methods inherited from class org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl |
buildOrRefreshObject, extractOjbConcreteClass, getClassDescriptor, readObjectArrayFrom, readObjectFrom, readPkValuesFrom, readValuesFrom, refreshObject, setClassDescriptor |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
PolymorphicMultiColumnDiscriminator
public PolymorphicMultiColumnDiscriminator(org.apache.ojb.broker.metadata.ClassDescriptor cld)
getDiscriminatorColumns
public abstract String[] getDiscriminatorColumns()
- This method should return the column(s) necessary to determine which class to cast to.
- Returns:
- one or more column names
chooseClass
public abstract Class chooseClass(String[] values)
- Based on the received key values, this method determines the appropriate class.
- Parameters:
values
-
- Returns:
- an appropriately chosen class
selectClassDescriptor
protected org.apache.ojb.broker.metadata.ClassDescriptor selectClassDescriptor(Map row)
throws org.apache.ojb.broker.PersistenceBrokerException
- Overrides:
selectClassDescriptor
in class org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl
- Throws:
org.apache.ojb.broker.PersistenceBrokerException
Copyright © 2005-2012 The Kuali Foundation. All Rights Reserved.