Author: ips
Date: Mon Mar 14 14:05:14 2005
New Revision: 157472

URL: http://svn.apache.org/viewcvs?view=rev&rev=157472
Log:
added support for registering more than one propChanged event listener (see 
http://issues.apache.org/jira/browse/APOLLO-3)

Modified:
    
incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/ResourceProperty.java
    
incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/impl/AbstractSetResourcePropertiesPortType.java
    
incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/impl/XmlBeansResourceProperty.java

Modified: 
incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/ResourceProperty.java
URL: 
http://svn.apache.org/viewcvs/incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/ResourceProperty.java?view=diff&r1=157471&r2=157472
==============================================================================
--- 
incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/ResourceProperty.java
 (original)
+++ 
incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/ResourceProperty.java
 Mon Mar 14 14:05:14 2005
@@ -145,7 +145,18 @@
      */
     ResourcePropertyCallback getCallBack();
 
-    ResourcePropertyValueChangeListener getChangeListener();
+    /**
+     * Returns the value-change listeners that are registered on this property.
+     *
+     * @return the value-change listeners that are registered on this 
property; may be empty, but never null
+     */
+    ResourcePropertyValueChangeListener[] getChangeListeners();
+
+    /**
+     * Registers the specified value-change listener on this property.
+     *
+     * @param listener a property value-change listener
+     */
+    void addChangeListener( ResourcePropertyValueChangeListener listener );
 
-    void setChangeListener( ResourcePropertyValueChangeListener listenerValue 
);
 }

Modified: 
incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/impl/AbstractSetResourcePropertiesPortType.java
URL: 
http://svn.apache.org/viewcvs/incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/impl/AbstractSetResourcePropertiesPortType.java?view=diff&r1=157471&r2=157472
==============================================================================
--- 
incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/impl/AbstractSetResourcePropertiesPortType.java
 (original)
+++ 
incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/impl/AbstractSetResourcePropertiesPortType.java
 Mon Mar 14 14:05:14 2005
@@ -25,6 +25,7 @@
 import org.apache.ws.resource.properties.ResourcePropertyCallback;
 import org.apache.ws.resource.properties.ResourcePropertyMetaData;
 import org.apache.ws.resource.properties.SetResourcePropertyCallback;
+import org.apache.ws.resource.properties.ResourcePropertyValueChangeListener;
 import 
org.apache.ws.resource.properties.faults.InvalidResourcePropertyQNameFaultException;
 import 
org.apache.ws.resource.properties.faults.InvalidSetResourcePropertiesRequestContentFaultException;
 import 
org.apache.ws.resource.properties.faults.SetResourcePropertyRequestFailedFaultException;
@@ -96,10 +97,7 @@
         Object[] oldValue = getValue( prop );
         prop.clear();
         Object[] newValue = null;
-        if ( prop.getChangeListener() != null )
-        {
-            firePropChangeEvent( prop, oldValue, newValue );
-        }
+        firePropChangeEvents( prop, oldValue, newValue );
     }
 
     /**
@@ -160,10 +158,7 @@
             }
         }
         Object[] newValue = getValue( prop );
-        if ( prop.getChangeListener() != null )
-        {
-            firePropChangeEvent( prop, oldValue, newValue );
-        }
+        firePropChangeEvents( prop, oldValue, newValue );        
     }
 
     /**
@@ -215,10 +210,7 @@
             throw new 
InvalidSetResourcePropertiesRequestContentFaultException( getNamespaceSet(), 
mdve );
         }
         Object[] newValue = getValue( prop );
-        if ( prop.getChangeListener() != null )
-        {
-            firePropChangeEvent( prop, oldValue, newValue );
-        }
+        firePropChangeEvents( prop, oldValue, newValue );
     }
 
     private ResourceProperty createAnyProperty(QName propName)
@@ -355,9 +347,13 @@
         }
     }
 
-    private void firePropChangeEvent( ResourceProperty prop, Object[] 
oldValue, Object[] newValue )
+    private void firePropChangeEvents( ResourceProperty prop, Object[] 
oldValue, Object[] newValue )
     {
-        prop.getChangeListener().propertyChanged( new 
XmlBeansResourcePropertyValueChangeEvent( oldValue, newValue ) );
+        for ( int i = 0; i < prop.getChangeListeners().length; i++ )
+        {
+            ResourcePropertyValueChangeListener listener = 
prop.getChangeListeners()[i];
+            listener.propertyChanged( new 
XmlBeansResourcePropertyValueChangeEvent( oldValue, newValue ) );
+        }
     }
 
 }

Modified: 
incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/impl/XmlBeansResourceProperty.java
URL: 
http://svn.apache.org/viewcvs/incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/impl/XmlBeansResourceProperty.java?view=diff&r1=157471&r2=157472
==============================================================================
--- 
incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/impl/XmlBeansResourceProperty.java
 (original)
+++ 
incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/impl/XmlBeansResourceProperty.java
 Mon Mar 14 14:05:14 2005
@@ -35,6 +35,8 @@
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
+import java.util.HashSet;
+import java.util.Set;
 
 /**
  * An Apache XMLBeans-based implementation of a resource property.
@@ -51,7 +53,7 @@
     private XmlBeansResourcePropertySet m_propSet;
     private List m_propElems = new ArrayList();
     private ResourcePropertyCallback m_callBack;
-    private ResourcePropertyValueChangeListener m_changeListener;
+    private Set m_changeListeners = new HashSet();
 
     /**
      * Creates a new [EMAIL PROTECTED] XmlBeansResourceProperty} object.
@@ -87,7 +89,7 @@
     }
 
     /**
-     * @return
+     * @see ResourceProperty#isEmpty()
      */
     public boolean isEmpty()
     {
@@ -95,9 +97,7 @@
     }
 
     /**
-     * DOCUMENT_ME
-     *
-     * @return DOCUMENT_ME
+     * @see ResourceProperty#getMetaData()
      */
     public ResourcePropertyMetaData getMetaData()
     {
@@ -105,7 +105,7 @@
     }
 
     /**
-     * @return
+     * @see ResourceProperty#getSet()
      */
     public ResourcePropertySet getSet()
     {
@@ -297,9 +297,7 @@
     }
 
     /**
-     * DOCUMENT_ME
-     *
-     * @return DOCUMENT_ME
+     * @see ResourceProperty#toXML()
      */
     public String toXML()
     {
@@ -312,22 +310,25 @@
         return buf.toString();
     }
 
-    /**
-     * @return
-     */
     public XmlObject[] toXmlObjects()
     {
         return (XmlObject[]) m_propElems.toArray( new XmlObject[0] );
     }
 
-    public ResourcePropertyValueChangeListener getChangeListener()
+    /**
+     * @see ResourceProperty#getChangeListeners()
+     */
+    public ResourcePropertyValueChangeListener[] getChangeListeners()
     {
-        return m_changeListener;
+        return (ResourcePropertyValueChangeListener[]) 
m_changeListeners.toArray( new ResourcePropertyValueChangeListener[0] );
     }
 
-    public void setChangeListener( ResourcePropertyValueChangeListener 
changeListener )
+    /**
+     * @see 
ResourceProperty#addChangeListener(ResourcePropertyValueChangeListener)
+     */
+    public void addChangeListener( ResourcePropertyValueChangeListener 
changeListener )
     {
-        m_changeListener = changeListener;
+        m_changeListeners.add( changeListener );
     }
 
     private XmlObject toPropXBean( Object propElem )



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to