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