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 2003/07/10 02:20:59 UTC
cvs commit: db-ojb/src/java/org/apache/ojb/broker/metadata/fieldaccess PersistentFieldIntrospectorImpl.java AbstractPersistentField.java
arminw 2003/07/09 17:20:59
Modified: src/java/org/apache/ojb/broker/metadata/fieldaccess
PersistentFieldIntrospectorImpl.java
AbstractPersistentField.java
Log:
try to fix bug when using
PersistentFieldIntrospectorImpl.
Do not use Field instance when using
bean introspection.
Revision Changes Path
1.2 +20 -1 db-ojb/src/java/org/apache/ojb/broker/metadata/fieldaccess/PersistentFieldIntrospectorImpl.java
Index: PersistentFieldIntrospectorImpl.java
===================================================================
RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/metadata/fieldaccess/PersistentFieldIntrospectorImpl.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- PersistentFieldIntrospectorImpl.java 8 Jul 2003 14:30:07 -0000 1.1
+++ PersistentFieldIntrospectorImpl.java 10 Jul 2003 00:20:59 -0000 1.2
@@ -88,6 +88,25 @@
super(aClass, aPropertyName);
}
+
+ /*
+ need to overwrite these three methods to avoid
+ building of Field instances
+ */
+ public String getName()
+ {
+ return this.fieldName;
+ }
+ public Class getType()
+ {
+ return getPropertyDescriptor().getPropertyType();
+ }
+ public Class getDeclaringClass()
+ {
+ return this.rootObjectType;
+ }
+
+
/**
* Sets aValue for anObject
*/
1.3 +14 -28 db-ojb/src/java/org/apache/ojb/broker/metadata/fieldaccess/AbstractPersistentField.java
Index: AbstractPersistentField.java
===================================================================
RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/metadata/fieldaccess/AbstractPersistentField.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- AbstractPersistentField.java 8 Jul 2003 14:30:07 -0000 1.2
+++ AbstractPersistentField.java 10 Jul 2003 00:20:59 -0000 1.3
@@ -79,9 +79,9 @@
private static final int NESTED_FIELD = 2;
private static final Class[] METHOD_TYPES = {Class.class, String.class};
- private transient Field field;
- private String fieldName;
- private Class rootObjectType;
+ protected transient Field field;
+ protected String fieldName;
+ protected Class rootObjectType;
/**
* 0 - not initialized
* 1 - normal field
@@ -295,20 +295,17 @@
+ name + " in object:" + obj.getClass().getName(), e);
}
Class type = pField.getType();
- if ((value != null) || !type.isPrimitive())
+ /*
+ TODO: here we need cast to AbstractPersistentField to execute the doSet-method.
+ Find better solution without cast?
+ */
+ if (pField instanceof AbstractPersistentField)
{
- /*
- TODO: here we need cast to AbstractPersistentField to execute the doSet-method.
- Find better solution without cast?
- */
- if(pField instanceof AbstractPersistentField)
- {
- ((AbstractPersistentField) pField).doSet(ProxyHelper.getRealObject(obj), attrib);
- }
- else
- {
- pField.set(ProxyHelper.getRealObject(obj), attrib);
- }
+ ((AbstractPersistentField) pField).doSet(ProxyHelper.getRealObject(obj), attrib);
+ }
+ else
+ {
+ pField.set(ProxyHelper.getRealObject(obj), attrib);
}
}
String nestedName = fieldName.substring(index + PATH_TOKEN.length());
@@ -324,17 +321,6 @@
private PersistentField createInternPersistentField(Class fieldType, String fieldName)
{
-// try
-// {
-// Object[] args = {fieldType, fieldName};
-// return (AbstractPersistentField) ClassHelper.newInstance(PERSISTENT_FIELD_IMPL_FOR_NESTED, METHOD_TYPES, args);
-// }
-// catch (Exception e)
-// {
-// throw new MetadataException("Cannot create PersistentField for field '" + fieldName + "' of class " +
-// fieldType.getName(), e);
-// }
-
try
{
return PersistentFieldFactory.createPersistentField(fieldType, fieldName);
---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-dev-help@db.apache.org