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;
조정자를 Rational Asset Manager에 맵핑하려면 외부 정책 조정자 정의를 참조하십시오.
public class MyGovernor extends PolicyGovernor {
다음 코드는 정책 조정자에서 사용 가능한 모든 자산 정책의 목록을 리턴합니다.
public AssetPolicy[] getAssetPolicies() {
Collection policiesCollection = getPolicies().values();
AssetPolicy[] policies = (AssetPolicy[])policiesCollection.toArray(new
AssetPolicy[policiesCollection.size()]);
return policies;
}
다음 메소드는 정책 조정자의 표시 이름을 리턴합니다.
public String getDescription() {
return "A sample governor with a few policies.";
}
다음 메소드는 해당 정책 ID를 사용하는 단일 정책을 리턴합니다.
public Policy getPolicy(String id) {
return (Policy)getPolicies().get(id);
}
다음 메소드는 개인용 정책 스토어를 리턴합니다. 이 리턴값은 조정자에 정의된 모든 사용 가능한 정책을 나열하는 배열입니다. 정책은 맵에 저장됩니다. getPolicies().get(id) 메소드를 사용하여 정책을 검색할 수 있습니다.
private Map getPolicies(){
if(policies == null){
initPolicies();
}
return policies;
}
관리자는 다음 정책으로 구성됩니다.
//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);
}