X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=policy-agent%2Fsrc%2Fmain%2Fjava%2Forg%2Foransc%2Fpolicyagent%2Frepository%2FRic.java;h=18a2dc7e2830ce140fd5309f7bd4d1d61fcd8c02;hb=35e7ea7bb7a6e2890542f3535aa09b11b2f079a1;hp=ffe493d275b9d78e0515e6f1912157ba1b8518df;hpb=ce1713127bd5445b3890efddf4609cb8b8d58054;p=nonrtric.git diff --git a/policy-agent/src/main/java/org/oransc/policyagent/repository/Ric.java b/policy-agent/src/main/java/org/oransc/policyagent/repository/Ric.java index ffe493d2..18a2dc7e 100644 --- a/policy-agent/src/main/java/org/oransc/policyagent/repository/Ric.java +++ b/policy-agent/src/main/java/org/oransc/policyagent/repository/Ric.java @@ -20,7 +20,11 @@ package org.oransc.policyagent.repository; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; import java.util.Vector; + import org.oransc.policyagent.configuration.RicConfig; /** @@ -29,6 +33,7 @@ import org.oransc.policyagent.configuration.RicConfig; public class Ric { private final RicConfig ricConfig; private RicState state = RicState.NOT_INITIATED; + private Map supportedPolicyTypes = new HashMap<>(); /** * Creates the Ric. Initial state is {@link RicState.NOT_INITIATED}. @@ -51,6 +56,10 @@ public class Ric { state = newState; } + public RicConfig getConfig() { + return this.ricConfig; + } + /** * Gets the nodes managed by this Ric. * @@ -90,6 +99,59 @@ public class Ric { ricConfig.managedElementIds().remove(nodeName); } + /** + * Gets the policy types supported by this Ric. + * + * @return the policy types supported by this Ric in an unmodifiable list. + */ + public Collection getSupportedPolicyTypes() { + return supportedPolicyTypes.values(); + } + + public Collection getSupportedPolicyTypeNames() { + return supportedPolicyTypes.keySet(); + } + + /** + * Adds a policy type as supported by this Ric. + * + * @param type the policy type to support. + */ + public void addSupportedPolicyType(PolicyType type) { + supportedPolicyTypes.put(type.name(), type); + } + + /** + * Adds policy types as supported by this Ric. + * + * @param types the policy types to support. + */ + public void addSupportedPolicyTypes(Collection types) { + for (PolicyType type : types) { + addSupportedPolicyType(type); + } + } + + /** + * Removes a policy type as supported by this Ric. + * + * @param type the policy type to remove as supported by this Ric. + */ + public void removeSupportedPolicyType(PolicyType type) { + supportedPolicyTypes.remove(type.name()); + } + + /** + * Checks if a type is supported by this Ric. + * + * @param typeName the name of the type to check if it is supported. + * + * @return true if the given type is supported by this Ric, false otherwise. + */ + public boolean isSupportingType(String typeName) { + return supportedPolicyTypes.containsKey(typeName); + } + /** * Represents the states possible for a Ric. */ @@ -101,14 +163,6 @@ public class Ric { /** * The Ric is working fine. */ - ACTIVE, - /** - * Something is wrong with the Ric. - */ - FAULTY, - /** - * The node is unreachable at the moment. - */ - UNREACHABLE + ACTIVE } }