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 @Override
39 public FileContentInfo create(final FileContent fileContent) throws FileSystemException {
40 final WebdavFileObject/../../../org/apache/commons/vfs2/provider/webdav/WebdavFileObject.html#WebdavFileObject">WebdavFileObject file = (WebdavFileObject) FileObjectUtils.getAbstractFileObject(fileContent.getFile());
41
42 String contentType = null;
43 String contentEncoding = null;
44
45 final DavPropertyNameSet nameSet = new DavPropertyNameSet();
46 nameSet.add(DavPropertyName.GETCONTENTTYPE);
47 final DavPropertySet propertySet = file.getProperties((URLFileName) file.getName(), nameSet, true);
48
49 DavProperty property = propertySet.get(DavPropertyName.GETCONTENTTYPE);
50 if (property != null) {
51 contentType = (String) property.getValue();
52 }
53 property = propertySet.get(WebdavFileObject.RESPONSE_CHARSET);
54 if (property != null) {
55 contentEncoding = (String) property.getValue();
56 }
57
58 return new DefaultFileContentInfo(contentType, contentEncoding);
59 }
60 }