Author: rfeng
Date: Tue Jun 10 22:24:15 2008
New Revision: 666532

URL: http://svn.apache.org/viewvc?rev=666532&view=rev
Log:
Bring up the Generics databinding test cases

Modified:
    
incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/GenericsDatabindingTestCase.java
    
incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/StandardTypesDatabindingTestCase.java
    
incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/processor/DataBindingJavaInterfaceProcessor.java
    
incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBContextHelper.java
    
incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/DefaultDataBindingExtensionPoint.java
    
incubator/tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/GeneratedDataTypeImpl.java
    
incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/DataType.java
    
incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/DataTypeImpl.java

Modified: 
incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/GenericsDatabindingTestCase.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/GenericsDatabindingTestCase.java?rev=666532&r1=666531&r2=666532&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/GenericsDatabindingTestCase.java
 (original)
+++ 
incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/GenericsDatabindingTestCase.java
 Tue Jun 10 22:24:15 2008
@@ -25,7 +25,6 @@
 import org.apache.tuscany.sca.itest.databindings.jaxb.impl.GenericsTransformer;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
-import org.junit.Ignore;
 import org.junit.Test;
 
 /**
@@ -82,7 +81,7 @@
      * Service method invoked is getTypeExtends.
      */
     @Test
