All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy