You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by sa...@apache.org on 2006/02/07 04:11:08 UTC
svn commit: r375452 -
/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/PolicyInclude.java
Author: sanka
Date: Mon Feb 6 19:11:06 2006
New Revision: 375452
URL: http://svn.apache.org/viewcvs?rev=375452&view=rev
Log:
Modified PolicyInclude class to assign a unique URI as the Id of a policy if it doesn't have an id. Added methods to remove or update a policy element because we may need to modify policies at runtime
Modified:
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/PolicyInclude.java
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/PolicyInclude.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/PolicyInclude.java?rev=375452&r1=375451&r2=375452&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/PolicyInclude.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/PolicyInclude.java Mon Feb 6 19:11:06 2006
@@ -17,8 +17,10 @@
package org.apache.axis2.description;
import java.util.ArrayList;
+import java.util.Hashtable;
import java.util.Iterator;
+import org.apache.ws.commons.om.util.UUIDGenerator;
import org.apache.ws.policy.Policy;
import org.apache.ws.policy.PolicyReference;
import org.apache.ws.policy.util.PolicyRegistry;
@@ -67,11 +69,13 @@
private AxisDescription description;
- private ArrayList wrapperElements = new ArrayList();
+ // private ArrayList wrapperElements = new ArrayList();
private boolean useCacheP = false;
private boolean useCacheE = false;
+
+ private Hashtable wrapperElements = new Hashtable();
public PolicyInclude() {
reg = new PolicyRegistry();
@@ -97,9 +101,29 @@
}
public void setPolicy(Policy policy) {
- wrapperElements = new ArrayList();
+ wrapperElements.clear();
+
+ if (policy.getPolicyURI() != null && policy.getPolicyURI().equals("")) {
+ policy.setId(UUIDGenerator.getUUID());
+ }
+
Wrapper wrapper = new Wrapper(PolicyInclude.ANON_POLICY, policy);
- wrapperElements.add(wrapper);
+ wrapperElements.put(policy.getPolicyURI(), wrapper);
+
+ useCacheP = false;
+ }
+
+ public void updatePolicy(Policy policy) {
+ String policyURI = policy.getPolicyURI();
+
+ if (policyURI == null && policyURI.equals("")) {
+ throw new RuntimeException("Policy Id is either null or empty");
+ }
+
+ Wrapper wrapper = (Wrapper) wrapperElements.get(policyURI);
+ wrapper.value = policy;
+
+ useCacheP = false;
}
public void setEffectivePolicy(Policy effectivePolicy) {
@@ -125,7 +149,7 @@
private void calculatePolicy() {
Policy result = null;
- Iterator iterator = wrapperElements.iterator();
+ Iterator iterator = wrapperElements.values().iterator();
while (iterator.hasNext()) {
Object policyElement = ((Wrapper) iterator.next()).getValue();
@@ -196,7 +220,7 @@
public ArrayList getPolicyElements() {
ArrayList policyElementsList = new ArrayList();
- Iterator policyElementIterator = wrapperElements.iterator();
+ Iterator policyElementIterator = wrapperElements.values().iterator();
while (policyElementIterator.hasNext()) {
policyElementsList
@@ -207,7 +231,7 @@
public ArrayList getPolicyElements(int type) {
ArrayList policyElementList = new ArrayList();
- Iterator wrapperElementIterator = wrapperElements.iterator();
+ Iterator wrapperElementIterator = wrapperElements.values().iterator();
Wrapper wrapper;
while (wrapperElementIterator.hasNext()) {
@@ -229,8 +253,12 @@
}
public void addPolicyElement(int type, Policy policy) {
+ String u = policy.getPolicyURI();
+ if (policy.getPolicyURI() == null || policy.getPolicyURI().equals("")) {
+ policy.setId(UUIDGenerator.getUUID());
+ }
Wrapper wrapper = new Wrapper(type, policy);
- wrapperElements.add(wrapper);
+ wrapperElements.put(policy.getPolicyURI(), wrapper);
if (policy.getPolicyURI() != null) {
reg.register(policy.getPolicyURI(), policy);
@@ -239,7 +267,7 @@
public void addPolicyRefElement(int type, PolicyReference policyReference) {
Wrapper wrapper = new Wrapper(type, policyReference);
- wrapperElements.add(wrapper);
+ wrapperElements.put(policyReference.getPolicyURIString(), wrapper);
}
public void invalidate() {
@@ -296,5 +324,9 @@
Object getValue() {
return value;
}
+ }
+
+ public void removePolicyElement(String policyURI) {
+ wrapperElements.remove(policyURI);
}
}