code: protected File fileFor( String id ) {
          assert id.startsWith(DELIMITER);
          if (id.endsWith(DELIMITER)) {
              id = id.substring(0, id.length() - DELIMITER.length());
          }
          if (isContentNode(id)) {
              id = id.substring(0, id.length() - JCR_CONTENT_SUFFIX_LENGTH);
          }
          return new File(directory, id);
      }
docs: Utility method for obtaining the {@link File} object that corresponds to the supplied identifier. Subclasses may override
  this method to change the format of the identifiers, but in that case should also override the {@link #isRoot(String)},
  {@link #isContentNode(String)}, and {@link #idFor(File)} methods.
  
  @param id the identifier; may not be null
  @return the File object for the given identifier
  @see #isRoot(String)
  @see #isContentNode(String)
  @see #idFor(File)