Dashboard using policy agent NBI
[nonrtric.git] / policy-agent / src / main / java / org / oransc / policyagent / repository / Ric.java
index bfd8ef6..3caadae 100644 (file)
 
 package org.oransc.policyagent.repository;
 
+import java.util.Collections;
+import java.util.List;
+import java.util.Vector;
+
 import org.oransc.policyagent.configuration.RicConfig;
 import org.oransc.policyagent.repository.Ric.RicState;
 
@@ -29,6 +33,7 @@ import org.oransc.policyagent.repository.Ric.RicState;
 public class Ric {
     private final RicConfig ricConfig;
     private RicState state = RicState.NOT_INITIATED;
+    private Vector<PolicyType> supportedPolicyTypes = new Vector<>();
 
     /**
      * Creates the Ric. Initial state is {@link RicState.NOT_INITIATED}.
@@ -51,6 +56,15 @@ public class Ric {
         state = newState;
     }
 
+    /**
+     * Gets the nodes managed by this Ric.
+     *
+     * @return a vector containing the nodes managed by this Ric.
+     */
+    public Vector<String> getManagedNodes() {
+        return ricConfig.managedElementIds();
+    }
+
     /**
      * Determines if the given node is managed by this Ric.
      *
@@ -81,6 +95,57 @@ 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 List<PolicyType> getSupportedPolicyTypes() {
+        return Collections.unmodifiableList(supportedPolicyTypes);
+    }
+
+    /**
+     * Adds a policy type as supported by this Ric.
+     *
+     * @param type the policy type to support.
+     */
+    public void addSupportedPolicyType(PolicyType type) {
+        if (!supportedPolicyTypes.contains(type)) {
+            supportedPolicyTypes.add(type);
+        }
+    }
+
+    /**
+     * Adds policy types as supported by this Ric.
+     *
+     * @param types the policy types to support.
+     */
+    public void addSupportedPolicyTypes(Vector<PolicyType> 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);
+    }
+
+    /**
+     * Checks if a type is supported by this Ric.
+     *
+     * @param type the type to check if it is supported.
+     *
+     * @return true if the given type issupported by this Ric, false otherwise.
+     */
+    public boolean isSupportingType(PolicyType type) {
+        return supportedPolicyTypes.contains(type);
+    }
+
     /**
      * Represents the states possible for a Ric.
      */