You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by ke...@apache.org on 2007/04/25 11:28:27 UTC

svn commit: r532276 - in /incubator/tuscany/tags/java/sdo/1.0-incubating-beta1: sdo-api/ sdo/ sdo/impl/ sdo/impl/src/main/java/org/apache/tuscany/sdo/util/ sdo/plugin/ sdo/sample/ sdo/tools/

Author: kelvingoodson
Date: Wed Apr 25 02:28:26 2007
New Revision: 532276

URL: http://svn.apache.org/viewvc?view=rev&rev=532276
Log:
switch to 1.0-incubating-beta1 version and port change for TUSCANY-1211 to beta1 tag

Modified:
    incubator/tuscany/tags/java/sdo/1.0-incubating-beta1/sdo-api/pom.xml
    incubator/tuscany/tags/java/sdo/1.0-incubating-beta1/sdo/impl/pom.xml
    incubator/tuscany/tags/java/sdo/1.0-incubating-beta1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/BasicSequence.java
    incubator/tuscany/tags/java/sdo/1.0-incubating-beta1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/DataObjectUtil.java
    incubator/tuscany/tags/java/sdo/1.0-incubating-beta1/sdo/plugin/pom.xml
    incubator/tuscany/tags/java/sdo/1.0-incubating-beta1/sdo/pom.xml
    incubator/tuscany/tags/java/sdo/1.0-incubating-beta1/sdo/sample/pom.xml
    incubator/tuscany/tags/java/sdo/1.0-incubating-beta1/sdo/tools/pom.xml

Modified: incubator/tuscany/tags/java/sdo/1.0-incubating-beta1/sdo-api/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/tags/java/sdo/1.0-incubating-beta1/sdo-api/pom.xml?view=diff&rev=532276&r1=532275&r2=532276
==============================================================================
--- incubator/tuscany/tags/java/sdo/1.0-incubating-beta1/sdo-api/pom.xml (original)
+++ incubator/tuscany/tags/java/sdo/1.0-incubating-beta1/sdo-api/pom.xml Wed Apr 25 02:28:26 2007
@@ -27,7 +27,7 @@
     <groupId>commonj</groupId>
     <artifactId>sdo-api-r${specVersion}</artifactId>
     <packaging>osgi-bundle</packaging>
-    <version>1.0-incubator-M3</version>
+    <version>1.0-incubating-beta1</version>
     <name>SDO API</name>
     <description>API classes for Service Data Objects</description>
 

Modified: incubator/tuscany/tags/java/sdo/1.0-incubating-beta1/sdo/impl/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/tags/java/sdo/1.0-incubating-beta1/sdo/impl/pom.xml?view=diff&rev=532276&r1=532275&r2=532276
==============================================================================
--- incubator/tuscany/tags/java/sdo/1.0-incubating-beta1/sdo/impl/pom.xml (original)
+++ incubator/tuscany/tags/java/sdo/1.0-incubating-beta1/sdo/impl/pom.xml Wed Apr 25 02:28:26 2007
@@ -21,7 +21,7 @@
     <parent>
         <groupId>org.apache.tuscany.sdo</groupId>
         <artifactId>tuscany-sdo</artifactId>
-        <version>1.0-incubator-M3</version>
+        <version>1.0-incubating-beta1</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <artifactId>tuscany-sdo-impl</artifactId>

Modified: incubator/tuscany/tags/java/sdo/1.0-incubating-beta1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/BasicSequence.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/tags/java/sdo/1.0-incubating-beta1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/BasicSequence.java?view=diff&rev=532276&r1=532275&r2=532276
==============================================================================
--- incubator/tuscany/tags/java/sdo/1.0-incubating-beta1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/BasicSequence.java (original)
+++ incubator/tuscany/tags/java/sdo/1.0-incubating-beta1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/BasicSequence.java Wed Apr 25 02:28:26 2007
@@ -26,6 +26,7 @@
 
 import commonj.sdo.Property;
 import commonj.sdo.Sequence;
