You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by am...@apache.org on 2008/02/08 13:20:32 UTC

svn commit: r619858 - in /incubator/tuscany/java/sdo: impl/src/main/java/org/apache/tuscany/sdo/helper/ impl/src/main/java/org/apache/tuscany/sdo/util/ impl/src/test/java/org/apache/tuscany/sdo/test/ impl/src/test/resources/ lib/src/main/java/org/apach...

Author: amita
Date: Fri Feb  8 04:20:31 2008
New Revision: 619858

URL: http://svn.apache.org/viewvc?rev=619858&view=rev
Log:
TUSCANY-1360 enumeration and pattern facet

Modified:
    incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/SDOHelperImpl.java
    incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/DataObjectUtil.java
    incubator/tuscany/java/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/MetadataInstancePropertiesTestCase.java
    incubator/tuscany/java/sdo/impl/src/test/resources/TypePropertyMetadataInfo.xsd
    incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/api/SDOHelper.java
    incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/api/SDOUtil.java

Modified: incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/SDOHelperImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/SDOHelperImpl.java?rev=619858&r1=619857&r2=619858&view=diff
==============================================================================
--- incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/SDOHelperImpl.java (original)
+++ incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/SDOHelperImpl.java Fri Feb  8 04:20:31 2008
@@ -129,6 +129,36 @@
         return ((EStructuralFeature)property).getLowerBound();
     }
     
+    public List getEnumerationFacet(Type type) {
+    	List instProps = type.getInstanceProperties();
+    	String propertyName = "enumeration";
+    	Property enumProperty = null;
+    	
+		for (int i = 0; i < instProps.size(); i++)
+		{
+		  Property prop = (Property)instProps.get(i);
+		  if (propertyName.equals(prop.getName()))
+			  enumProperty = prop;
+		}
+
+		return (List)DataObjectUtil.getMetaObjectInstanceProperty((EModelElement)type, enumProperty);
+    }
+    
+    public List getPatternFacet(Type type) {
+    	List instProps = type.getInstanceProperties();
+    	String propertyName = "pattern";
+    	Property patternProperty = null;
+    	
+		for (int i = 0; i < instProps.size(); i++)
+		{
+		  Property prop = (Property)instProps.get(i);
+		  if (propertyName.equals(prop.getName()))
+			  patternProperty = prop;
+		}
+
+		return (List)DataObjectUtil.getMetaObjectInstanceProperty((EModelElement)type, patternProperty);
+    }
+
     public boolean isMany(Property property, DataObject context) {
         return FeatureMapUtil.isMany((EObject)context, (EStructuralFeature)property);
     }

Modified: incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/DataObjectUtil.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/DataObjectUtil.java?rev=619858&r1=619857&r2=619858&view=diff
==============================================================================
--- incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/DataObjectUtil.java (original)
+++ incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/DataObjectUtil.java Fri Feb  8 04:20:31 2008
@@ -58,6 +58,7 @@
 import org.eclipse.emf.ecore.EReference;
 import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.impl.EDataTypeImpl;
 import org.eclipse.emf.ecore.impl.EPackageRegistryImpl;
 import org.eclipse.emf.ecore.impl.EStringToStringMapEntryImpl;
 import org.eclipse.emf.ecore.resource.Resource;
