FileDocCategorySizeDatePackage
SearchPath.javaAPI DocJ2ME CLDC 1.13767Wed Feb 05 15:56:04 GMT 2003kdp.classparser

SearchPath

public class SearchPath extends Object

Fields Summary
private String
pathString
private String[]
pathArray
Constructors Summary
public SearchPath(String searchPath)

    //### Should check searchpath for well-formedness.
    StringTokenizer st = new StringTokenizer(searchPath, File.pathSeparator);
    List dlist = new ArrayList();
    while (st.hasMoreTokens()) {
        dlist.add(st.nextToken());
    }
    pathString = searchPath;
        Log.LOGN(3,  "!!!" + pathString );
    pathArray = (String[])dlist.toArray(new String[dlist.size()]);
    Log.LOGN(3, "Path array length is :"+pathArray.length);
    for(int i=0; i<pathArray.length; i++) {
        Log.LOGN(3, pathArray[i]);
    }
    
Methods Summary
public java.lang.String[]asArray()

    return (String[])pathArray.clone();
    
public java.lang.StringasString()

    return pathString;
    
public java.lang.String[]children(java.lang.String relativeDirName, java.io.FilenameFilter filter)

    // If a file appears at the same relative path
    // with respect to multiple entries on the classpath,
    // the one corresponding to the earliest entry on the
    // classpath is retained.  This is the one that will be
    // found if we later do a 'resolve'.
    SortedSet s = new TreeSet();  // sorted, no duplicates
        for (int i = 0; i < pathArray.length; i++) {
            FileReference path = FileReference.create(pathArray[i], relativeDirName);
            if (path.exists()) {
        String[] childArray = path.list(filter);
        if (childArray != null) {
            for (int j = 0; j < childArray.length; j++) {
            if (!s.contains(childArray[j])) {
                s.add(childArray[j]);
            }
            }
        }
        }
    }
        return (String[])s.toArray(new String[s.size()]);
    
public booleanisEmpty()

    return (pathArray.length == 0);
    
public intpath_array_length()

        return pathArray.length;
    
public FileReferenceresolve(java.lang.String relativeFileName)

        Log.LOGN(4, "relative filename = " + relativeFileName);
        Log.LOGN(4, "path array length in resolve is " +pathArray.length);
    if (!relativeFileName.endsWith(".class"))
        relativeFileName += ".class";
    Log.LOGN(4, "relative filename now = " + relativeFileName);
        for (int i = 0; i < pathArray.length; i++) {
//            Log.LOGN(3, "path array = " + pathArray[i]);
//            Log.LOGN(3, "relativeFileName);
            Log.LOGN(5,  "pa=" + pathArray[ i ] + " " +
                                "rfa=" + relativeFileName );
            FileReference path = FileReference.create(pathArray[i], relativeFileName);
            if (path.exists()) {
                Log.LOGN(4,  "  exists" );
                return path;
            }
        }
        return null;