code: private StringBuffer determineMethodsAllowed(String path) {
  
          StringBuffer methodsAllowed = new StringBuffer();
          boolean exists = true;
          I_CmsRepositoryItem item = null;
          try {
              item = m_session.getItem(path);
          } catch (CmsException e) {
              exists = false;
          }
  
          if (!exists) {
  
              methodsAllowed.append(METHOD_OPTIONS);
              methodsAllowed.append(", ").append(METHOD_PUT);
              methodsAllowed.append(", ").append(METHOD_MKCOL);
              methodsAllowed.append(", ").append(METHOD_LOCK);
              return methodsAllowed;
          }
  
          // add standard http methods
          methodsAllowed.append(METHOD_OPTIONS);
          methodsAllowed.append(", ").append(METHOD_GET);
          methodsAllowed.append(", ").append(METHOD_HEAD);
          methodsAllowed.append(", ").append(METHOD_POST);
          methodsAllowed.append(", ").append(METHOD_DELETE);
          methodsAllowed.append(", ").append(METHOD_TRACE);
  
          // add special WebDAV methods
          methodsAllowed.append(", ").append(METHOD_LOCK);
          methodsAllowed.append(", ").append(METHOD_UNLOCK);
          methodsAllowed.append(", ").append(METHOD_MOVE);
          methodsAllowed.append(", ").append(METHOD_COPY);
          methodsAllowed.append(", ").append(METHOD_PROPPATCH);
  
          if (m_listings) {
              methodsAllowed.append(", ").append(METHOD_PROPFIND);
          }
  
          if (item != null) {
              if (!item.isCollection()) {
                  methodsAllowed.append(", ").append(METHOD_PUT);
              }
          }
          return methodsAllowed;
      }
docs: Determines the methods normally allowed for the resource.<p>
  
  @param path the path to the resource
  
  @return a StringBuffer with the WebDAV methods allowed for the resource at the given path