@@ -2851,7 +2852,7 @@
   public static List getMetaObjectInstanceProperties(EModelElement metaObject) 
   {
     // Use the default helper context for now
-//    TypeHelper typeHelper = HelperProvider.getDefaultContext().getTypeHelper();
+	// TypeHelper typeHelper = HelperProvider.getDefaultContext().getTypeHelper();
       HelperContext hc = HelperProvider.getDefaultContext();
       
     List result = new UniqueEList();
@@ -2884,12 +2885,32 @@
    * @param property - The instance property to retrieve
    * @return The value of the instance property
    */
-  public static Object getMetaObjectInstanceProperty(EModelElement metaObject, Property property)
+  /*public static Object getMetaObjectInstanceProperty(EModelElement metaObject, Property property)
   {
     String value = EcoreUtil.getAnnotation(metaObject, property.getContainingType().getURI(), property.getName());
     //TODO if (property.isMany()) ... // create list of values from from string
     return SDOUtil.createFromString(property.getType(), value);
-  }
+  }*/
+  
+	 public static Object getMetaObjectInstanceProperty(EModelElement metaObject, Property property)
+	 {
+	  if(metaObject instanceof EDataTypeImpl){
+		  if(property.getName().equals("enumeration")) {
+				  List enumVals = ((EDataTypeImpl)metaObject).getExtendedMetaData().getEnumerationFacet();
+				  return enumVals;
+			  }
+	 
+			  if(property.getName().equals("pattern")) {
+			  List patternVals = ((EDataTypeImpl)metaObject).getExtendedMetaData().getPatternFacet();
+			  return patternVals;
+		  }
+	  }
+	  String value = EcoreUtil.getAnnotation(metaObject, property.getContainingType().getURI(), property.getName());
+	  //TODO if (property.isMany()) ... // create list of values from from string
+	  return SDOUtil.createFromString(property.getType(), value);
+	 }
+  
+  
 /*
   protected static Property getGlobalProperty(TypeHelper typeHelper, String uri, String name)
   {

Modified: incubator/tuscany/java/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/MetadataInstancePropertiesTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/MetadataInstancePropertiesTestCase.java?rev=619858&r1=619857&r2=619858&view=diff
==============================================================================
--- incubator/tuscany/java/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/MetadataInstancePropertiesTestCase.java (original)
+++ incubator/tuscany/java/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/MetadataInstancePropertiesTestCase.java Fri Feb  8 04:20:31 2008
@@ -138,6 +138,29 @@
     assertTrue(getInstanceProperty(property, "foo") == null);
   }
   
+  //Amita
+  public void testEnumProperty()
+  {
+	    Type type = typeHelper.getType(TEST_NAMESPACE, "ExampleRating");
+	    assertTrue(getInstanceProperty(type, "enumeration") != null);
+	    List enumFacet = SDOUtil.getEnumerationFacet(type);
+	    assertEquals(3, enumFacet.size());
+	    assertEquals("", enumFacet.get(0));
+	    assertEquals("Good", enumFacet.get(1));
+	    assertEquals("Bad", enumFacet.get(2));	    
+  }
+  
+  //Amita
+  public void testPatternProperty()
+  {
+	    Type type = typeHelper.getType(TEST_NAMESPACE, "PhoneNumber");
+	    assertTrue(getInstanceProperty(type, "pattern") != null);
+	    List patternFacet = SDOUtil.getPatternFacet(type);
+	    assertEquals(2, patternFacet.size());
+	    assertEquals("\\d{3}-\\d{4}", patternFacet.get(0));
+	    assertEquals("\\d{6}-\\d{8}", patternFacet.get(1));
+  }
+  
   public void setUp() throws Exception
   {
     super.setUp();

Modified: incubator/tuscany/java/sdo/impl/src/test/resources/TypePropertyMetadataInfo.xsd
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/impl/src/test/resources/TypePropertyMetadataInfo.xsd?rev=619858&r1=619857&r2=619858&view=diff
==============================================================================
--- incubator/tuscany/java/sdo/impl/src/test/resources/TypePropertyMetadataInfo.xsd (original)
+++ incubator/tuscany/java/sdo/impl/src/test/resources/TypePropertyMetadataInfo.xsd Fri Feb  8 04:20:31 2008
@@ -82,6 +82,7 @@
 	<restriction base="string">
 		<length value="8"/>
 		<pattern value="\d{3}-\d{4}"/>
+		<pattern value="\d{6}-\d{8}"/>
 	</restriction>
 </simpleType>
 
@@ -93,4 +94,4 @@
 	</restriction>
 </simpleType>
    
-</schema>
\ No newline at end of file
+</schema>

Modified: incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/api/SDOHelper.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/api/SDOHelper.java?rev=619858&r1=619857&r2=619858&view=diff
==============================================================================
--- incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/api/SDOHelper.java (original)
+++ incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/api/SDOHelper.java Fri Feb  8 04:20:31 2008
@@ -154,6 +154,20 @@
   public int getLowerBound(Property property);
   
   /**
+   * Return Enumeration facet 
+   * @param type
+   * @return List of enum facets in a Type
+   *///Amita
+  public List getEnumerationFacet(Type type);
+  
+  /**
+   * Return Pattern facet 
+   * @param type
+   * @return List of pattern facets in a Type
+   *///Amita
+  public List getPatternFacet(Type type);
+
+  /**
    * 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

Modified: incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/api/SDOUtil.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/api/SDOUtil.java?rev=619858&r1=619857&r2=619858&view=diff
==============================================================================
--- incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/api/SDOUtil.java (original)
+++ incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/api/SDOUtil.java Fri Feb  8 04:20:31 2008
@@ -119,6 +119,14 @@
     return defaultSDOHelper.getLowerBound(property);
   }
   
+  public static List getEnumerationFacet(Type type) {
+	  return defaultSDOHelper.getEnumerationFacet(type);
+  }
+
+  public static List getPatternFacet(Type type) {
+	  return defaultSDOHelper.getPatternFacet(type);
+  }
+	     
   /**
    * @see {@link org.apache.tuscany.sdo.api.SDOHelper#isMany(Property, DataObject)}.
    */



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