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;
}
}