# FTOrderedEdgeSetImpl

## Abstract

This classes stores 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

`-addIdOfNode`
  internal helper node used to add an entry to either incomingNodeIdToArrayOfEdges or outgoingNodeIdToArrayEdges
`-addIdOfNode:ofEdgeArrayIndex:toNodeIdToArrayMap:`
  internal helper node used to add an entry to either incomingNodeIdToArrayOfEdges or outgoingNodeIdToArrayEdges
`-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)
`-encodeWithCoder:`
  Is being called in order to serialize this instance
`-initTransientFields`
  Initialize all transient fields of the receiver
`-initWithCode`
  initializer called by deserialization process
`-initWithCoder:`
  initializer called by deserialization process
`-removeEdge:`
  Removes the given ot from 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.

### addIdOfNode

internal helper node used to add an entry to either incomingNodeIdToArrayOfEdges or outgoingNodeIdToArrayEdges

See Also:

> addIdOfNode:ofEdgeArrayIndex:toNodeIdToArrayMap:

>     - addIdOfNode: (id <FTNode>) aNode ofEdgeArrayIndex: (NSNumber *) anEdgeArrayIndex toNodeIdToArrayMap: (NSMutableDictionary *) dict;

##### Parameter Descriptions

> `aNode`
>   node to read the identifier from
> `anEdgeArrayIndex`
>   index where the edge is stored
> `dict`
>   dictionary to update (incomingNodeIdToArrayOfEdges or outgoingNodeIdToArrayEdges)

### addIdOfNode:ofEdgeArrayIndex:toNodeIdToArrayMap:

internal helper node used to add an entry to either incomingNodeIdToArrayOfEdges or outgoingNodeIdToArrayEdges

See Also:

> addIdOfNode

>     - addIdOfNode: (id <FTNode>) aNode ofEdgeArrayIndex: (NSNumber *) anEdgeArrayIndex toNodeIdToArrayMap: (NSMutableDictionary *) dict;

##### Parameter Descriptions

> `aNode`
>   node to read the identifier from
> `anEdgeArrayIndex`
>   index where the edge is stored
> `dict`
>   dictionary to update (incomingNodeIdToArrayOfEdges or outgoingNodeIdToArrayEdges)

### 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

### encodeWithCoder:

Is being called in order to serialize this instance

>     - (void) encodeWithCoder: (NSCoder *) encoder;

##### Parameter Descriptions

> `encoder`
>   object to be used for serialization

### initTransientFields

Initialize all transient fields of the receiver

>     - initTransientFields;

method result
  self

### initWithCode

initializer called by deserialization process

See Also:

> initWithCoder:

>     - (id) initWithCoder:(NSCoder *) decoder;

##### Parameter Descriptions

> `decoder`
>   to use

method result
  self

### initWithCoder:

initializer called by deserialization process

See Also:

> initWithCode

>     - (id) initWithCoder:(NSCoder *) decoder;

##### Parameter Descriptions

> `decoder`
>   to use

### removeEdge:

Removes the given ot from 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)