# FTOrderedEdgeSet

## Abstract

Classes implementing this protocol manage a set of FTEdgeImpl instances.

## Discussion

The edges are stored in the order they are added to the set. Modifications to the set, like e.g. the deletion of an edge, directly have an impact on the order

## Methods

`-appendEdge:`
  appends an edge to the set of edges.
`-edgesWithSourceNodeId:`
  all edges having the specified node as source node
`-edgesWithTargetNodeId:`
  all edges having the specified node as target node
`-edgeType:`
  Checks whether a given node is with the set and if so, it determines the type of this node (incoming or outgoing)
`-removeEdge:`
  Removes the given ot from the set. Ignores the call if the edge is not within the set
`-removeEdges:`
  Searches the given iterator and removes all nodes which are to be found in this set. Ignores all edges not to be found in this set.

### appendEdge:

appends an edge to the set of edges.

>     - appendEdge: (FTEdgeImpl *) toAdd

##### Parameter Descriptions

> `toAdd`
>   edge to add. Its edge identifier must be unique.

method result
  index of array where the edge has been added to

### edgesWithSourceNodeId:

all edges having the specified node as source node

>     - (id <ECIterator>) edgesWithSourceNodeId: (id <FTId>) aNodeId;

method result
  iterator of all edges having the specified node as source node

### edgesWithTargetNodeId:

all edges having the specified node as target node

>     - (id <ECIterator>) edgesWithTargetNodeId: (id <FTId>) aNodeId;

method result
  iterator of all edges having the specified node as target node

### edgeType:

Checks whether a given node is with the set and if so, it determines the type of this node (incoming or outgoing)

>     - (ft_edge_type_t) edgeType: (id <FTEdge>) toLookFor;

method result
  FT_EDGE_NOT_IN_SET, FT_EDGE_IS_INCOMING or FT_EDGE_IS_OUTGOING

### removeEdge:

Removes the given ot from the set. Ignores the call if the edge is not within the set

>     - removeEdge: (id <FTEdge>) toRemove;

method result
  self

### removeEdges:

Searches the given iterator and removes all nodes which are to be found in this set. Ignores all edges not to be found in this set.

>     - removeEdges: (id <ECIterator>) toRemove;

##### Parameter Descriptions

> `toRemove`
>   iteration of edges to be removed

method result
  self

(Last Updated August 27, 2006)