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