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 mapear um governor para Rational Asset Manager, consulte Definindo Governors de Política Externos
public class MyGovernor extends PolicyGovernor {
O código a seguir retorna uma lista de todas as políticas de recurso que estão disponíveis no governor de política:
public AssetPolicy[] getAssetPolicies() {
Collection policiesCollection = getPolicies().values();
AssetPolicy[] policies = (AssetPolicy[])policiesCollection.toArray(new
AssetPolicy[policiesCollection.size()]);
return policies;
}
O método a seguir retorna o nome de exibição do governor de política:
public String getDescription() {
return "A sample governor with a few policies.";
}
O método a seguir retorna uma única política usando o ID de política:
public Policy getPolicy(String id) {
return (Policy)getPolicies().get(id);
}
O seguinte método retorna o armazenamento de política privada. Esse valor de retorno é uma matriz que lista todas as políticas disponíveis definidas no governor. As políticas são armazenadas em um mapa; é possível recuperar as políticas usando o método getPolicies().get(id).
private Map getPolicies(){
if(policies == null){
initPolicies();
}
return policies;
}
O controlador consiste nas seguintes políticas:
//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);
//WS-I WSDL Policy
policy = new WSIPolicy(this);
policies.put(policy.getID(), policy);
}