View Javadoc

1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    *
9    *      http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  
18  package org.apache.commons.jci.readers;
19  
20  import java.io.File;
21  import java.util.ArrayList;
22  import java.util.List;
23  
24  import org.apache.commons.io.FileUtils;
25  
26  /**
27   * A simple file system based Reader implementation
28   * 
29   * @author tcurdt
30   */
31  public final class FileResourceReader implements ResourceReader {
32  
33      private final File root;
34  
35      public FileResourceReader( final File pRoot ) {
36          root = pRoot;        
37      }
38      
39      public boolean isAvailable( final String pResourceName ) {
40          return new File(root, pResourceName).exists();
41      }
42  
43      public byte[] getBytes( final String pResourceName ) {
44          try {
45              return FileUtils.readFileToString(new File(root, pResourceName), "UTF-8").getBytes();
46          } catch(Exception e) {
47              return null;
48          }
49      }
50      
51      /**
52       * @deprecated
53       */
54      @Deprecated
55      public String[] list() {
56          final List<String> files = new ArrayList<String>();
57          list(root, files);
58          return files.toArray(new String[files.size()]);
59      }
60  
61      /**
62       * @deprecated
63       */
64      @Deprecated
65      private void list( final File pFile, final List<String> pFiles ) {
66          if (pFile.isDirectory()) {
67              final File[] directoryFiles = pFile.listFiles();
68              for (int i = 0; i < directoryFiles.length; i++) {
69                  list(directoryFiles[i], pFiles);
70              }
71          } else {
72              pFiles.add(pFile.getAbsolutePath().substring(root.getAbsolutePath().length()+1));
73          }
74      }   
75  }