-    @Ignore("java.lang.IllegalArgumentException: 
javax.xml.bind.MarshalException")
+    // @Ignore("java.lang.IllegalArgumentException: 
javax.xml.bind.MarshalException")
     public void testSCATypeExtends() throws Exception {
         GenericsServiceClient serviceClient = 
domain.getService(GenericsServiceClient.class, 
"GenericsServiceClientSCAComponent");
         performTestTypeExtends(serviceClient);
@@ -114,7 +113,7 @@
      * Service method invoked is getWildcardSuper.
      */
     @Test
-    @Ignore("java.lang.IllegalArgumentException: 
javax.xml.bind.MarshalException")
+    // @Ignore("java.lang.IllegalArgumentException: 
javax.xml.bind.MarshalException")
     public void testSCAWildcardSuper() throws Exception {
         GenericsServiceClient serviceClient = 
domain.getService(GenericsServiceClient.class, 
"GenericsServiceClientSCAComponent");
         performTestWildcardSuper(serviceClient);
@@ -125,7 +124,7 @@
      * Service method invoked is getWildcardExtends.
      */
     @Test
-    @Ignore("java.lang.IllegalArgumentException: 
javax.xml.bind.MarshalException")
+    // @Ignore("java.lang.IllegalArgumentException: 
javax.xml.bind.MarshalException")
     public void testSCAWildcardExtends() throws Exception {
         GenericsServiceClient serviceClient = 
domain.getService(GenericsServiceClient.class, 
"GenericsServiceClientSCAComponent");
         performTestWildcardExtends(serviceClient);
@@ -167,7 +166,7 @@
      * Service method invoked is getTypeExtends.
      */
     @Test
-    @Ignore("org.osoa.sca.ServiceRuntimeException: org.apache.axis2.AxisFault: 
com.ctc.wstx.exc.WstxEOFException: Unexpected EOF in prolog at [row,col 
{unknown-source}]: [1,0]")
+    // @Ignore("org.osoa.sca.ServiceRuntimeException: 
org.apache.axis2.AxisFault: com.ctc.wstx.exc.WstxEOFException: Unexpected EOF 
in prolog at [row,col {unknown-source}]: [1,0]")
     public void testWSTypeExtends() throws Exception {
         GenericsServiceClient serviceClient = 
domain.getService(GenericsServiceClient.class, 
"GenericsServiceClientWSComponent");
         performTestTypeExtends(serviceClient);
@@ -199,7 +198,7 @@
      * Service method invoked is getWildcardSuper.
      */
     @Test
-    @Ignore("org.osoa.sca.ServiceRuntimeException: org.apache.axis2.AxisFault")
+    // @Ignore("org.osoa.sca.ServiceRuntimeException: 
org.apache.axis2.AxisFault")
     public void testWSWildcardSuper() throws Exception {
         GenericsServiceClient serviceClient = 
domain.getService(GenericsServiceClient.class, 
"GenericsServiceClientWSComponent");
         performTestWildcardSuper(serviceClient);
@@ -210,7 +209,7 @@
      * Service method invoked is getWildcardExtends.
      */
     @Test
-    @Ignore("org.osoa.sca.ServiceRuntimeException: org.apache.axis2.AxisFault")
+    // @Ignore("org.osoa.sca.ServiceRuntimeException: 
org.apache.axis2.AxisFault")
     public void testWSWildcardExtends() throws Exception {
         GenericsServiceClient serviceClient = 
domain.getService(GenericsServiceClient.class, 
"GenericsServiceClientWSComponent");
         performTestWildcardExtends(serviceClient);
@@ -221,7 +220,7 @@
      * Service method invoked is getPolymorphic.
      */
     @Test
-    @Ignore("junit.framework.AssertionFailedError: expected:<Bean3[name = Me, 
address = My address]> but was:<Bean2[name = Me]>")
+    // @Ignore("junit.framework.AssertionFailedError: expected:<Bean3[name = 
Me, address = My address]> but was:<Bean2[name = Me]>")
     public void testWSPolymorphic() throws Exception {
         GenericsServiceClient serviceClient = 
domain.getService(GenericsServiceClient.class, 
"GenericsServiceClientWSComponent");
         performTestPolymorphic(serviceClient);

Modified: 
incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/StandardTypesDatabindingTestCase.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/StandardTypesDatabindingTestCase.java?rev=666532&r1=666531&r2=666532&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/StandardTypesDatabindingTestCase.java
 (original)
+++ 
incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/StandardTypesDatabindingTestCase.java
 Tue Jun 10 22:24:15 2008
@@ -209,7 +209,7 @@
      * Service method invoked is getNewURIArray.
      */
     @Test
-    @Ignore("junit.framework.AssertionFailedError: expected:<http://abcuri> 
but was:<http://abcuri>")
+    // @Ignore("junit.framework.AssertionFailedError: expected:<http://abcuri> 
but was:<http://abcuri>")
     public void testSCANewURIArray() throws Exception {
         StandardTypesServiceClient serviceClient =
             domain.getService(StandardTypesServiceClient.class, 
"StandardTypesServiceClientSCAComponent");
@@ -489,7 +489,7 @@
      * Service method invoked is getNewURI.
      */
     @Test
-    @Ignore("junit.framework.AssertionFailedError: expected:<http://abcuri> 
but was:<http://abcuri>")
+    // @Ignore("junit.framework.AssertionFailedError: expected:<http://abcuri> 
but was:<http://abcuri>")
     public void testWSNewURI() throws Exception {
         StandardTypesServiceClient serviceClient =
             domain.getService(StandardTypesServiceClient.class, 
"StandardTypesServiceClientWSComponent");
@@ -501,7 +501,7 @@
      * Service method invoked is getNewURIArray.
      */
     @Test
-    @Ignore("junit.framework.AssertionFailedError: expected:<http://abcuri> 
but was:<http://abcuri>")
+    // @Ignore("junit.framework.AssertionFailedError: expected:<http://abcuri> 
but was:<http://abcuri>")
     public void testWSNewURIArray() throws Exception {
         StandardTypesServiceClient serviceClient =
             domain.getService(StandardTypesServiceClient.class, 
"StandardTypesServiceClientWSComponent");
@@ -561,7 +561,7 @@
     public void testWSNewObject() throws Exception {
         StandardTypesServiceClient serviceClient =
             domain.getService(StandardTypesServiceClient.class, 
"StandardTypesServiceClientWSComponent");
-        //performTestNewObject(serviceClient);
+        performTestNewObject(serviceClient);
     }
 
     /**
@@ -573,7 +573,7 @@
     public void testWSNewObjectArray() throws Exception {
         StandardTypesServiceClient serviceClient =
             domain.getService(StandardTypesServiceClient.class, 
"StandardTypesServiceClientWSComponent");
-        //performTestNewObjectArray(serviceClient);
+        performTestNewObjectArray(serviceClient);
     }
 
     /**
@@ -1094,9 +1094,9 @@
     private void performTestNewURI(StandardTypesServiceClient serviceClient) {
         URI[] uris = new URI[4];
         uris[0] = URI.create("a/b/c");
-        uris[1] = URI.create("http://abc";);
+        uris[1] = URI.create("http://abc/";);
         uris[2] = URI.create("ftp://a/b";);
-        uris[3] = URI.create("http://abc";).resolve("xyz");
+        uris[3] = URI.create("http://abc/";).resolve("xyz");
 
         for (int i = 0; i < uris.length; ++i) {
             URI expected = uris[i].resolve("uri");
@@ -1111,9 +1111,9 @@
         // [rfeng] We need to have a trialign / to avoid the resolving problem
         // FIXME: [vamsi] This is actually a data transformation problem. The 
array being returned from the service method is
         // not making to the caller intact.
-        uris[1] = URI.create("http://abc";);
+        uris[1] = URI.create("http://abc/";);
         uris[2] = URI.create("ftp://a/b";);
-        uris[3] = URI.create("http://abc";).resolve("xyz");
+        uris[3] = URI.create("http://abc/";).resolve("xyz");
 
         URI[] expected = new URI[uris.length];
         for (int i = 0; i < uris.length; ++i) {

Modified: 
incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/processor/DataBindingJavaInterfaceProcessor.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/processor/DataBindingJavaInterfaceProcessor.java?rev=666532&r1=666531&r2=666532&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/processor/DataBindingJavaInterfaceProcessor.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/processor/DataBindingJavaInterfaceProcessor.java
 Tue Jun 10 22:24:15 2008
@@ -22,9 +22,11 @@
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Method;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 import org.apache.tuscany.sca.databinding.DataBindingExtensionPoint;
 import org.apache.tuscany.sca.databinding.WrapperHandler;
@@ -46,7 +48,7 @@
  */
 public class DataBindingJavaInterfaceProcessor implements JavaInterfaceVisitor 
{
     private static final String JAXB_DATABINDING = 
"javax.xml.bind.JAXBElement";
-    private DataBindingExtensionPoint dataBindingRegistry; 
+    private DataBindingExtensionPoint dataBindingRegistry;
 
     public DataBindingJavaInterfaceProcessor(DataBindingExtensionPoint 
dataBindingRegistry) {
         super();
@@ -143,6 +145,7 @@
             String db = operation.getDataBinding();
             if (db == null || JAXB_DATABINDING.equals(db)) {
                 assignOperationDataBinding(operation);
+                db = operation.getDataBinding();
             }
 
             // Introspect the wrapper data type
@@ -155,6 +158,12 @@
                     
wrapper.setInputWrapperType(handler.getWrapperType(operation, true));
                     
wrapper.setOutputWrapperType(handler.getWrapperType(operation, false));
                 }
+                if (dbObj != null && handler == null) {
+                    // To avoid JAXB wrapper bean generation
+                    WrapperInfo wrapper = operation.getWrapper();
+                    wrapper.setInputWrapperType(null);
+                    wrapper.setOutputWrapperType(null);
+                }
             }
         }
     }
@@ -168,7 +177,7 @@
      */
     private void assignOperationDataBinding(Operation operation) {
 
-        String nonDefaultDataBindingName = null;
+        Set<String> dbs = new HashSet<String>();
 
         // Can't use DataType<?> since operation.getInputType() returns: 
DataType<List<DataType>> 
         List<DataType> opDataTypes = new LinkedList<DataType>();
@@ -182,28 +191,20 @@
         for (DataType<?> d : opDataTypes) {
             if (d != null) {
                 String dataBinding = d.getDataBinding();
-                // Assumes JavaBeans DB is default
-                if (dataBinding != null && 
!dataBinding.equals(JavaBeansDataBinding.NAME)
-                    && !dataBinding.equals(SimpleJavaDataBinding.NAME) && 
!dataBinding.startsWith("java:")) {
-                    if (nonDefaultDataBindingName != null) {
-                        if (!nonDefaultDataBindingName.equals(dataBinding)) {
-                            // We've seen two different non-default DBs, e.g. 
SDO and JAXB
-                            // so unset the string and break out of the loop 
-                            nonDefaultDataBindingName = null;
-                            break;
-                        } else {
-                            continue;
-                        }
-                    } else {
-                        nonDefaultDataBindingName = dataBinding;
-                    }
+                if ("java:array".equals(dataBinding)) {
+                    dataBinding = ((DataType)d.getLogical()).getDataBinding();
+                }
+                if (dataBinding != null) {
+                    dbs.add(dataBinding);
                 }
             }
         }
 
-        // We have a DB worthy of promoting to operation level.
-        if (nonDefaultDataBindingName != null) {
-            operation.setDataBinding(nonDefaultDataBindingName);
+        dbs.remove(JavaBeansDataBinding.NAME);
+        dbs.remove(SimpleJavaDataBinding.NAME);
+
+        if (dbs.size() == 1) {
+            operation.setDataBinding(dbs.iterator().next());
         }
     }
 }

Modified: 
incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBContextHelper.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBContextHelper.java?rev=666532&r1=666531&r2=666532&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBContextHelper.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBContextHelper.java
 Tue Jun 10 22:24:15 2008
@@ -89,12 +89,12 @@
         // TODO: [rfeng] Need to figure out what's the best grantularity to 
create the JAXBContext
         // per interface, operation or parameter
 
-        /*
+        
         Operation op = source ? tContext.getSourceOperation() : 
tContext.getTargetOperation();
         if (op != null) {
             return createJAXBContext(getDataTypes(op, true));
         }
-        */
+        
 
         DataType<?> dataType = source ? tContext.getSourceDataType() : 
tContext.getTargetDataType();
         return createJAXBContext(dataType);

Modified: 
incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/DefaultDataBindingExtensionPoint.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/DefaultDataBindingExtensionPoint.java?rev=666532&r1=666531&r2=666532&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/DefaultDataBindingExtensionPoint.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/DefaultDataBindingExtensionPoint.java
 Tue Jun 10 22:24:15 2008
@@ -35,6 +35,7 @@
 import org.apache.tuscany.sca.interfacedef.DataType;
 import org.apache.tuscany.sca.interfacedef.Operation;
 import org.apache.tuscany.sca.interfacedef.impl.DataTypeImpl;
+import org.apache.tuscany.sca.interfacedef.util.XMLType;
 
 /**
  * The default implementation of a data binding extension point.
@@ -219,6 +220,7 @@
         // level?
         Class physical = dataType.getPhysical();
         if (physical == Object.class) {
+            dataType.setDataBinding(JavaBeansDataBinding.NAME);
             return false;
         }
         if (dataType.getPhysical().isArray()) {
@@ -230,7 +232,8 @@
         } else {
             dataType.setDataBinding(JavaBeansDataBinding.NAME);
             return false;
-        }    }
+        }
+    }
 
     private boolean introspectArray(DataType dataType, Operation operation) {
         Class physical = dataType.getPhysical();
@@ -260,6 +263,6 @@
                 return dataType;
             }
         }
-        return new DataTypeImpl<Class>(JavaBeansDataBinding.NAME, 
value.getClass(), value.getClass());
+        return new DataTypeImpl<XMLType>(JavaBeansDataBinding.NAME, 
value.getClass(), XMLType.UNKNOWN);
     }
 }

Modified: 
incubator/tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/GeneratedDataTypeImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/GeneratedDataTypeImpl.java?rev=666532&r1=666531&r2=666532&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/GeneratedDataTypeImpl.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/GeneratedDataTypeImpl.java
 Tue Jun 10 22:24:15 2008
@@ -39,19 +39,20 @@
     private Class<?> physical;
     private XMLType logical;
 
-    private Method m;
+    private Object metaData;
+    private Method method;
     private String wrapperClassName;
     private String wrapperNamespace;
     private String wrapperName;
     private boolean request;
-    private GeneratedClassLoader cl;
+    private GeneratedClassLoader classLoader;
 
     private Class<? extends Throwable> exceptionClass;
 
     public GeneratedDataTypeImpl(XMLAdapterExtensionPoint xmlAdapters, Class<? 
extends Throwable> exceptionClass, GeneratedClassLoader cl) {
         super();
         this.exceptionClass = exceptionClass;
-        this.cl = cl;
+        this.classLoader = cl;
         QName name = FaultBeanGenerator.getElementName(exceptionClass);
         this.logical = new XMLType(name, name);
         this.xmlAdapters = xmlAdapters;
@@ -65,11 +66,11 @@
                                  boolean request,
                                  GeneratedClassLoader cl) {
         super();
-        this.m = m;
+        this.method = m;
         this.wrapperClassName = wrapperClassName;
         this.wrapperNamespace = wrapperNamespace;
         this.wrapperName = wrapperName;
-        this.cl = cl;
+        this.classLoader = cl;
         this.request = request;
         QName name = new QName(wrapperNamespace, wrapperName);
         this.logical = new XMLType(name, name);
@@ -90,17 +91,17 @@
 
     public synchronized Class<?> getPhysical() {
         if (physical == null) {
-            if (m != null) {
+            if (method != null) {
                 WrapperBeanGenerator generator = new WrapperBeanGenerator();
                 generator.setXmlAdapters(xmlAdapters);
                 physical =
-                    request ? generator.generateRequestWrapper(m, 
wrapperClassName, wrapperNamespace, wrapperName, cl)
-                        : generator.generateResponseWrapper(m, 
wrapperClassName, wrapperNamespace, wrapperName, cl);
+                    request ? generator.generateRequestWrapper(method, 
wrapperClassName, wrapperNamespace, wrapperName, classLoader)
+                        : generator.generateResponseWrapper(method, 
wrapperClassName, wrapperNamespace, wrapperName, classLoader);
                 ;
             } else if (exceptionClass != null) {
                 FaultBeanGenerator faultBeanGenerator = new 
FaultBeanGenerator();
                 faultBeanGenerator.setXmlAdapters(xmlAdapters);
-                physical = faultBeanGenerator.generate(exceptionClass, cl);
+                physical = faultBeanGenerator.generate(exceptionClass, 
classLoader);
             }
         }
         return physical;
@@ -125,5 +126,13 @@
     public Object clone() throws CloneNotSupportedException {
         return super.clone();
     }
+    
+    public Object getMetaData() {
+        return metaData;
+    }
+
+    public void setMetaData(Object metaData) {
+        this.metaData = metaData;
+    }
 
 }

Modified: 
incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/DataType.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/DataType.java?rev=666532&r1=666531&r2=666532&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/DataType.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/DataType.java
 Tue Jun 10 22:24:15 2008
@@ -103,4 +103,15 @@
      */
     void setLogical(L logical);
 
+    /**
+     * Get the databinding-specific metadata
+     * @return the databinding-specific metadata
+     */
+    Object getMetaData();
+    /**
+     * Set the databinding-specific metadata
+     * @param metaData the databinding-specific metadata, such as SDO's 
commonj.sdo.Type or 
+     * JAXB's javax.xml.bind.JAXBContext
+     */
+    void setMetaData(Object metaData);
 }

Modified: 
incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/DataTypeImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/DataTypeImpl.java?rev=666532&r1=666531&r2=666532&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/DataTypeImpl.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/DataTypeImpl.java
 Tue Jun 10 22:24:15 2008
@@ -44,6 +44,7 @@
     private Class<?> physical;
     private Type genericType;
     private L logical;
+    private Object metaData;
 
     /**
      * Construct a data type specifying the physical and logical types.
@@ -202,4 +203,12 @@
             return false;
         return true;
     }
+
+    public Object getMetaData() {
+        return metaData;
+    }
+
+    public void setMetaData(Object metaData) {
+        this.metaData = metaData;
+    }
 }


Reply via email to