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=ab320655e2c95ebcdada3a8dba65a9f8759dfa8d;hb=refs%2Fchanges%2F65%2F2665%2F3;hp=e50a98ce517b051efdd70498fc802a878279d964;hpb=1b8d76de3262675c5afe45351929b0d5d2c0bab1;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 e50a98ce..ab320655 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,8 +20,10 @@ package org.oransc.policyagent.repository; +import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.Vector; @@ -35,7 +37,9 @@ import org.oransc.policyagent.configuration.RicConfig; * Represents the dynamic information about a NearRealtime-RIC. */ public class Ric { + private final RicConfig ricConfig; + private final List managedElementIds; private RicState state = RicState.UNDEFINED; private Map supportedPolicyTypes = new HashMap<>(); @@ -43,13 +47,18 @@ public class Ric { @Setter private A1ProtocolType protocolVersion = A1ProtocolType.UNKNOWN; + @Getter + private final Lock lock = new Lock(); + /** - * Creates the Ric. Initial state is {@link RicState.NOT_INITIATED}. + * Creates the Ric. Initial state is {@link RicState.UNDEFINED}. * * @param ricConfig The {@link RicConfig} for this Ric. */ public Ric(RicConfig ricConfig) { this.ricConfig = ricConfig; + this.managedElementIds = new ArrayList<>(ricConfig.managedElementIds()); // TODO, this is config why is it + // copied here? } public String name() { @@ -74,7 +83,7 @@ public class Ric { * @return a vector containing the nodes managed by this Ric. */ public synchronized Collection getManagedElementIds() { - return new Vector<>(ricConfig.managedElementIds()); + return managedElementIds; } /** @@ -84,7 +93,7 @@ public class Ric { * @return true if the given node is managed by this Ric. */ public synchronized boolean isManaging(String managedElementId) { - return ricConfig.managedElementIds().contains(managedElementId); + return managedElementIds.contains(managedElementId); } /** @@ -93,8 +102,8 @@ public class Ric { * @param managedElementId the node to add. */ public synchronized void addManagedElement(String managedElementId) { - if (!ricConfig.managedElementIds().contains(managedElementId)) { - ricConfig.managedElementIds().add(managedElementId); + if (!managedElementIds.contains(managedElementId)) { + managedElementIds.add(managedElementId); } } @@ -104,7 +113,7 @@ public class Ric { * @param managedElementId the node to remove. */ public synchronized void removeManagedElement(String managedElementId) { - ricConfig.managedElementIds().remove(managedElementId); + managedElementIds.remove(managedElementId); } /** @@ -150,15 +159,15 @@ public class Ric { @Override public synchronized String toString() { return Ric.class.getSimpleName() + ": " + "name: " + name() + ", state: " + state + ", baseUrl: " - + ricConfig.baseUrl() + ", managedNodes: " + ricConfig.managedElementIds(); + + ricConfig.baseUrl() + ", managedNodes: " + managedElementIds; } /** * Represents the states possible for a Ric. */ - public static enum RicState { + public enum RicState { /** - * The agent view of the agent may be inconsistent. + * The agent view of the Ric may be inconsistent. */ UNDEFINED, /** @@ -166,8 +175,8 @@ public class Ric { */ IDLE, /** - * The Ric states are recovered. + * The agent is synchronizing the view of the Ric. */ - RECOVERING + SYNCHRONIZING } }