1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.vfs.provider.http;
18
19 import org.apache.commons.httpclient.Header;
20 import org.apache.commons.httpclient.HeaderElement;
21 import org.apache.commons.httpclient.HttpException;
22 import org.apache.commons.vfs.FileContent;
23 import org.apache.commons.vfs.FileContentInfo;
24 import org.apache.commons.vfs.FileContentInfoFactory;
25 import org.apache.commons.vfs.FileSystemException;
26 import org.apache.commons.vfs.impl.DefaultFileContentInfo;
27
28 /***
29 * Description
30 *
31 * @author <a href="mailto:imario@apache.org">Mario Ivankovits</a>
32 * @version $Revision: 480428 $ $Date: 2006-11-29 07:15:24 +0100 (Mi, 29 Nov 2006) $
33 */
34 public class HttpFileContentInfoFactory implements FileContentInfoFactory
35 {
36 public FileContentInfo create(FileContent fileContent) throws FileSystemException
37 {
38 HttpFileObject httpFile = (HttpFileObject) fileContent.getFile();
39
40 String contentType = null;
41 String contentEncoding = null;
42
43 Header header = httpFile.getHeadMethod().getResponseHeader("content-type");
44 if (header != null)
45 {
46 HeaderElement[] element;
47 try
48 {
49 element = header.getValues();
50 }
51 catch (HttpException e)
52 {
53 throw new FileSystemException(e);
54 }
55 if (element != null && element.length > 0)
56 {
57 contentType = element[0].getName();
58 }
59 }
60
61 contentEncoding = httpFile.getHeadMethod().getResponseCharSet();
62
63 return new DefaultFileContentInfo(contentType, contentEncoding);
64 }
65 }