package org.infoobject.magicmap.node.model; import net.sf.magicmap.client.model.node.INodeGraph; import net.sf.magicmap.client.model.node.Node; import org.infoobject.core.relation.domain.*; import org.infoobject.core.relation.domain.PositionRelation.Factory; import java.util.Set; /** * <p> * Ein Graph der Informationsobjekte untereinander und mit physikalichen Knoten verbindet. * </p> * <p> * DETAILS * </p> * * @author Jan Friderici * Date: 09.08.2008 * Time: 18:01:37 */ public interface InformationObjectNodeGraph extends INodeGraph, RelationModel { /** * * @param n1 * @param n2 * @return */ RelationEdge addEdge(Node n1, Node n2); /** * * @param node * @param node1 * @return */ RelationEdge getEdge(Node node, Node node1); /** * * @param node * @return */ Set<? extends RelationEdge> getEdges(Node node); /** * * @return */ Set<? extends RelationEdge> getEdges(); /** * * @param relationEdge */ void updateRelation(RelationEdge relationEdge); /** * * @param node * @param node1 * @return */ PositionRelationEdge getObjectEdge(InformationObjectNode node, Node node1); /** * * @param node * @param node1 * @return */ InformationRelationEdge getInformationEdge(InformationObjectNode node, InformationObjectNode node1); /** * * @param n1 * @param n2 * @param factory * @return */ PositionRelationEdge addRelation(InformationObjectNode n1, Node n2, Factory factory); /** * * @param n1 * @param n2 * @param factory * @return */ InformationRelationEdge addEdge(InformationObjectNode n1, InformationObjectNode n2, InformationRelation.Factory factory); }