You are viewing a plain text version of this content. The canonical link for it is here.
Posted to muse-commits@ws.apache.org by da...@apache.org on 2007/02/23 15:55:16 UTC

svn commit: r510968 - /webservices/muse/trunk/modules/muse-wsrf-impl/src/org/apache/muse/ws/resource/metadata/impl/SimpleMetadataDescriptor.java

Author: danj
Date: Fri Feb 23 06:55:15 2007
New Revision: 510968

URL: http://svn.apache.org/viewvc?view=rev&rev=510968
Log:
Created addProperties() method, which will make a deep copy of all properties in one RMD and add them 
to the calling RMD.

Modified:
    webservices/muse/trunk/modules/muse-wsrf-impl/src/org/apache/muse/ws/resource/metadata/impl/SimpleMetadataDescriptor.java

Modified: webservices/muse/trunk/modules/muse-wsrf-impl/src/org/apache/muse/ws/resource/metadata/impl/SimpleMetadataDescriptor.java
URL: http://svn.apache.org/viewvc/webservices/muse/trunk/modules/muse-wsrf-impl/src/org/apache/muse/ws/resource/metadata/impl/SimpleMetadataDescriptor.java?view=diff&rev=510968&r1=510967&r2=510968
==============================================================================
--- webservices/muse/trunk/modules/muse-wsrf-impl/src/org/apache/muse/ws/resource/metadata/impl/SimpleMetadataDescriptor.java (original)
+++ webservices/muse/trunk/modules/muse-wsrf-impl/src/org/apache/muse/ws/resource/metadata/impl/SimpleMetadataDescriptor.java Fri Feb 23 06:55:15 2007
@@ -16,6 +16,7 @@
 
 package org.apache.muse.ws.resource.metadata.impl;
 
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
@@ -140,6 +141,51 @@
         }
     }
     
+    public void addProperties(MetadataDescriptor otherRMD)
+    {
+        Iterator i = otherRMD.getPropertyNames().iterator();
+        
+        //
+        // for each property, we have to make a deep copy of all 
+        // attributes and elements and add them to the new definition
+        //
+        while (i.hasNext())
+        {
+            QName name = (QName)i.next();
+            
+            String mutability = otherRMD.getMutability(name);
+            String modifiability = otherRMD.getModifiability(name);
+            Collection initialValues = new ArrayList(otherRMD.getInitialValues(name));
+            Collection staticValues = new ArrayList(otherRMD.getStaticValues(name));
+            Collection validValues = new ArrayList(otherRMD.getValidValues(name));
+            
+            PropertyMetadata copy = new PropertyMetadata(name, modifiability, mutability);
+            copy.setInitialValues(initialValues);
+            copy.setStaticValues(staticValues);
+            copy.setValidValues(validValues);
+            
+            //
+            // ValidValueRange will only exist if ValidValues was empty
+            //
+            if (validValues.isEmpty())
+            {
+                copy.setLowerBound(otherRMD.getLowerBound(name));
+                copy.setUpperBound(otherRMD.getUpperBound(name));
+            }
+            
+            Iterator j = otherRMD.getExtendedMetadataNames(name).iterator();
+            
+            while (j.hasNext())
+            {
+                QName metadataName = (QName)j.next();
+                String metadataValue = otherRMD.getExtendedMetadata(name, metadataName);
+                copy.setExtendedMetadata(metadataName, metadataValue);
+            }
+            
+            addProperty(copy);
+        }
+    }
+    
     private void addProperty(PropertyMetadata property)
     {
         QName name = property.getPropertyName();
@@ -229,6 +275,11 @@
     public String getExtendedMetadata(QName propertyQName, QName elementName)
     {
         return getProperty(propertyQName).getExtendedMetadata(elementName);
+    }
+
+    public Collection getExtendedMetadataNames(QName propertyQName)
+    {
+        return getProperty(propertyQName).getExtendedMetadataNames();
     }
 
     public Collection getInitialValues(QName propertyQName)



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