Author: sanka
Date: Sun Dec 11 05:36:31 2005
New Revision: 355960
URL: http://svn.apache.org/viewcvs?rev=355960&view=rev
Log:
Fixed: wsp:Optional attribute does not get resolved when normalize(..) is called
Modified:
webservices/commons/trunk/policy/src/org/apache/ws/policy/model/AndCompositeAssertion.java
webservices/commons/trunk/policy/src/org/apache/ws/policy/model/Policy.java
webservices/commons/trunk/policy/src/org/apache/ws/policy/model/XorCompositeAssertion.java
Modified:
webservices/commons/trunk/policy/src/org/apache/ws/policy/model/AndCompositeAssertion.java
URL:
http://svn.apache.org/viewcvs/webservices/commons/trunk/policy/src/org/apache/ws/policy/model/AndCompositeAssertion.java?rev=355960&r1=355959&r2=355960&view=diff
==============================================================================
---
webservices/commons/trunk/policy/src/org/apache/ws/policy/model/AndCompositeAssertion.java
(original)
+++
webservices/commons/trunk/policy/src/org/apache/ws/policy/model/AndCompositeAssertion.java
Sun Dec 11 05:36:31 2005
@@ -266,13 +266,13 @@
return anXorTerm;
}
xorTerms.add(term);
- break;
+ continue;
}
if (term instanceof AndCompositeAssertion) {
AND.addTerms(((AndCompositeAssertion) term).getTerms());
- break;
+ continue;
}
AND.addTerm(term);
@@ -322,11 +322,17 @@
CompositeAssertion XORterm = (CompositeAssertion) xorTerms.get(0);
XOR.addTerms(XORterm.getTerms());
}
+
+ if (XOR.isEmpty()) {
+ AND.setNormalized(true);
+ return AND;
+ }
if (AND.isEmpty()) {
XOR.setNormalized(true);
return XOR;
}
+
List primTerms = AND.getTerms();
Iterator interator = XOR.getTerms().iterator();
Modified:
webservices/commons/trunk/policy/src/org/apache/ws/policy/model/Policy.java
URL:
http://svn.apache.org/viewcvs/webservices/commons/trunk/policy/src/org/apache/ws/policy/model/Policy.java?rev=355960&r1=355959&r2=355960&view=diff
==============================================================================
--- webservices/commons/trunk/policy/src/org/apache/ws/policy/model/Policy.java
(original)
+++ webservices/commons/trunk/policy/src/org/apache/ws/policy/model/Policy.java
Sun Dec 11 05:36:31 2005
@@ -93,16 +93,18 @@
ArrayList childXorTermList = new ArrayList();
Iterator terms = getTerms().iterator();
+ Assertion term;
while (terms.hasNext()) {
- Assertion term = (Assertion) terms.next();
- term = (term instanceof Policy) ? term.normalize(reg) : term;
+
+ term = (Assertion) terms.next();
+ term = (term instanceof Policy) ? term : term.normalize(reg);
if (term instanceof Policy) {
Assertion wrapper = new AndCompositeAssertion();
((AndCompositeAssertion) wrapper).addTerms(((Policy)
term).getTerms());
term = wrapper.normalize(reg);
- break;
+ continue;
}
if (term instanceof XorCompositeAssertion) {
if (((XorCompositeAssertion) term).isEmpty()) {
@@ -116,7 +118,7 @@
}
childXorTermList.add(term);
- break;
+ continue;
}
if (term instanceof AndCompositeAssertion) {
@@ -128,7 +130,7 @@
} else {
AND.addTerms(((AndCompositeAssertion) term).getTerms());
}
- break;
+ continue;
}
AND.addTerm((Assertion) term);
}
Modified:
webservices/commons/trunk/policy/src/org/apache/ws/policy/model/XorCompositeAssertion.java
URL:
http://svn.apache.org/viewcvs/webservices/commons/trunk/policy/src/org/apache/ws/policy/model/XorCompositeAssertion.java?rev=355960&r1=355959&r2=355960&view=diff
==============================================================================
---
webservices/commons/trunk/policy/src/org/apache/ws/policy/model/XorCompositeAssertion.java
(original)
+++
webservices/commons/trunk/policy/src/org/apache/ws/policy/model/XorCompositeAssertion.java
Sun Dec 11 05:36:31 2005
@@ -73,19 +73,19 @@
} else {
XOR.addTerms(((XorCompositeAssertion) wrapper).getTerms());
}
- break;
+ continue;
}
if (term instanceof PrimitiveAssertion) {
AndCompositeAssertion wrapper = new AndCompositeAssertion();
wrapper.addTerm(term);
XOR.addTerm(wrapper);
- break;
+ continue;
}
if (term instanceof XorCompositeAssertion) {
XOR.addTerms(((XorCompositeAssertion) term).getTerms());
- break;
+ continue;
}
if (term instanceof AndCompositeAssertion) {