net.sf.gluebooster.java.booster.basic.container.BoostedNode Maven / Gradle / Ivy
package net.sf.gluebooster.java.booster.basic.container;
import java.util.List;
import net.sf.gluebooster.java.booster.basic.meta.Zoomable;
import net.sf.gluebooster.java.booster.essentials.meta.HasChangeListeners;
import net.sf.gluebooster.java.booster.essentials.meta.IsCloseable;
import net.sf.gluebooster.java.booster.essentials.meta.objects.ObjectAttributes;
/**
* A node with points.
* The points are the focus objects for zooming.
* If a BoostedNode is a point, zooming out returns the node containing the point and the point.
* @see doc-files/BoostedNode.odp
* @author CBauer
*
*/
public interface BoostedNode extends Zoomable , IsCloseable, HasChangeListeners{
/**
* The attributes are not (very often) changing.
*
* @return the found attributes
*/
@SuppressWarnings("rawtypes")
ObjectAttributes getAttributes();
/**
* The state may often change.
*
* @return the current state.
*/
@SuppressWarnings("rawtypes")
ObjectAttributes getState();
/**
* The entry points.
*
* @return the points
*/
List getInPoints();
/**
* Creates a new in point. The point is declared as in point of this node
*
* @return the created point
*/
BoostedNode createInPoint() throws Exception;
/**
* The out-going points.
*
* @return the points
*/
List getOutPoints();
/**
* Creates a new out point. The point is declared as out-point of this node
*
* @return the created point
*/
BoostedNode createOutPoint() throws Exception;
/**
* Returns the in-points of the successor nodes
*
* @param outPoint
* the out-point that is connected to the in-points.
* @return the found points
*/
List getSuccessorInPoints(BoostedNode outPoint);
/**
* Returns the out-points of the predecessor nodes
*
* @param inPoint
* the in-point that is connected to the predecessor out-points
* @return the found out-points
*/
List getPredecessorOutPoints(BoostedNode inPoint);
/**
* Creates a node at the same level which points can be used as sucessors or
* predecessors
*
* @return the created node
*/
BoostedNode createPeer();
/**
* Adds a new outgoing edge.
*
* @param outPointOfThisNode
* the origin (out-point of this node) of the edge
* @param inPointOfOtherNode
* the target (in-point) of the edge
*/
void addOutgoingEdge(BoostedNode outPointOfThisNode,
BoostedNode inPointOfOtherNode);
/**
* Adds a new ingoing edge.
*
* @param outPointOfOtherNode
* the origin (out-point of another node) of the edge
* @param inPointOfThisNode
* the target (in-point of this node) of the edge
*/
void addIngoingEdge(BoostedNode outPointOfOtherNode,
BoostedNode inPointOfThisNode);
}