+import commonj.sdo.Type;
 
 /**
  *  SDO Sequance implementation which delegates to a feature map.
@@ -75,10 +76,26 @@
     return featureMap.setValue(index, value);
   }
 
+  /*
   protected EStructuralFeature getEStructuralFeature(String propertyName)
   {
     return featureMap.getEObject().eClass().getEStructuralFeature(propertyName);
   }
+  */
+
+  protected EStructuralFeature getEStructuralFeature(String propertyName, Object value)
+  {
+    EStructuralFeature result = featureMap.getEObject().eClass().getEStructuralFeature(propertyName);
+    if (result == null)
+    {
+      Type type = (Type)featureMap.getEObject().eClass();
+      if (type.isOpen())
+      {
+        result = (EStructuralFeature)DataObjectUtil.demandOpenProperty(type, propertyName, value, true);
+      }
+    }
+    return result;
+  }
 
   protected EStructuralFeature getEStructuralFeature(int propertyIndex)
   {
@@ -87,7 +104,7 @@
 
   public boolean add(String propertyName, Object value)
   {
-    return featureMap.add(getEStructuralFeature(propertyName), value);
+    return featureMap.add(getEStructuralFeature(propertyName, value), value);
   }
 
   public boolean add(int propertyIndex, Object value)
@@ -102,7 +119,7 @@
 
   public void add(int index, String propertyName, Object value)
   {
-    featureMap.add(index, getEStructuralFeature(propertyName), value);
+    featureMap.add(index, getEStructuralFeature(propertyName, value), value);
   }
 
   public void add(int index, int propertyIndex, Object value)

Modified: incubator/tuscany/tags/java/sdo/1.0-incubating-beta1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/DataObjectUtil.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/tags/java/sdo/1.0-incubating-beta1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/DataObjectUtil.java?view=diff&rev=532276&r1=532275&r2=532276
==============================================================================
--- incubator/tuscany/tags/java/sdo/1.0-incubating-beta1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/DataObjectUtil.java (original)
+++ incubator/tuscany/tags/java/sdo/1.0-incubating-beta1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/DataObjectUtil.java Wed Apr 25 02:28:26 2007
@@ -40,7 +40,6 @@
 import org.apache.tuscany.sdo.impl.DataGraphImpl;
 import org.apache.tuscany.sdo.model.ModelFactory;
 import org.apache.tuscany.sdo.model.impl.ModelFactoryImpl;
-import org.apache.tuscany.sdo.util.resource.SDOURIConverterImpl;
 import org.apache.tuscany.sdo.util.resource.SDOXMLResourceFactoryImpl;
 import org.eclipse.emf.common.util.BasicEList;
 import org.eclipse.emf.common.util.URI;
@@ -730,7 +729,7 @@
     else 
     {
       DataObjectUtil.Accessor.create(
-        (EObject)dataObject, path).setAndRecyle(value);
+        (EObject)dataObject, path, value).setAndRecyle(value);
     }
   }
   
@@ -1794,6 +1793,52 @@
     }
     return list;
   }
+  
+  protected static Property demandOpenProperty(Type type, String name, Object value, boolean isSequence)
+  {
+    TypeHelper typeHelper = TypeHelper.INSTANCE; //FB TODO: what TypeHelper to use?
+    
+    String uri = type.getURI() + "/" + type.getName(); // unique URI for open content properties on instances of the type
+    Property property = typeHelper.getOpenContentProperty(uri, name);
+    if (property != null)
+      return property;
+
+    boolean isMany = isSequence;
+    boolean isContainment = false;
+    Type propertyType;
+    
+    if (value instanceof DataObject)
+    {
+      DataObject dataObject = (DataObject)value;
+      propertyType = dataObject.getType();
+      isContainment = dataObject.getContainer() == null;
+    }
+    else if (value instanceof List && !((List)value).isEmpty())
+    {
+      Object listValue = ((List)value).get(0); //TODO: get common base class if all values are not the same type?
+      if (listValue instanceof DataObject)
+        propertyType = ((DataObject)listValue).getType();
+      else
+        propertyType = typeHelper.getType(listValue.getClass());
+      isMany = true;
+    }
+    else
+    {
+      propertyType = typeHelper.getType(value.getClass()); 
+    }
+    if (propertyType == null)
+    {
+      propertyType = ((ModelFactoryImpl)ModelFactory.INSTANCE).getObject();
+    }
+    
+    Property newProperty = SDOUtil.createGlobalProperty(TypeHelper.INSTANCE, uri, name, propertyType);
+    if (isMany)
+      SDOUtil.setMany(newProperty, isMany);
+    if (isContainment)
+      SDOUtil.setContainment(newProperty, isContainment);
+
+    return newProperty;
+  }
 
   /**
    * Process the default EMF path and minimal XPath syntax.
@@ -1829,8 +1874,13 @@
      */
     public static Accessor create(EObject eObject, String path)
     {
+      return create(eObject, path, null);
+    }
+      
+    public static Accessor create(EObject eObject, String path, Object value)
+    {
       Accessor result = pool.get();
-      result.init(eObject, path);
+      result.init(eObject, path, value);
       return result;
     }
 
@@ -1887,6 +1937,7 @@
     protected static final int NO_INDEX = -1;
 
     protected EObject eObject;
