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      public String[] list() {
55          final List files = new ArrayList();
56          list(root, files);
57          return (String[]) files.toArray(new String[files.size()]);
58      }
59  
60      /**
61       * @deprecated
62       */
63      private void list( final File pFile, final List pFiles ) {
64          if (pFile.isDirectory()) {
65              final File[] directoryFiles = pFile.listFiles();
66              for (int i = 0; i < directoryFiles.length; i++) {
67                  list(directoryFiles[i], pFiles);
68              }
69          } else {
70              pFiles.add(pFile.getAbsolutePath().substring(root.getAbsolutePath().length()+1));
71          }
72      }   
73  }