tuscany-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From kelvingood...@apache.org
Subject svn commit: r451191 - in /incubator/tuscany/branches/sdo-java-M2: distribution/sdo/ sdo/impl/src/main/java/org/apache/tuscany/sdo/util/ sdo/impl/src/main/java/org/apache/tuscany/sdo/util/resource/ sdo/impl/src/test/java/org/apache/tuscany/sdo/test/ sdo...
Date Fri, 29 Sep 2006 09:24:30 GMT
Author: kelvingoodson
Date: Fri Sep 29 02:24:29 2006
New Revision: 451191

URL: http://svn.apache.org/viewvc?view=rev&rev=451191
Log:
TUSCANY-115 copy fix from trunk to M2 branch and update release doc

Added:
    incubator/tuscany/branches/sdo-java-M2/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/IsManyTestCase.java
    incubator/tuscany/branches/sdo-java-M2/sdo/impl/src/test/resources/open1any.xsd
Modified:
    incubator/tuscany/branches/sdo-java-M2/distribution/sdo/CHANGES.txt
    incubator/tuscany/branches/sdo-java-M2/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/SDOUtil.java
    incubator/tuscany/branches/sdo-java-M2/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/resource/DataObjectXMLStreamReader.java

Modified: incubator/tuscany/branches/sdo-java-M2/distribution/sdo/CHANGES.txt
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sdo-java-M2/distribution/sdo/CHANGES.txt?view=diff&rev=451191&r1=451190&r2=451191
==============================================================================
--- incubator/tuscany/branches/sdo-java-M2/distribution/sdo/CHANGES.txt (original)
+++ incubator/tuscany/branches/sdo-java-M2/distribution/sdo/CHANGES.txt Fri Sep 29 02:24:29
2006
@@ -68,4 +68,5 @@
     * support base64Binary and hexBinary XSD types correctly (TUSCANY-685)
     * fixed generation of invalid prefixes in XML serialization (TUSCANY-711)
     * sometimes SDOXMLResourceImpl (instead of XSDResourceImp) was incorrectly used when
loading .xsd files (TUSCANY-714)
-    * roundtripping an xsd:anyType via XML using XMLStreamHelper gave wrong kind of DataObject
(TUSCANY-755)
\ No newline at end of file
+    * roundtripping an xsd:anyType via XML using XMLStreamHelper gave wrong kind of DataObject
(TUSCANY-755)
+    * cardinality of global elements should be adaptive according to usage context (TUSCANY-115)
\ No newline at end of file

Modified: incubator/tuscany/branches/sdo-java-M2/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/SDOUtil.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sdo-java-M2/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/SDOUtil.java?view=diff&rev=451191&r1=451190&r2=451191
==============================================================================
--- incubator/tuscany/branches/sdo-java-M2/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/SDOUtil.java
(original)
+++ incubator/tuscany/branches/sdo-java-M2/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/SDOUtil.java
Fri Sep 29 02:24:29 2006
@@ -69,6 +69,7 @@
 import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.eclipse.emf.ecore.util.ExtendedMetaData;
 import org.eclipse.emf.ecore.util.FeatureMap;
+import org.eclipse.emf.ecore.util.FeatureMapUtil;
 import org.eclipse.emf.ecore.xml.type.XMLTypePackage;
 
 import commonj.sdo.DataGraph;
