View Javadoc
1   /*
2    * Licensed to The Apereo Foundation under one or more contributor license
3    * agreements. See the NOTICE file distributed with this work for additional
4    * information regarding copyright ownership.
5    *
6    *
7    * The Apereo Foundation licenses this file to you under the Educational
8    * Community License, Version 2.0 (the "License"); you may not use this file
9    * except in compliance with the License. You may obtain a copy of the License
10   * at:
11   *
12   *   http://opensource.org/licenses/ecl2.txt
13   *
14   * Unless required by applicable law or agreed to in writing, software
15   * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
16   * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
17   * License for the specific language governing permissions and limitations under
18   * the License.
19   *
20   */
21  
22  package org.opencastproject.adminui.util;
23  
24  import org.opencastproject.adminui.exception.IllegalPathException;
25  
26  import org.osgi.framework.Bundle;
27  
28  import java.net.URL;
29  import java.util.ArrayList;
30  import java.util.Enumeration;
31  import java.util.List;
32  
33  /**
34   * Uses the bundle for finding files in the bundle's classpath.
35   *
36   * @author ademasi
37   *
38   */
39  public class ClassPathInspector implements PathInspector {
40    private Bundle bundle;
41  
42    public ClassPathInspector() {
43    };
44  
45    public ClassPathInspector(Bundle bundle) {
46      this.bundle = bundle;
47    }
48  
49    @Override
50    public List<String> listFiles(String path) throws IllegalPathException {
51      Enumeration<?> entries = bundle.findEntries(path, "*", false);
52      return toList(entries);
53    }
54  
55    private List<String> toList(Enumeration<?> entries) {
56      List<String> result = new ArrayList<String>();
57      while (entries.hasMoreElements()) {
58        URL file = (URL) entries.nextElement();
59      }
60      return result;
61    }
62  }