1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.vfs2.provider.webdav4;
18
19 import java.util.Objects;
20
21 import org.apache.commons.vfs2.FileContent;
22 import org.apache.commons.vfs2.FileContentInfo;
23 import org.apache.commons.vfs2.FileContentInfoFactory;
24 import org.apache.commons.vfs2.FileSystemException;
25 import org.apache.commons.vfs2.impl.DefaultFileContentInfo;
26 import org.apache.commons.vfs2.provider.GenericURLFileName;
27 import org.apache.commons.vfs2.util.FileObjectUtils;
28 import org.apache.jackrabbit.webdav.property.DavProperty;
29 import org.apache.jackrabbit.webdav.property.DavPropertyName;
30 import org.apache.jackrabbit.webdav.property.DavPropertyNameSet;
31 import org.apache.jackrabbit.webdav.property.DavPropertySet;
32
33
34
35
36
37
38 public class Webdav4FileContentInfoFactory implements FileContentInfoFactory {
39
40
41
42
43 public Webdav4FileContentInfoFactory() {
44
45 }
46
47 @Override
48 public FileContentInfo create(final FileContent fileContent) throws FileSystemException {
49 final Webdav4FileObject file = (Webdav4FileObject) FileObjectUtils.getAbstractFileObject(fileContent.getFile());
50
51 String contentType = null;
52 String contentEncoding = null;
53
54 final DavPropertyNameSet nameSet = new DavPropertyNameSet();
55 nameSet.add(DavPropertyName.GETCONTENTTYPE);
56 final DavPropertySet propertySet = file.getProperties((GenericURLFileName) file.getName(), nameSet, true);
57
58 DavProperty<?> property = propertySet.get(DavPropertyName.GETCONTENTTYPE);
59 if (property != null) {
60 contentType = Objects.toString(property.getValue(), null);
61 }
62 property = propertySet.get(Webdav4FileObject.RESPONSE_CHARSET);
63 if (property != null) {
64 contentEncoding = Objects.toString(property.getValue(), null);
65 }
66
67 return new DefaultFileContentInfo(contentType, contentEncoding);
68 }
69 }