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 br...@apache.org on 2005/04/01 22:15:05 UTC
cvs commit: db-ojb/src/java/org/apache/ojb/broker/metadata ClassDescriptor.java
brj 2005/04/01 12:15:05
Modified: src/java/org/apache/ojb/broker/metadata ClassDescriptor.java
Log:
lookup fieldDescriptors in 'super' classDescriptor
Revision Changes Path
1.104 +29 -7 db-ojb/src/java/org/apache/ojb/broker/metadata/ClassDescriptor.java
Index: ClassDescriptor.java
===================================================================
RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/metadata/ClassDescriptor.java,v
retrieving revision 1.103
retrieving revision 1.104
diff -u -r1.103 -r1.104
--- ClassDescriptor.java 17 Mar 2005 21:34:53 -0000 1.103
+++ ClassDescriptor.java 1 Apr 2005 20:15:05 -0000 1.104
@@ -727,26 +727,48 @@
*/
public FieldDescriptor getFieldDescriptorByName(String name)
{
- if (name == null || m_FieldDescriptions == null)
+ if (name == null)
{
return null;
}
+ FieldDescriptor fd = (FieldDescriptor) getFieldDescriptorByNameMap().get(name);
+
+ //
+ // BRJ: if the FieldDescriptor is not found
+ // look in the ClassDescriptor referenced by 'super' for it
+ //
+ if (fd == null)
+ {
+ ClassDescriptor superCld = getSuperClassDescriptor();
+ if (superCld != null)
+ {
+ fd = superCld.getFieldDescriptorByName(name);
+ }
+ }
+
+ return fd;
+ }
+
+ private Map getFieldDescriptorByNameMap()
+ {
if (m_fieldDescriptorNameMap == null)
{
HashMap nameMap = new HashMap();
FieldDescriptor[] descriptors = getFieldDescriptions();
- for (int i = descriptors.length - 1; i >= 0; i--)
+ if (descriptors != null)
{
- FieldDescriptor fld = descriptors[i];
- nameMap.put(fld.getPersistentField().getName(), fld);
+ for (int i = descriptors.length - 1; i >= 0; i--)
+ {
+ FieldDescriptor fld = descriptors[i];
+ nameMap.put(fld.getPersistentField().getName(), fld);
+ }
}
-
m_fieldDescriptorNameMap = nameMap;
}
- return (FieldDescriptor) m_fieldDescriptorNameMap.get(name);
+ return m_fieldDescriptorNameMap;
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-dev-help@db.apache.org