X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;ds=inline;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Fdav%2FDavDepth.java;fp=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Fdav%2FDavDepth.java;h=3d235fdb4b8e91ae2b47ad8cf84e77fafc973f36;hb=b8f50d6d8e7b9c9215d156ba33f9dedfcee913a7;hp=0000000000000000000000000000000000000000;hpb=b897c27d370ad4772b5ae4b2c22cc505ef5d1a3f;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/dav/DavDepth.java b/org.argeo.cms/src/org/argeo/cms/dav/DavDepth.java new file mode 100644 index 000000000..3d235fdb4 --- /dev/null +++ b/org.argeo.cms/src/org/argeo/cms/dav/DavDepth.java @@ -0,0 +1,35 @@ +package org.argeo.cms.dav; + +import com.sun.net.httpserver.HttpExchange; + +public enum DavDepth { + DEPTH_0("0"), DEPTH_1("1"), DEPTH_INFINITY("infinity"); + + private final String value; + + private DavDepth(String value) { + this.value = value; + } + + @Override + public String toString() { + return getValue(); + } + + public String getValue() { + return value; + } + + public static DavDepth fromHttpExchange(HttpExchange httpExchange) { + String value = httpExchange.getRequestHeaders().getFirst(DavHeader.DEPTH.getHeaderName()); + if (value == null) + return null; + DavDepth depth = switch (value) { + case "0" -> DEPTH_0; + case "1" -> DEPTH_1; + case "infinity" -> DEPTH_INFINITY; + default -> throw new IllegalArgumentException("Unexpected value: " + value); + }; + return depth; + } +}