Author: djencks
Date: Tue Mar 29 17:03:34 2005
New Revision: 159456

URL: http://svn.apache.org/viewcvs?view=rev&rev=159456
Log:
map to public fields as well as javabean properties

Modified:
    
geronimo/trunk/modules/axis-builder/src/java/org/apache/geronimo/axis/builder/TypeDescBuilder.java

Modified: 
geronimo/trunk/modules/axis-builder/src/java/org/apache/geronimo/axis/builder/TypeDescBuilder.java
URL: 
http://svn.apache.org/viewcvs/geronimo/trunk/modules/axis-builder/src/java/org/apache/geronimo/axis/builder/TypeDescBuilder.java?view=diff&r1=159455&r2=159456
==============================================================================
--- 
geronimo/trunk/modules/axis-builder/src/java/org/apache/geronimo/axis/builder/TypeDescBuilder.java
 (original)
+++ 
geronimo/trunk/modules/axis-builder/src/java/org/apache/geronimo/axis/builder/TypeDescBuilder.java
 Tue Mar 29 17:03:34 2005
@@ -21,6 +21,7 @@
 import java.beans.IntrospectionException;
 import java.util.Map;
 import java.util.HashMap;
+import java.lang.reflect.Field;
 import javax.xml.namespace.QName;
 
 import org.apache.axis.description.TypeDesc;
@@ -77,10 +78,17 @@
                 ElementDesc elementDesc = new ElementDesc();
                 elementDesc.setFieldName(fieldName);
                 Class javaType = (Class) properties.get(fieldName);
-                if (javaType == null) {
-                    throw new DeploymentException("field name " + fieldName + 
" not found in " + properties);
+                if (javaType != null) {
+                    elementDesc.setJavaType(javaType);
+                } else {
+                    //see if it is a public field
+                    try {
+                        Field field = javaClass.getField(fieldName);
+                        elementDesc.setJavaType(field.getType());
+                    } catch (NoSuchFieldException e) {
+                        throw new DeploymentException("field name " + 
fieldName + " not found in " + properties);
+                    }
                 }
-                elementDesc.setJavaType(javaType);
                 //TODO correct namespace???
                 String namespace = "";
                 QName xmlName = new QName(namespace, 
variableMapping.getXmlElementName().getStringValue().trim());
@@ -88,10 +96,10 @@
                 QName xmlType = schemaType.getName();
                 elementDesc.setXmlType(xmlType);
                 //TODO figure out how to find these:
-//                elementDesc.setArrayType(null);
-//                elementDesc.setMinOccurs(0);
-//                elementDesc.setMaxOccurs(0);
-//                elementDesc.setNillable(false);
+//                    elementDesc.setArrayType(null);
+//                    elementDesc.setMinOccurs(0);
+//                    elementDesc.setMaxOccurs(0);
+//                    elementDesc.setNillable(false);
                 fields[i] = elementDesc;
             }
         }


Reply via email to