KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > spi > java > classpath > ClassPathFactory


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.spi.java.classpath;
21
22 import java.net.URL JavaDoc;
23 import org.netbeans.api.java.classpath.ClassPath;
24 import org.netbeans.modules.java.classpath.ClassPathAccessor;
25 import org.openide.filesystems.FileUtil;
26
27 /**
28  * Most general way to create {@link ClassPath} instances.
29  * You are not permitted to create them directly; instead you implement
30  * {@link ClassPathImplementation} and use this factory.
31  * See also {@link org.netbeans.spi.java.classpath.support.ClassPathSupport}
32  * for easier ways to create classpaths.
33  * @since org.netbeans.api.java/1 1.4
34  */

35 public final class ClassPathFactory {
36
37     private ClassPathFactory() {
38     }
39
40     /**
41      * Create API classpath instance for the given SPI classpath.
42      * @param spiClasspath instance of SPI classpath
43      * @return instance of API classpath
44      */

45     public static ClassPath createClassPath(ClassPathImplementation spiClasspath) {
46 // assert checkEntries (spiClasspath) : "ClassPathImplementation contains invalid root: " + spiClasspath.toString(); //Commented, not to decrease the performance even in the dev build.
47
return ClassPathAccessor.DEFAULT.createClassPath(spiClasspath);
48     }
49     
50     
51     private static boolean checkEntries (ClassPathImplementation spiClasspath) {
52         for (PathResourceImplementation impl : spiClasspath.getResources()) {
53             URL JavaDoc[] roots = impl.getRoots();
54             for (URL JavaDoc root : roots) {
55                 if (FileUtil.isArchiveFile(root)) {
56                     return false;
57                 }
58                 if (root.toExternalForm().endsWith("/")) { // NOI18N
59
return false;
60                 }
61             }
62         }
63         return true;
64     }
65
66 }
67
Popular Tags