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;
Informationen zum Zuordnen eines Governors zu Rational Asset Manager finden Sie in Externe Richtlinien-Governor definieren.
public class MyGovernor extends PolicyGovernor {
Mit dem folgenden Code wird eine Liste aller Assetrichtlinien zurückgegeben, die in dem Richtliniengovernor verfügbar sind:
public AssetPolicy[] getAssetPolicies() {
Collection policiesCollection = getPolicies().values();
AssetPolicy[] policies = (AssetPolicy[])policiesCollection.toArray(new
AssetPolicy[policiesCollection.size()]);
return policies;
}
Mit der folgenden Methode wird der Anzeigename für den Richtliniengovernor zurückgegeben:
public String getDescription() {
return "A sample governor with a few policies.";
}
Mit der folgenden Methode wird eine einzelne Richtlinie unter Verwendung der Richtlinien-ID zurückgegeben:
public Policy getPolicy(String id) {
return (Policy)getPolicies().get(id);
}
Mit der folgenden Methode wird der private Richtlinienspeicher zurückgegeben. Dieser Rückgabewert ist ein Array, das alle im Governor definierten verfügbaren Richtlinien auflistet. Die Richtlinien sind in einer Zuordnung (Map) gespeichert; Sie können Richtlinien mithilfe der Methode getPolicies().get(id) abrufen.
private Map getPolicies(){
if(policies == null){
initPolicies();
}
return policies;
}
Der Governor besteht aus den folgenden Richtlinien:
//Richtlinie = Richtlinienspeicher konfigurieren
private synchronized void initPolicies(){
policies = new HashMap();
//Richtlinie = Meine XML-Richtlinie
Policy policy = new MyPolicy(this);
policies.put(policy.getID(), policy);
//Richtlinie = Richtlinie für ungerade Minutenzahl
policy = new OddMinutePolicy(this);
policies.put(policy.getID(), policy);
//Richtlinie = Richtlinie für Nachrichten auf Assetebene
policy = new AssetMessagesPolicy(this);
policies.put(policy.getID(), policy);
//Richtlinie = Richtlinie für Nachrichten auf Artefaktebene
policy = new ArtifactMessagesPolicy(this);
policies.put(policy.getID(), policy);
//WS-I WSDL-Richtlinie
policy = new WSIPolicy(this);
policies.put(policy.getID(), policy);
}