KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > java > source > parsing > FolderArchive


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19
20 package org.netbeans.modules.java.source.parsing;
21
22 import java.io.File JavaDoc;
23 import java.io.IOException JavaDoc;
24 import java.util.ArrayList JavaDoc;
25 import java.util.Collections JavaDoc;
26 import java.util.List JavaDoc;
27 import javax.tools.JavaFileObject;
28 import org.netbeans.api.java.classpath.ClassPath;
29 import org.netbeans.modules.java.preprocessorbridge.spi.JavaFileFilterImplementation;
30
31 /**
32  *
33  * @author Tomas Zezula
34  */

35 public class FolderArchive implements Archive {
36
37     final File JavaDoc root;
38
39     /** Creates a new instance of FolderArchive */
40     public FolderArchive (final File JavaDoc root) {
41         assert root != null;
42         this.root = root;
43     }
44
45     public Iterable JavaDoc<JavaFileObject> getFiles(String JavaDoc folderName, ClassPath.Entry entry, JavaFileFilterImplementation filter) throws IOException JavaDoc {
46         assert folderName != null;
47         if (folderName.length()>0) {
48             folderName+='/'; //NOI18N
49
}
50         if (entry == null || entry.includes(folderName)) {
51             final File JavaDoc folder = new File JavaDoc (this.root, folderName.replace('/', File.separatorChar)); //NOI18N
52
if (folder.canRead()) {
53                 File JavaDoc[] content = folder.listFiles();
54                 if (content != null) {
55                     List JavaDoc<JavaFileObject> result = new ArrayList JavaDoc<JavaFileObject>(content.length);
56                     for (File JavaDoc f : content) {
57                         if (f.isFile()) {
58                             if (entry == null || entry.includes(f.toURI().toURL())) {
59                                 result.add(FileObjects.fileFileObject(f,this.root,filter));
60                             }
61                         }
62                     }
63                     return Collections.unmodifiableList(result);
64                 }
65             }
66         }
67         return Collections.<JavaFileObject>emptyList();
68     }
69     
70     public void clear () {
71         
72     }
73     
74 }
75
Popular Tags