f886d78858bf7f8f0915862dcf50bbb47c9f1195
[utils] /
1 /**
2  * <h1>Graph component package </h1>
3  * 
4  * The graph component package provides the representation of a number of 
5  * components {@link Component} 
6  * their required and provided interfaces ({@link RequiredInterface} and 
7  * {@link ProvidedInterface}), and how these are connected together.
8  * 
9  * This package provides the bridge between the component model and the 
10  * representation of the components and their connections in a graph. 
11  * The component package provides various algorithms, filters, and 
12  * validations that are required for the implementation of a container. 
13  * 
14  * The main abstractions are: 
15  * <ul>
16  *   <li> {@link ComponentGraph}: A graph of components. This provides the logic
17  *   for creating a graph based on components. </li>
18  *   <li> {@link ComponentNode}: A node representing a component. </li>
19  *   <li> {@link RequiredInterfaceNode}: A node representing a required interface of a component. </li>
20  *   <li> {@link ProvidedInterfaceNode}: A node repesenting a provided interface of a component. </li>
21  *   <li> {@link ExternalRequiredInterfaceNode}: A node representing a required interface of a container </li>
22  *   <li> {@link ExternalProvidedInterfaceNode}: A node representing a provided interface of a container </li>  
23  * </ul> 
24  *
25  */
26 package org.wamblee.system.graph.component;
27
28 import org.wamblee.system.core.Component;
29 import org.wamblee.system.core.ProvidedInterface;
30 import org.wamblee.system.core.RequiredInterface;
31