/**
*
Graph component package
*
* The graph component package provides the representation of a number of
* components {@link Component}
* their required and provided interfaces ({@link RequiredInterface} and
* {@link ProvidedInterface}), and how these are connected together.
*
* This package provides the bridge between the component model and the
* representation of the components and their connections in a graph.
* The component package provides various algorithms, filters, and
* validations that are required for the implementation of a container.
*
* The main abstractions are:
*
* - {@link ComponentGraph}: A graph of components. This provides the logic
* for creating a graph based on components.
* - {@link ComponentNode}: A node representing a component.
* - {@link RequiredInterfaceNode}: A node representing a required interface of a component.
* - {@link ProvidedInterfaceNode}: A node repesenting a provided interface of a component.
* - {@link ExternalRequiredInterfaceNode}: A node representing a required interface of a container
* - {@link ExternalProvidedInterfaceNode}: A node representing a provided interface of a container
*
*
*/
package org.wamblee.system.graph.component;
import org.wamblee.system.core.Component;
import org.wamblee.system.core.ProvidedInterface;
import org.wamblee.system.core.RequiredInterface;