org.jorion.balboa.links
Class Jar

java.lang.Object
  extended by org.jorion.balboa.links.Jar
All Implemented Interfaces:
java.lang.Comparable<Jar>

public class Jar
extends java.lang.Object
implements java.lang.Comparable<Jar>

Encapsulates information about a jar file.

Author:
Bernard Jorion, www.jorion.org

Constructor Summary
Jar(java.lang.String jarName, java.lang.String[] filtersAsArray)
          Constructor.
 
Method Summary
 int compareTo(Jar jar)
           
 boolean equals(java.lang.Object obj)
           
static java.util.Map<Jar,java.util.Set<Jar>> findUsedByJars(java.util.List<Jar> jars, java.util.Map<java.lang.String,MyClass> classes)
           
static java.util.Map<Jar,java.util.Set<Jar>> findUsingJars(java.util.List<Jar> jars, java.util.Map<java.lang.String,MyClass> classes)
           
 java.util.List<java.lang.String> getClassNames()
           
 int getFiltered()
           
 java.lang.String getName()
           
 java.lang.String getShortName()
           
 int hashCode()
           
protected static boolean isClass(java.lang.String fullname)
           
protected  boolean isFiltered(java.lang.String fullname)
           
 boolean isTouched()
           
 void parse(java.util.Map<java.lang.String,MyClass> classes)
          Parse the current jar and look for the given classes.
protected static void parseDir(java.io.File dir, java.util.List<java.lang.String> classes)
          Parse recursively the givne directory and stores all the class files inside classes.
protected static java.util.List<java.lang.String> parseFilters(java.lang.String[] filtersAsArray)
          Convert an array of filters to a list of filters, removing any trailing "*" as they are not used anyway.
protected  void parseJar(java.util.Map<java.lang.String,MyClass> classes, java.util.List<java.lang.String> entryNames, java.lang.String rootDir, org.jorion.balboa.links.Jar.SourceStream source)
           
protected  void setClassNames(java.util.List<java.lang.String> classNames)
           
 void setFiltered(int filtered)
           
 void setTouched(boolean touched)
           
 java.lang.String toString()
           
protected static void touchJars(Jar baseJar, java.util.List<Jar> jars, java.util.Map<java.lang.String,MyClass> classes)
          Touch all jars starting from a given jar.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Jar

public Jar(java.lang.String jarName,
           java.lang.String[] filtersAsArray)
Constructor.

Parameters:
jarName - The jar name.
filtersAsArray - An array of filters.
Method Detail

findUsedByJars

public static java.util.Map<Jar,java.util.Set<Jar>> findUsedByJars(java.util.List<Jar> jars,
                                                                   java.util.Map<java.lang.String,MyClass> classes)
Parameters:
jars - A list of jars.
classes - The collection of classes (key = classname; value = instance of myClass)
Returns:
A list of jars that each jar in the jars is used by.

findUsingJars

public static java.util.Map<Jar,java.util.Set<Jar>> findUsingJars(java.util.List<Jar> jars,
                                                                  java.util.Map<java.lang.String,MyClass> classes)
Parameters:
jars - A list of jars.
classes - The collection of classes (key = classname; value = instance of myClass)
Returns:
A list of jars that the each jar in the jars is using.

touchJars

protected static void touchJars(Jar baseJar,
                                java.util.List<Jar> jars,
                                java.util.Map<java.lang.String,MyClass> classes)
Touch all jars starting from a given jar.

Parameters:
baseJar - The starting jar.
jars - The list of all jars.
classes - The map containing the results.

parseFilters

protected static java.util.List<java.lang.String> parseFilters(java.lang.String[] filtersAsArray)
Convert an array of filters to a list of filters, removing any trailing "*" as they are not used anyway.

Parameters:
filtersAsArray - An array of filters.
Returns:
A list of filters (eventually empty, never null).

isClass

protected static boolean isClass(java.lang.String fullname)
Parameters:
fullname - The zip entry full name (ex: org.apache.commons.lang.StringUtils.class)
Returns:
True if the fullname ends with ".class"

isFiltered

protected boolean isFiltered(java.lang.String fullname)
Parameters:
fullname - A class name (package included).
Returns:
True if the name corresponds to a filter.

parse

public void parse(java.util.Map<java.lang.String,MyClass> classes)
           throws java.io.IOException
Parse the current jar and look for the given classes.

Parameters:
classes - The map containing the results.
Throws:
java.io.IOException - Any IOException.

parseDir

protected static void parseDir(java.io.File dir,
                               java.util.List<java.lang.String> classes)
Parse recursively the givne directory and stores all the class files inside classes.

Parameters:
dir - The current directory.
classes - The resulting list of classes.

parseJar

protected void parseJar(java.util.Map<java.lang.String,MyClass> classes,
                        java.util.List<java.lang.String> entryNames,
                        java.lang.String rootDir,
                        org.jorion.balboa.links.Jar.SourceStream source)
                 throws java.io.IOException
Parameters:
classes - The map containing the results.
entryNames - The list of the classes.
rootDir - For the classes, the "classes" dir, for the jar, null.
source - An instance of SourceStream.
Throws:
java.io.IOException

equals

public boolean equals(java.lang.Object obj)
Overrides:
equals in class java.lang.Object
Parameters:
obj - The object used for the comparison.
Returns:
True if two Jar objects have the same name.
See Also:
Object.equals(java.lang.Object)

hashCode

public int hashCode()
Overrides:
hashCode in class java.lang.Object
Returns:
The hashcode.
See Also:
Object.hashCode()

compareTo

public int compareTo(Jar jar)
Specified by:
compareTo in interface java.lang.Comparable<Jar>
Parameters:
jar - The object used for the comparison.
Returns:
A comparison using the jar name.
See Also:
Comparable.compareTo(java.lang.Object)

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object
Returns:
A string representation.
See Also:
Object.toString()

getName

public java.lang.String getName()

getShortName

public java.lang.String getShortName()

getClassNames

public java.util.List<java.lang.String> getClassNames()

setClassNames

protected void setClassNames(java.util.List<java.lang.String> classNames)

isTouched

public boolean isTouched()

setTouched

public void setTouched(boolean touched)

getFiltered

public int getFiltered()

setFiltered

public void setFiltered(int filtered)