⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 davmethods.java

📁 jsr170接口的java实现。是个apache的开源项目。
💻 JAVA
字号:
/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.  See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License.  You may obtain a copy of the License at * *      http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package org.apache.jackrabbit.webdav;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.util.HashMap;/** * <code>DavMethods</code> defines constants for the WebDAV METHODS. */public class DavMethods {    private static Logger log = LoggerFactory.getLogger(DavMethods.class);    /**     * A hashmap of webdav METHODS     */    private static HashMap methodMap = new HashMap();    /**     * An array of method codes that are affected by a Label header     * @see org.apache.jackrabbit.webdav.version.DeltaVConstants#HEADER_LABEL     */    private static int[] labelMethods;    /**     * An array of method codes defined by RFC 3253 (deltaV)     */    private static int[] deltaVMethods;    /**     * The webdav OPTIONS method and public constant     */    public static final int DAV_OPTIONS = 1;    public static final String METHOD_OPTIONS = "OPTIONS";    /**     * The webdav GET method and public constant     */    public static final int DAV_GET = DAV_OPTIONS + 1;    public static final String METHOD_GET = "GET";    /**     * The webdav HEAD method and public constant     */    public static final int DAV_HEAD = DAV_GET + 1;    public static final String METHOD_HEAD = "HEAD";    /**     * The webdav POST method and public constant     */    public static final int DAV_POST = DAV_HEAD + 1;    public static final String METHOD_POST = "POST";    /** The webdav DELETE method and public constant */    public static final int DAV_DELETE = DAV_POST + 1;    public static final String METHOD_DELETE = "DELETE";    /** The webdav PUT method and public constant */    public static final int DAV_PUT = DAV_DELETE + 1;    public static final String METHOD_PUT = "PUT";    /**     * The webdav PROPFIND method and public constant as defined by     * <a href="http://www.ietf.org/rfc/rfc2518.txt">RFC 2518</a>.     */    public static final int DAV_PROPFIND = DAV_PUT + 1;    public static final String METHOD_PROPFIND = "PROPFIND";    /**     * The webdav PROPPATCH method and public constant as defined by     * <a href="http://www.ietf.org/rfc/rfc2518.txt">RFC 2518</a>     */    public static final int DAV_PROPPATCH = DAV_PROPFIND + 1;    public static final String METHOD_PROPPATCH = "PROPPATCH";    /**     * The webdav MKCOL (make collection) method and public constant as defined by     * <a href="http://www.ietf.org/rfc/rfc2518.txt">RFC 2518</a>     */    public static final int DAV_MKCOL = DAV_PROPPATCH + 1;    public static final String METHOD_MKCOL = "MKCOL";    /**     * The webdav COPY method and public constant as defined by     * <a href="http://www.ietf.org/rfc/rfc2518.txt">RFC 2518</a>     */    public static final int DAV_COPY = DAV_MKCOL + 1;    public static final String METHOD_COPY = "COPY";    /**     * The webdav MOVE method and public constant as defined by     * <a href="http://www.ietf.org/rfc/rfc2518.txt">RFC 2518</a>     */    public static final int DAV_MOVE = DAV_COPY + 1;    public static final String METHOD_MOVE = "MOVE";    /**     * The webdav LOCK method and public constant as defined by     * <a href="http://www.ietf.org/rfc/rfc2518.txt">RFC 2518</a>     */    public static final int DAV_LOCK = DAV_MOVE + 1;    public static final String METHOD_LOCK = "LOCK";    /**     * The webdav UNLOCK method and public constant as defined by     * <a href="http://www.ietf.org/rfc/rfc2518.txt">RFC 2518</a>     */    public static final int DAV_UNLOCK = DAV_LOCK + 1;    public static final String METHOD_UNLOCK = "UNLOCK";    /**     * The webdav ORDERPATCH method and public constant     * defined by <a href="http://www.ietf.org/rfc/rfc3648.txt">RFC 3648</a>.     */    public static final int DAV_ORDERPATCH = DAV_UNLOCK + 1;    public static final String METHOD_ORDERPATCH = "ORDERPATCH";    /**     * The webdav SUBSCRIBE method and public constant.<br>     * NOTE: This method is not defined by any of the Webdav RFCs     */    public static final int DAV_SUBSCRIBE = DAV_ORDERPATCH + 1;    public static final String METHOD_SUBSCRIBE = "SUBSCRIBE";    /**     * The webdav UNSUBSCRIBE method and public constant<br>     * NOTE: This method is not defined by any of the Webdav RFCs     */    public static final int DAV_UNSUBSCRIBE = DAV_SUBSCRIBE + 1;    public static final String METHOD_UNSUBSCRIBE = "UNSUBSCRIBE";    /**     * The webdav POLL method and public constant<br>     * NOTE: This method is not defined by any of the Webdav RFCs     */    public static final int DAV_POLL = DAV_UNSUBSCRIBE + 1;    public static final String METHOD_POLL = "POLL";    /**     * The webdav SEARCH method and public constant as defined by the     * Webdav Search internet draft.     */    public static final int DAV_SEARCH = DAV_POLL + 1;    public static final String METHOD_SEARCH = "SEARCH";    /**     * The webdav REPORT method and public constant defined by     * <a href="http://www.ietf.org/rfc/rfc3253.txt">RFC 3253</a>     */    public static final int DAV_REPORT = DAV_SEARCH + 1;    public static final String METHOD_REPORT = "REPORT";    /**     * The webdav VERSION-CONTROL method and public constant defined by     * <a href="http://www.ietf.org/rfc/rfc3253.txt">RFC 3253</a>     */    public static final int DAV_VERSION_CONTROL = DAV_REPORT + 1;    public static final String METHOD_VERSION_CONTROL = "VERSION-CONTROL";    /**     * The webdav CHECKIN method and public constant defined by     * <a href="http://www.ietf.org/rfc/rfc3253.txt">RFC 3253</a>     */    public static final int DAV_CHECKIN = DAV_VERSION_CONTROL + 1;    public static final String METHOD_CHECKIN = "CHECKIN";    /**     * The webdav CHECKOUT method and public constant defined by     * <a href="http://www.ietf.org/rfc/rfc3253.txt">RFC 3253</a>     */    public static final int DAV_CHECKOUT = DAV_CHECKIN + 1;    public static final String METHOD_CHECKOUT = "CHECKOUT";    /**     * The webdav UNCHECKOUT method and public constant defined by     * <a href="http://www.ietf.org/rfc/rfc3253.txt">RFC 3253</a>     */    public static final int DAV_UNCHECKOUT = DAV_CHECKOUT + 1;    public static final String METHOD_UNCHECKOUT = "UNCHECKOUT";    /**     * The webdav LABEL method and public constant defined by     * <a href="http://www.ietf.org/rfc/rfc3253.txt">RFC 3253</a>     */    public static final int DAV_LABEL = DAV_UNCHECKOUT + 1;    public static final String METHOD_LABEL = "LABEL";    /**     * The webdav MERGE method and public constant defined by     * <a href="http://www.ietf.org/rfc/rfc3253.txt">RFC 3253</a>     */    public static final int DAV_MERGE = DAV_LABEL + 1;    public static final String METHOD_MERGE = "MERGE";    /**     * The webdav UPDATE method and public constant defined by     * <a href="http://www.ietf.org/rfc/rfc3253.txt">RFC 3253</a>     */    public static final int DAV_UPDATE = DAV_MERGE + 1;    public static final String METHOD_UPDATE = "UPDATE";    /**     * The webdav MKWORKSPACE method and public constant defined by     * <a href="http://www.ietf.org/rfc/rfc3253.txt">RFC 3253</a>     */    public static final int DAV_MKWORKSPACE = DAV_UPDATE + 1;    public static final String METHOD_MKWORKSPACE = "MKWORKSPACE";    /**     * The webdav BASELINE-CONTROL method and public constant defined by     * <a href="http://www.ietf.org/rfc/rfc3253.txt">RFC 3253</a>     */    public static final int DAV_BASELINE_CONTROL = DAV_MKWORKSPACE + 1;    public static final String METHOD_BASELINE_CONTROL = "BASELINE-CONTROL";    /**     * The webdav MKACTIVITY method and public constant defined by     * <a href="http://www.ietf.org/rfc/rfc3253.txt">RFC 3253</a>     */    public static final int DAV_MKACTIVITY = DAV_BASELINE_CONTROL + 1;    public static final String METHOD_MKACTIVITY = "MKACTIVITY";    /**     * The webdav ACL method and public constant defined by     * <a href="http://www.ietf.org/rfc/rfc3744.txt">RFC 3744</a>     */    public static final int DAV_ACL = DAV_MKACTIVITY + 1;    public static final String METHOD_ACL = "ACL";    /**     * Returns webdav method type code, error result <= 0     * Valid type codes > 0     */    public static int getMethodCode(String method) {        Integer code = (Integer) methodMap.get(method.toUpperCase());        if (code != null) {            return code.intValue();        }        return 0;    }    /**     * Static intializer for methodTable hashmap     */    private static void addMethodCode(String method, int code) {        methodMap.put(method, new Integer(code));    }    /**     *  Webdav Method table     */    static {        addMethodCode(METHOD_OPTIONS, DAV_OPTIONS);        addMethodCode(METHOD_GET, DAV_GET);        addMethodCode(METHOD_HEAD, DAV_HEAD);        addMethodCode(METHOD_POST, DAV_POST);        addMethodCode(METHOD_PUT, DAV_PUT);        addMethodCode(METHOD_DELETE, DAV_DELETE);        addMethodCode(METHOD_PROPFIND, DAV_PROPFIND);        addMethodCode(METHOD_PROPPATCH, DAV_PROPPATCH);        addMethodCode(METHOD_MKCOL, DAV_MKCOL);        addMethodCode(METHOD_COPY, DAV_COPY);        addMethodCode(METHOD_MOVE, DAV_MOVE);        addMethodCode(METHOD_LOCK, DAV_LOCK);        addMethodCode(METHOD_UNLOCK, DAV_UNLOCK);        addMethodCode(METHOD_ORDERPATCH, DAV_ORDERPATCH);        addMethodCode(METHOD_SUBSCRIBE, DAV_SUBSCRIBE);        addMethodCode(METHOD_UNSUBSCRIBE, DAV_UNSUBSCRIBE);        addMethodCode(METHOD_POLL, DAV_POLL);        addMethodCode(METHOD_SEARCH, DAV_SEARCH);        addMethodCode(METHOD_REPORT, DAV_REPORT);        addMethodCode(METHOD_VERSION_CONTROL, DAV_VERSION_CONTROL);        addMethodCode(METHOD_CHECKIN, DAV_CHECKIN);        addMethodCode(METHOD_CHECKOUT, DAV_CHECKOUT);        addMethodCode(METHOD_UNCHECKOUT, DAV_UNCHECKOUT);        addMethodCode(METHOD_LABEL, DAV_LABEL);        addMethodCode(METHOD_MERGE, DAV_MERGE);        addMethodCode(METHOD_UPDATE, DAV_UPDATE);        addMethodCode(METHOD_MKWORKSPACE, DAV_MKWORKSPACE);        addMethodCode(METHOD_BASELINE_CONTROL, DAV_BASELINE_CONTROL);        addMethodCode(METHOD_MKACTIVITY, DAV_MKACTIVITY);        addMethodCode(METHOD_ACL, DAV_ACL);        labelMethods = new int[] { DAV_GET, DAV_HEAD, DAV_OPTIONS, DAV_PROPFIND,                                   DAV_LABEL, DAV_COPY };        deltaVMethods = new int[] { DAV_REPORT, DAV_VERSION_CONTROL, DAV_CHECKIN,                                    DAV_CHECKOUT, DAV_UNCHECKOUT, DAV_LABEL,                                    DAV_MERGE, DAV_UPDATE, DAV_MKWORKSPACE,                                    DAV_BASELINE_CONTROL, DAV_MKACTIVITY };    }    /**     * Returns <code>true</code> if the request is to create a resource.     * True for <code>PUT</code>, <code>POST</code>, <code>MKCOL</code>     * and <code>MKWORKSPACE</code> requests.     *     * @return true if request method is to create (or replace) a resource     */    public static boolean isCreateRequest(DavServletRequest request) {        int methodCode = getMethodCode(request.getMethod());        return ( methodCode == DAV_PUT ||                 methodCode == DAV_POST ||                 methodCode == DAV_MKCOL ||                 methodCode == DAV_MKWORKSPACE);    }    /**     * Returns <code>true</code> if the request is to create a collection resource.     * True for <code>MKCOL</code> and <code>MKWORKSPACE</code> requests.     *     * @return true if request method is to create a new collection resource     */    public static boolean isCreateCollectionRequest(DavServletRequest request) {        int methodCode = getMethodCode(request.getMethod());        return (methodCode == DAV_MKCOL || methodCode == DAV_MKWORKSPACE);    }    /**     * Returns true, if the specified method is affected by a Label header     *     * @param request     * @return     */    public static boolean isMethodAffectedByLabel(DavServletRequest request) {        int code = getMethodCode(request.getMethod());        for (int i = 0; i < labelMethods.length; i++) {            if (code == labelMethods[i]) {                return true;            }        }        return false;    }    /**     * Returns true, if the specified method is defined by RFC 3253     *     * @param request     * @return true, if the specified method is defined by RFC 3253     */    public static boolean isDeltaVMethod(DavServletRequest request) {        int code = getMethodCode(request.getMethod());        for (int i = 0; i < deltaVMethods.length; i++) {            if (code == deltaVMethods[i]) {                return true;            }        }        return false;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -