docs: @Override
      public Set<IEntityGroup> getParentGroups() throws GroupsException {
  
          final EntityIdentifier cacheKey = getUnderlyingEntityIdentifier();
          Element element = parentGroupsCache.get(cacheKey);
  
          if (element == null) {
              final Set<IEntityGroup> groups = buildParentGroupsSet();
              element = new Element(cacheKey, groups);
              parentGroupsCache.put(element);
          }
  
          @SuppressWarnings("unchecked")
          final Set<IEntityGroup> rslt = (Set<IEntityGroup>) element.getObjectValue();
          return rslt;
      }