code: @Override
      public boolean substituteVM(VM curId, VM nextId) {
          if (VM.TYPE.equals(elemId)) {
              if (rev.containsKey(nextId)) {
                  //the new id already exists. It is a failure scenario.
                  return false;
              }
  
              String fqn = rev.remove(curId);
              if (fqn != null) {
                  //new resolution, with the substitution of the old one.
                  rev.put((E) nextId, fqn);
                  resolve.put(fqn, (E) nextId);
              }
          }
          return true;
      }
docs: Re-associate the name of a registered VM to a new VM.
  
  @param curId  the current VM identifier
  @param nextId the new VM identifier
  @return {@code true} if the re-association succeeded or if there is no VM {@code curId} registered.
  {@code false} if {@code nextId} is already associated to a name