code: private void parseComponents(final String path) {
          String[] tokens = path.split("/");
  
          if (tokens.length > MAX_NESTING_LEVEL) {
              throw new IllegalArgumentException("Provided path contains too many levels of nesting!");
          }
  
          //replace ~1 and ~0
          for (int i=0; i < tokens.length; i++) {
              tokens[i] = tokens[i].replace("~1","/").replace("~0","~");
          }
  
          this.refTokens.addAll(Arrays.asList(tokens));
      }
docs: Helper method to split up the path into individual components (tokens).
  
  @param path the path split up into tokens subsequently.