com.springsource.bundlor.support.partialmanifest
Class StandardReadablePartialManifest

java.lang.Object
  extended by com.springsource.bundlor.support.partialmanifest.StandardReadablePartialManifest
All Implemented Interfaces:
PartialManifest, ReadablePartialManifest

public class StandardReadablePartialManifest
extends java.lang.Object
implements ReadablePartialManifest

Implementation of PartialManifest that provides programmatic access to the collected data.

Concurrent Semantics
Not thread safe.

Author:
Rob Harrop, Glyn Normington, Ben Hale

Field Summary
private  boolean condensed
           
static java.util.Set<java.lang.String> EMPTY_SET
           
private static java.lang.String[] EXCLUDED_PREFIXES
           
 java.util.Set<java.lang.String> exportedPackages
           
private  java.util.Set<java.lang.String> importedPackages
           
private  java.util.Set<java.lang.String> importedTypes
           
private  java.util.Set<java.lang.String> localTypes
           
private  java.util.Set<java.lang.String> referencedPackages
           
 java.util.Map<java.lang.String,java.util.Set<java.lang.String>> unsatisfiedTypesByPackage
           
private  java.util.Map<java.lang.String,java.util.Set<java.lang.String>> uses
           
 
Constructor Summary
StandardReadablePartialManifest()
           
 
Method Summary
 void condense()
           
 java.util.Set<java.lang.String> getExportedPackages()
          Gets the exported packages.
 java.util.Set<java.lang.String> getImportedPackages()
          Gets the imported packages.
protected static java.lang.String getPackageName(java.lang.String fullyQualifiedTypeName)
           
 java.util.Set<java.lang.String> getUnsatisfiedTypes(java.lang.String packageName)
          Gets the set of unsatisfied types for a given package
private  java.util.Set<java.lang.String> getUnsatisfiedTypesForPackage(java.lang.String packageName)
           
 java.util.Set<java.lang.String> getUses(java.lang.String exportingPackage)
          Gets the uses for the supplied exporting package.
private  java.util.Set<java.lang.String> getUsesSet(java.lang.String exportingPackage)
           
 boolean isRecordablePackage(java.lang.String packageName)
          Indicate whether a package is recordable
 void recordExportPackage(java.lang.String packageName)
          Records that the supplied package should be exported.
 void recordReferencedPackage(java.lang.String fullyQualifiedPackageName)
          Records that the supplied package is referenced by the artefact being analysed.
 void recordReferencedType(java.lang.String fullyQualifiedTypeName)
          Records that the supplied type is referenced by the code being analysed.
 void recordType(java.lang.String fullyQualifiedTypeName)
          Records the existence of a type
 void recordUsesPackage(java.lang.String usingPackage, java.lang.String usedPackage)
          Records a uses directive member for a given package export.
protected  void removeImportedType(java.lang.String fullyQualifiedTypeName)
           
protected  void removeReferencedPackage(java.lang.String fullyQualifiedPackageName)
           
protected  void removeUses(java.lang.String usingPackage, java.util.Set<java.lang.String> usedPackages)
           
protected  void unrecordExportPackage(java.lang.String packageName)
           
protected  void unrecordType(java.lang.String fullyQualifiedTypeName)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

EXCLUDED_PREFIXES

private static final java.lang.String[] EXCLUDED_PREFIXES

exportedPackages

public final java.util.Set<java.lang.String> exportedPackages

importedTypes

private final java.util.Set<java.lang.String> importedTypes

uses

private final java.util.Map<java.lang.String,java.util.Set<java.lang.String>> uses

localTypes

private final java.util.Set<java.lang.String> localTypes

referencedPackages

private final java.util.Set<java.lang.String> referencedPackages

condensed

private boolean condensed

importedPackages

private final java.util.Set<java.lang.String> importedPackages

unsatisfiedTypesByPackage

