Author: rfeng
Date: Thu Mar  5 01:19:16 2009
New Revision: 750272

URL: http://svn.apache.org/viewvc?rev=750272&view=rev
Log:
Add nonOverridable flag as defined by the oasis spec

Modified:
    
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/ComponentReference.java
    
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ComponentReferenceImpl.java

Modified: 
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/ComponentReference.java
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/ComponentReference.java?rev=750272&r1=750271&r2=750272&view=diff
==============================================================================
--- 
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/ComponentReference.java
 (original)
+++ 
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/ComponentReference.java
 Thu Mar  5 01:19:16 2009
@@ -74,6 +74,39 @@
     void setCallbackService(ComponentService callbackService);
     
     /**
+     * A boolean value, "false" by default, which indicates whether this 
component reference 
+     * can have its targets overridden by a composite reference which promotes 
the 
+     * component reference.
+     * 
+     *  If @nonOverridable==false, the target(s) of the promoting composite 
reference 
+     *  replace all the targets explicitly declared on the component reference 
for any 
+     *  value of @multiplicity on the component reference. 
+     *  
+     *  If the component reference has @nonOverridable==false and 
@multiplicity 1..1 
+     *  and the reference has a target, then any composite reference which 
promotes 
+     *  the component reference has @multiplicity 0..1.by default and MAY have 
an explicit @multiplicity of either 
+     *  0..1 or 1..1. 
+     *  
+     *  If @nonOverridable==true, and the component reference has 
@multiplicity 0..1 or 
+     *  1..1 and the component reference also declares a target, promotion 
implies 
+     *  that the promoting composite reference has @wiredbyImpl==true and the 
composite 
+     *  reference cannot supply a target, but can influence the policy 
attached to the 
+     *  component reference.
+     *  
+     *  If @nonOverridable==true, and the component reference @multiplicity is 
0..n 
+     *  or 1..n, promotion targeting is additive 
+     *  
+     *  @return
+     */
+    boolean isNonOverridable();
+    
+    /**
+     * Set the nonOverridable flag
+     * @param nonOverridable
+     */
+    void setNonOverridable(boolean nonOverridable);
+    
+    /**
      * Returns the endpoints implied by this reference.
      * 
      * @return the endpoints implied by this reference

Modified: 
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ComponentReferenceImpl.java
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ComponentReferenceImpl.java?rev=750272&r1=750271&r2=750272&view=diff
==============================================================================
--- 
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ComponentReferenceImpl.java
 (original)
+++ 
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ComponentReferenceImpl.java
 Thu Mar  5 01:19:16 2009
@@ -38,6 +38,7 @@
 public class ComponentReferenceImpl extends ReferenceImpl implements 
ComponentReference, Cloneable {
     private Reference reference;
     private Boolean autowire;
+    private boolean nonOverridable;
     private List<CompositeReference> promotedAs = new 
ArrayList<CompositeReference>();
     private ComponentService callbackService;
     private List<Endpoint> endpoints = new ArrayList<Endpoint>();
@@ -109,5 +110,13 @@
             interfaceContract = getInterfaceContract();
         }
         return interfaceContract;
+    }
+
+    public boolean isNonOverridable() {
+        return nonOverridable;
+    }
+
+    public void setNonOverridable(boolean nonOverridable) {
+        this.nonOverridable = nonOverridable;
     } 
 }


Reply via email to