package com.ibm.ram.extension.demo.policy; import java.util.Collection; import java.util.HashMap; import java.util.Map; import com.ibm.ram.extension.PolicyGovernor; import com.ibm.ram.policy.AssetPolicy; import com.ibm.ram.policy.Policy;
Para correlacionar un administrador con Rational Asset Manager, consulte Definir administradores de políticas externas
public class MyGovernor extends PolicyGovernor {
El código siguiente devuelve una lista de todas las políticas de activos disponibles en el administrador de políticas:
public AssetPolicy[] getAssetPolicies() {
Collection policiesCollection = getPolicies().values();
AssetPolicy[] policies = (AssetPolicy[])policiesCollection.toArray(new
AssetPolicy[policiesCollection.size()]);
return policies;
}
El método siguiente devuelve el nombre de visualización del administrador de políticas:
public String getDescription() {
return "A sample governor with a few policies.";
}
El método siguiente devuelve una única política, utilizando el ID de política:
public Policy getPolicy(String id) {
return (Policy)getPolicies().get(id);
}
El método siguiente devuelve el almacén de políticas privadas. El valor de retorno es una lista de todas las políticas disponibles que están definidas en el administrador. Las políticas se almacenan en un mapa; puede recuperar las políticas utilizando el método getPolicies().get(id).
private Map getPolicies(){
if(policies == null){
initPolicies();
}
return policies;
}
El administrador consta de las políticas siguientes:
//Policy = Set up policy store
private synchronized void initPolicies(){
policies = new HashMap();
//Policy = My XML Policy
Policy policy = new MyPolicy(this);
policies.put(policy.getID(), policy);
//Policy = Odd MinutePolicy
policy = new OddMinutePolicy(this);
policies.put(policy.getID(), policy);
//Policy = Asset Level Messages Policy
policy = new AssetMessagesPolicy(this);
policies.put(policy.getID(), policy);
//Policy = Artifact Level Messages Policy
policy = new ArtifactMessagesPolicy(this);
policies.put(policy.getID(), policy);
//Política WS-I WSDL
policy = new WSIPolicy(this);
policies.put(policy.getID(), policy);
}