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;
Pour mapper un gouverneur vers Rational Asset Manager, voir Définir des gouverneurs de stratégies externes.
public
class MyGovernor extends PolicyGovernor {
Le code suivant renvoie la liste de toutes les stratégies d'actifs disponibles dans le gouverneur de stratégies :
public AssetPolicy[] getAssetPolicies() {
Collection policiesCollection = getPolicies().values();
AssetPolicy[] policies = (AssetPolicy[])policiesCollection.toArray(new
AssetPolicy[policiesCollection.size()]);
return policies;
}
La méthode suivante renvoie le nom affiché pour le gouverneur de stratégies :
public String getDescription() {
return "Exemple de gouverneur avec quelques stratégies.";
}
La méthode suivante renvoie une stratégie particulière d'après l'ID qui lui est fourni en argument :
public Policy getPolicy(String id) {
return (Policy)getPolicies().get(id);
}
La méthode suivante renvoie le conteneur de stratégies privé. Cette valeur renvoyée est un tableau qui répertorie toutes les stratégies disponibles définies dans le régulateur. Les stratégies sont stockées dans une mappe pour que vous puissiez récupérer des stratégies grâce à la méthode getPolicies().get(id).
private Map getPolicies(){
if(policies == null){
initPolicies();
}
return policies;
}
Le gouverneur est constitué des stratégies suivantes :
//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);
}