Package org.pfsw.odem

Object Dependency Exploration Model (ODEM)
This component provides an API for analyzing type dependencies.

See:
          Description

Interface Summary
IContainer Represents a containers that hold types and namespaces.
IContainersVisitor This interface defines one part of the "Visitor Pattern".
IDependency<S extends IExplorableElement,T extends IExplorableElement> Represents a directed dependency between two IExplorableElements.
IDependencyFilter<D extends IDependency> Simple filter for IDependency objects
IExplorableElement Common interface for all model objects that can be used for dependency exploration.
IExplorableElementFilter<E extends IExplorableElement> Simple filter for IExplorableElement objects
IExplorableElementVisiting Specifies all methods that are necessary to fully provide the "Vistor Pattern" in conjunction with the IxxxVisitor interfaces defined here in the same package.
IExplorableElementVisitor This is the callback interface an object must implement to be used within a transparent navigation over all explorable elements.
IExplorationContext Exploration of dependencies always must happen in a particular context.
IExplorationModelObject This is the base interface of all objects that comprise the exploration model.
INamespace Represents a namespace an IType belongs to.
INamespacesVisitor This interface defines one part of the "Visitor Pattern".
IObjectProperties Each object that supports generic attributes must implement this interface.
IStructureVisiting Specifies the methods a holder of exploration structures such as namespaces and containers must implement.
IType Represents a type such as a class, an interface, an enumeration and so on.
ITypesVisitor This interface defines one part of the "Visitor Pattern".
 

Class Summary
DependencySet<S extends IExplorableElement,T extends IExplorableElement> A set of IDependency objects.
ObjectProperties This is an implementation of IObjectProperties which is provided here as convenience, so that not everybody is forced create his own implementation.
TypeDependency<S extends IType,T extends IType> This abstract dependency class implements some convenience methods to find out the kind of dependency between two types.
 

Enum Summary
ContainerClassification Specifies the currently container types
DependencyClassification Specifies the currently supported types
TypeClassification Specifies the currently supported types
Visibility Specifies the currently supported types
 

Package org.pfsw.odem Description

Object Dependency Exploration Model (ODEM)


This component provides an API for analyzing type dependencies. Furthermore it is very generic and allows different implementations. Actually it requires an implementation. ODEM itself has nearly no class, just interfaces.

The API itself does not support manipulation of the underlying model objects, except for the IObjectProperties which is available to attach arbitrary information to the model objects.

Apart from that the API strongly utilizes the Visitor Pattern to iterate over the various elements.