private String getFullMORPath()

in cloud-vmware-server/src/main/java/jetbrains/buildServer/clouds/vmware/connector/VMWareApiConnectorImpl.java [664:687]


  private String getFullMORPath(@NotNull final ManagedEntity entity, @Nullable final Datacenter dc) {
    final ManagedObjectReference mor = entity.getMOR();
    final Pair<String, String> morPair = Pair.create(mor.getType(), mor.getVal());
    final String existingPath = MANAGED_ENTITIES_NAMES_CACHE.getIfPresent(morPair);
    if (existingPath != null)
      return existingPath;
    final ManagedEntity parent = entity.getParent();
    final String entityName = entity.getName();
    boolean skipName =
      (mor.getType().equals(FOLDER_TYPE) && (entityName.equals(SPEC_FOLDER) || !FOLDER_PATTERN.matcher(morPair.getSecond()).matches() )) ||
      (mor.getType().equals(RESPOOL_TYPE) && entityName.equals(SPEC_RESPOOL));

    if (parent == null){
      final String name = skipName ? "" : entityName;
      MANAGED_ENTITIES_NAMES_CACHE.put(morPair, name);
      return name;
    } else {
      final String fullMORPath = getFullMORPath(parent, dc);
      final String delimiter = fullMORPath.isEmpty() ? "" : "/";
      final String name = skipName ? fullMORPath : fullMORPath + delimiter + entityName;
      MANAGED_ENTITIES_NAMES_CACHE.put(morPair, name);
      return name;
    }
  }