+    protected Object value;
 
     protected EStructuralFeature feature;
 
@@ -1898,14 +1949,15 @@
     {
     }
 
-    protected Accessor(EObject eObject, String path)
-    {
-      init(eObject, path);
-    }
+    //protected Accessor(EObject eObject, String path)
+    //{
+    //  init(eObject, path);
+    //}
 
-    protected void init(EObject eObject, String path)
+    protected void init(EObject eObject, String path, Object value)
     {
       this.eObject = eObject;
+      this.value = value;
       runtimeException = null;
 
       // This should only be called with a path right now.
@@ -2041,7 +2093,16 @@
         {
           int index = name.lastIndexOf('.');
           if (index == -1)
+          {
+            Type type = (Type)eObject.eClass();
+            if (value != null && type.isOpen())
+            {
+              feature = (EStructuralFeature)demandOpenProperty(type, name, value, false);
+              this.index = NO_INDEX;
+              return;
+            }
             runtimeException = new IllegalArgumentException("Class '" + eObject.eClass().getName() + "' does not have a feature named '" + name + '\'');
+          }
           else
           {
             int propertyNameEnd = index;

Modified: incubator/tuscany/tags/java/sdo/1.0-incubating-beta1/sdo/plugin/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/tags/java/sdo/1.0-incubating-beta1/sdo/plugin/pom.xml?view=diff&rev=532276&r1=532275&r2=532276
==============================================================================
--- incubator/tuscany/tags/java/sdo/1.0-incubating-beta1/sdo/plugin/pom.xml (original)
+++ incubator/tuscany/tags/java/sdo/1.0-incubating-beta1/sdo/plugin/pom.xml Wed Apr 25 02:28:26 2007
@@ -21,7 +21,7 @@
     <parent>
         <groupId>org.apache.tuscany.sdo</groupId>
         <artifactId>tuscany-sdo</artifactId>
-        <version>1.0-incubator-SNAPSHOT</version>
+        <version>1.0-incubating-beta1</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <artifactId>tuscany-sdo-plugin</artifactId>

Modified: incubator/tuscany/tags/java/sdo/1.0-incubating-beta1/sdo/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/tags/java/sdo/1.0-incubating-beta1/sdo/pom.xml?view=diff&rev=532276&r1=532275&r2=532276
==============================================================================
--- incubator/tuscany/tags/java/sdo/1.0-incubating-beta1/sdo/pom.xml (original)
+++ incubator/tuscany/tags/java/sdo/1.0-incubating-beta1/sdo/pom.xml Wed Apr 25 02:28:26 2007
@@ -28,7 +28,7 @@
     <artifactId>tuscany-sdo</artifactId>
     <packaging>pom</packaging>
     <name>Tuscany SDO Implementation Project</name>
-    <version>1.0-incubator-M3</version>
+    <version>1.0-incubating-beta1</version>
 
     <repositories>
         <repository>

Modified: incubator/tuscany/tags/java/sdo/1.0-incubating-beta1/sdo/sample/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/tags/java/sdo/1.0-incubating-beta1/sdo/sample/pom.xml?view=diff&rev=532276&r1=532275&r2=532276
==============================================================================
--- incubator/tuscany/tags/java/sdo/1.0-incubating-beta1/sdo/sample/pom.xml (original)
+++ incubator/tuscany/tags/java/sdo/1.0-incubating-beta1/sdo/sample/pom.xml Wed Apr 25 02:28:26 2007
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.tuscany.sdo</groupId>
         <artifactId>tuscany-sdo</artifactId>
-        <version>1.0-incubator-M3</version>
+        <version>1.0-incubating-beta1</version>
     </parent>
 
     <modelVersion>4.0.0</modelVersion>

Modified: incubator/tuscany/tags/java/sdo/1.0-incubating-beta1/sdo/tools/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/tags/java/sdo/1.0-incubating-beta1/sdo/tools/pom.xml?view=diff&rev=532276&r1=532275&r2=532276
==============================================================================
--- incubator/tuscany/tags/java/sdo/1.0-incubating-beta1/sdo/tools/pom.xml (original)
+++ incubator/tuscany/tags/java/sdo/1.0-incubating-beta1/sdo/tools/pom.xml Wed Apr 25 02:28:26 2007
@@ -21,7 +21,7 @@
     <parent>
         <groupId>org.apache.tuscany.sdo</groupId>
         <artifactId>tuscany-sdo</artifactId>
-        <version>1.0-incubator-M3</version>
+        <version>1.0-incubating-beta1</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <artifactId>tuscany-sdo-tools</artifactId>



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org