@@ -189,6 +190,17 @@
   public static boolean isRequired(Property property)
   {
     return ((EStructuralFeature)property).isRequired();
+  }
+
+  /**
+   * Returns whether the Property is many-valued given the specified context.
+   * @param property The Property in question
+   * @param context The context to check whether the specified Property is many-valued
+   * @return true if the Property is many-valued given the specified context.
+   */
+  public static boolean isMany(Property property, DataObject context) 
+  {
+    return FeatureMapUtil.isMany((EObject) context, (EStructuralFeature) property);
   }
 
   /**

Modified: incubator/tuscany/branches/sdo-java-M2/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/resource/DataObjectXMLStreamReader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sdo-java-M2/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/resource/DataObjectXMLStreamReader.java?view=diff&rev=451191&r1=451190&r2=451191
==============================================================================
--- incubator/tuscany/branches/sdo-java-M2/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/resource/DataObjectXMLStreamReader.java
(original)
+++ incubator/tuscany/branches/sdo-java-M2/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/resource/DataObjectXMLStreamReader.java
Fri Sep 29 02:24:29 2006
@@ -143,9 +143,7 @@
             return;
         if (property.isMany() && property.getContainingType().isOpen() &&
value instanceof Sequence) {
             addSequenceValue(propertyList, (Sequence) value);
-        } else if ((property.isMany() || isGlobal(property)) && value instanceof
List) {
-            // HACK: The isGlobal() test is a HACK for JIRA 115. Properties for global XSD
elements should return
-            // true for isMany()
+        } else if (SDOUtil.isMany(property, dataObject) && value instanceof List)
{
             addListValue(propertyList, property, (List) value);
         } else {
             // Complex Type
@@ -183,12 +181,6 @@
             }
         }
         return false;
-    }
-
-    private boolean isGlobal(Property property) {
-        String ns = xsdHelper.getNamespaceURI(property);
-        String name = xsdHelper.getLocalName(property);
-        return property == xsdHelper.getGlobalProperty(ns, name, true);
     }
 
     private void addListValue(List propertyList, Property property, List objList) {

Added: incubator/tuscany/branches/sdo-java-M2/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/IsManyTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sdo-java-M2/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/IsManyTestCase.java?view=auto&rev=451191
==============================================================================
--- incubator/tuscany/branches/sdo-java-M2/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/IsManyTestCase.java
(added)
+++ incubator/tuscany/branches/sdo-java-M2/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/IsManyTestCase.java
Fri Sep 29 02:24:29 2006
@@ -0,0 +1,65 @@
+/**
+ *
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+package org.apache.tuscany.sdo.test;
+
+import java.io.InputStream;
+import java.net.URL;
+
+import org.apache.tuscany.sdo.util.SDOUtil;
+
+import junit.framework.TestCase;
+
+import commonj.sdo.*;
+import commonj.sdo.helper.*;
+
+public class IsManyTestCase extends TestCase {
+    private final String TEST_MODEL = "/open.xsd";
+    private final String TEST_MODEL1ANY = "/open1any.xsd";
+    private final String TEST_NAMESPACE = "http://www.example.com/open";
+    private final String TEST_NAMESPACE1ANY = "http://www.example.com/open1any";
+
+    public void testIsMany() {
+        Property priceProperty = XSDHelper.INSTANCE.getGlobalProperty(TEST_NAMESPACE, "price",
true);
+        
+        Type quoteType = TypeHelper.INSTANCE.getType(TEST_NAMESPACE, "OpenQuote");
+        DataObject quote = DataFactory.INSTANCE.create(quoteType);
+        assertTrue( SDOUtil.isMany(priceProperty, quote));
+
+        quoteType = TypeHelper.INSTANCE.getType(TEST_NAMESPACE1ANY, "OpenQuote");
+        quote = DataFactory.INSTANCE.create(quoteType);
+        assertFalse( SDOUtil.isMany(priceProperty, quote));
+    }
+
+    protected void setUp() throws Exception {
+        super.setUp();
+
+        // Populate the meta data for the test (Stock Quote) model
+        URL url = getClass().getResource(TEST_MODEL);
+        InputStream inputStream = url.openStream();
+        XSDHelper.INSTANCE.define(inputStream, url.toString());
+        inputStream.close();
+
+        // Populate the meta data for the test (Stock Quote) model with maxOccurs=1 <any>
+        url = getClass().getResource(TEST_MODEL1ANY);
+        inputStream = url.openStream();
+        XSDHelper.INSTANCE.define(inputStream, url.toString());
+        inputStream.close();
+    }
+}
\ No newline at end of file

Added: incubator/tuscany/branches/sdo-java-M2/sdo/impl/src/test/resources/open1any.xsd
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sdo-java-M2/sdo/impl/src/test/resources/open1any.xsd?view=auto&rev=451191
==============================================================================
--- incubator/tuscany/branches/sdo-java-M2/sdo/impl/src/test/resources/open1any.xsd (added)
+++ incubator/tuscany/branches/sdo-java-M2/sdo/impl/src/test/resources/open1any.xsd Fri Sep
29 02:24:29 2006
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+ -->
+<xsd:schema 
+  xmlns:simple="http://www.example.com/open1any" 
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
+  targetNamespace="http://www.example.com/open1any"> 
+  
+   <xsd:element name="openStockQuote" type="simple:OpenQuote"/>
+   
+   <xsd:element name="price" type="xsd:decimal"/>
+   
+   <xsd:element name="company">
+     <xsd:complexType>
+     	<xsd:sequence>
+     		<xsd:element name="name" type="xsd:string"/>
+     	</xsd:sequence>
+     </xsd:complexType>
+   </xsd:element>
+
+   <xsd:complexType name="OpenQuote">
+       <xsd:sequence>
+          <xsd:element name="symbol" type="xsd:string"/>
+          <xsd:any namespace="##any"/>
+       </xsd:sequence>
+   </xsd:complexType>
+
+</xsd:schema>



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


Mime
View raw message