Class HierarchicalInstanceEnvironment

Direct Known Subclasses:
InstanceEnvironment

public abstract class HierarchicalInstanceEnvironment extends HierarchicalEnvironment
Author:
Luca Frosini (ISTI - CNR) Abstract base for all HierarchicalEnvironment subclasses that store Resource and Facet instances. Provides a dedicated branch in the environment hierarchy so that instance environments are clearly separated from context-partition environments (HierarchicalContextEnvironment) at the type level, preventing accidental mixing of the two chains.
  • Constructor Details

    • HierarchicalInstanceEnvironment

      public HierarchicalInstanceEnvironment(UUID uuid) throws org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
      Creates a new HierarchicalInstanceEnvironment instance for the specified Context UUID.
      Parameters:
      uuid - the Context UUID
      Throws:
      org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException - if the environment cannot be initialized
  • Method Details

    • createRolesAndUsers

      protected void createRolesAndUsers(com.orientechnologies.orient.core.metadata.security.OSecurity oSecurity)
      The HierarchicalEnvironment.HA (active-only hierarchical reader) permission channel only makes sense for this branch of the environment hierarchy - per-Context instance data, whose visibility must track the Context's effectiveState - not for the Context-partition branch (HierarchicalContextEnvironment) sharing the same HierarchicalEnvironment base class, which has no such notion. So it is layered on top by overriding the relevant lifecycle methods here, rather than adding HA-awareness to the shared base class itself.
      Overrides:
      createRolesAndUsers in class HierarchicalEnvironment
      Parameters:
      oSecurity - the OrientDB security manager
    • deleteRolesAndUsers

      protected void deleteRolesAndUsers(com.orientechnologies.orient.core.metadata.security.OSecurity oSecurity)
      Description copied from class: HierarchicalEnvironment
      Deletes both the non-hierarchical and the HierarchicalEnvironment.H hierarchical roles/users for this environment, overriding Environment.deleteRolesAndUsers(OSecurity). Before dropping the hierarchical roles/users themselves, first revokes this environment's own children's hierarchical roles from every ancestor's hierarchical user, via HierarchicalEnvironment.removeChildrenHRolesFromParents(OSecurity). Does not touch the HierarchicalEnvironment.HA active-only reader role/user.
      Overrides:
      deleteRolesAndUsers in class HierarchicalEnvironment
      Parameters:
      oSecurity - the OrientDB security manager
    • addElement

      public void addElement(com.orientechnologies.orient.core.record.OElement element, com.orientechnologies.orient.core.db.document.ODatabaseDocument oDatabaseDocument)
      Description copied from class: Environment
      Adds an element to this environment within the specified database transaction.
      Overrides:
      addElement in class HierarchicalEnvironment
      Parameters:
      element - the element to add
      oDatabaseDocument - the database connection
    • removeElement

      public void removeElement(com.orientechnologies.orient.core.record.OElement element, com.orientechnologies.orient.core.db.document.ODatabaseDocument oDatabaseDocument)
      Description copied from class: Environment
      Removes an element from this environment within the specified database transaction.
      Overrides:
      removeElement in class HierarchicalEnvironment
      Parameters:
      element - the element to remove
      oDatabaseDocument - the database connection