public final java.util.Map<java.lang.String,java.util.Set<java.lang.String>> unsatisfiedTypesByPackage

EMPTY_SET

public static final java.util.Set<java.lang.String> EMPTY_SET
Constructor Detail

StandardReadablePartialManifest

public StandardReadablePartialManifest()
Method Detail

recordExportPackage

public void recordExportPackage(java.lang.String packageName)
Description copied from interface: PartialManifest
Records that the supplied package should be exported.

Specified by:
recordExportPackage in interface PartialManifest
Parameters:
packageName - The fully-qualified name of the package

unrecordExportPackage

protected void unrecordExportPackage(java.lang.String packageName)

condense

public void condense()

isRecordablePackage

public boolean isRecordablePackage(java.lang.String packageName)
Indicate whether a package is recordable

Specified by:
isRecordablePackage in interface ReadablePartialManifest
Parameters:
packageName - The name of the package to record

getUnsatisfiedTypesForPackage

private java.util.Set<java.lang.String> getUnsatisfiedTypesForPackage(java.lang.String packageName)

getPackageName

protected static java.lang.String getPackageName(java.lang.String fullyQualifiedTypeName)

recordUsesPackage

public void recordUsesPackage(java.lang.String usingPackage,
                              java.lang.String usedPackage)
Description copied from interface: PartialManifest
Records a uses directive member for a given package export.

Specified by:
recordUsesPackage in interface PartialManifest
Parameters:
usingPackage - the package that is using the package.
usedPackage - the package being used.

removeUses

protected void removeUses(java.lang.String usingPackage,
                          java.util.Set<java.lang.String> usedPackages)

getExportedPackages

public java.util.Set<java.lang.String> getExportedPackages()
Gets the exported packages.

Specified by:
getExportedPackages in interface ReadablePartialManifest
Returns:
the exported packages.

getImportedPackages

public java.util.Set<java.lang.String> getImportedPackages()
Gets the imported packages.

Specified by:
getImportedPackages in interface ReadablePartialManifest
Returns:
the imported packages.

getUses

public java.util.Set<java.lang.String> getUses(java.lang.String exportingPackage)
Gets the uses for the supplied exporting package.

Specified by:
getUses in interface ReadablePartialManifest
Parameters:
exportingPackage - the exporting package.
Returns:
the uses.

getUsesSet

private java.util.Set<java.lang.String> getUsesSet(java.lang.String exportingPackage)

recordReferencedType

public void recordReferencedType(java.lang.String fullyQualifiedTypeName)
Records that the supplied type is referenced by the code being analysed.

Specified by:
recordReferencedType in interface PartialManifest
Parameters:
fullyQualifiedTypeName - the fully-qualified name of the referenced type

recordReferencedPackage

public void recordReferencedPackage(java.lang.String fullyQualifiedPackageName)
Description copied from interface: PartialManifest
Records that the supplied package is referenced by the artefact being analysed.

Specified by:
recordReferencedPackage in interface PartialManifest
Parameters:
fullyQualifiedPackageName - The fully-qualified name of the package

removeImportedType

protected void removeImportedType(java.lang.String fullyQualifiedTypeName)

removeReferencedPackage

protected void removeReferencedPackage(java.lang.String fullyQualifiedPackageName)

recordType

public void recordType(java.lang.String fullyQualifiedTypeName)
Records the existence of a type

Specified by:
recordType in interface PartialManifest
Parameters:
fullyQualifiedTypeName - The fully qualified name of the type

unrecordType

protected void unrecordType(java.lang.String fullyQualifiedTypeName)

getUnsatisfiedTypes

public java.util.Set<java.lang.String> getUnsatisfiedTypes(java.lang.String packageName)
Description copied from interface: ReadablePartialManifest
Gets the set of unsatisfied types for a given package

Specified by:
getUnsatisfiedTypes in interface ReadablePartialManifest
Parameters:
packageName - The name of the package
Returns:
The set of unsatisfied types