1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
package org.jboss.ws.extensions.policy.metadata;
import java.util.Collection;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.Map;
import org.apache.ws.policy.Policy;
import org.jboss.ws.extensions.policy.PolicyScopeLevel;
import org.jboss.ws.metadata.umdm.MetaDataExtension;
public class PolicyMetaExtension extends MetaDataExtension
{
//Policies may be attached to a policy subject with different policy scopes
private Map<PolicyScopeLevel,Collection<Policy>> policies = new HashMap<PolicyScopeLevel,Collection<Policy>>();
public PolicyMetaExtension(String extensionNameSpace)
{
super(extensionNameSpace);
}
public void addPolicy(PolicyScopeLevel scope, Policy policy)
{
Collection<Policy> list;
if (!policies.containsKey(scope))
{
list = new LinkedList<Policy>();
policies.put(scope,list);
}
else
{
list = policies.get(scope);
}
list.add(policy);
}
public Collection<Policy> getPolicies(PolicyScopeLevel scope)
{
Collection<Policy> policyCollection = policies.get(scope);
return policyCollection == null ? new LinkedList<Policy>() : policyCollection;
}
public Collection<Policy> getAllPolicies()
{
Collection<Policy> list = new LinkedList<Policy>();
for (PolicyScopeLevel scope : policies.keySet())
{
list.addAll(policies.get(scope));
}
return list;
}
}
|