KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > commons > vfs > provider > http > HttpFileContentInfoFactory


1 /*
2  * Copyright 2002-2005 The Apache Software Foundation.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16 package org.apache.commons.vfs.provider.http;
17
18 import org.apache.commons.httpclient.Header;
19 import org.apache.commons.httpclient.HeaderElement;
20 import org.apache.commons.httpclient.HttpException;
21 import org.apache.commons.vfs.FileContent;
22 import org.apache.commons.vfs.FileContentInfo;
23 import org.apache.commons.vfs.FileContentInfoFactory;
24 import org.apache.commons.vfs.FileSystemException;
25 import org.apache.commons.vfs.impl.DefaultFileContentInfo;
26
27 /**
28  * Description
29  *
30  * @author <a HREF="mailto:imario@apache.org">Mario Ivankovits</a>
31  */

32 public class HttpFileContentInfoFactory implements FileContentInfoFactory
33 {
34     public FileContentInfo create(FileContent fileContent) throws FileSystemException
35     {
36         HttpFileObject httpFile = (HttpFileObject) fileContent.getFile();
37
38         String JavaDoc contentType = null;
39         String JavaDoc contentEncoding = null;
40
41         Header header = httpFile.getHeadMethod().getResponseHeader("content-type");
42         if (header != null)
43         {
44             HeaderElement[] element;
45             try
46             {
47                 element = header.getValues();
48             }
49             catch (HttpException e)
50             {
51                 throw new FileSystemException(e);
52             }
53             if (element != null && element.length > 0)
54             {
55                 contentType = element[0].getName();
56             }
57         }
58
59         contentEncoding = httpFile.getHeadMethod().getResponseCharSet();
60
61         return new DefaultFileContentInfo(contentType, contentEncoding);
62     }
63 }
64
Popular Tags