]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.cms/src/org/argeo/cms/dav/DavDepth.java
FS utils throws IOException
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / dav / DavDepth.java
1 package org.argeo.cms.dav;
2
3 import org.argeo.cms.http.HttpHeader;
4
5 import com.sun.net.httpserver.HttpExchange;
6
7 public enum DavDepth {
8 DEPTH_0("0"), DEPTH_1("1"), DEPTH_INFINITY("infinity");
9
10 private final String value;
11
12 private DavDepth(String value) {
13 this.value = value;
14 }
15
16 @Override
17 public String toString() {
18 return getValue();
19 }
20
21 public String getValue() {
22 return value;
23 }
24
25 public static DavDepth fromHttpExchange(HttpExchange httpExchange) {
26 String value = httpExchange.getRequestHeaders().getFirst(HttpHeader.DEPTH.getHeaderName());
27 if (value == null)
28 return null;
29 DavDepth depth = switch (value) {
30 case "0" -> DEPTH_0;
31 case "1" -> DEPTH_1;
32 case "infinity" -> DEPTH_INFINITY;
33 default -> throw new IllegalArgumentException("Unexpected value: " + value);
34 };
35 return depth;
36 }
37 }