# Methods

`-allReferences`
`-countReferences`
`-createAndAppendReferenceToNode`
  creates a reference and appends it to the existing set
`-createAndAppendReferenceToNode:withEdgeId:`
  creates a reference and appends it to the existing set
`-createIndexes`
  used to initialize all internal maps
`-encodeWithCoder:`
`-hash`
`-initForBaseNode:`
  Initializes this set based on a given base node
`-isEqual:`
`-referenceByEdgeId:`
`-referencesByNodeId:`
`-removeReference:`
  removes a reference from the set
`-updateIndex`
  update internal indexes used for searches
`-updateIndexes:forReference:`
  update internal indexes used for searches

### allReferences

>     - (id <ECIterator>) allReferences;

method result
  all references in order

### countReferences

>     - (unsigned) countReferences;

method result
  returns the number of references in this set

### createAndAppendReferenceToNode

creates a reference and appends it to the existing set

See Also:

> createAndAppendReferenceToNode:withEdgeId:

>     - createAndAppendReferenceToNode: (id <FTId>) aNodeId withEdgeId: (id <FTId>) anEdgeId;

##### Parameter Descriptions

> `aNodeId`
>   identifier of the node to point to
> `anEdgeId`
>   identifier for the underlying edge

method result
  self

### createAndAppendReferenceToNode:withEdgeId:

creates a reference and appends it to the existing set

See Also:

> createAndAppendReferenceToNode

>     - createAndAppendReferenceToNode: (id <FTId>) aNodeId withEdgeId: (id <FTId>) anEdgeId;

##### Parameter Descriptions

> `aNodeId`
>   identifier of the node to point to
> `anEdgeId`
>   identifier for the underlying edge

### createIndexes

used to initialize all internal maps

>     - createIndexes;

##### Discussion

is an internal method result self

### encodeWithCoder:

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

### hash

>     - (unsigned) hash;

### initForBaseNode:

Initializes this set based on a given base node

>     - initForBaseNode: (id <FTNode>) aNode;

##### Parameter Descriptions

> `aNode`
>   node for which this set is being used

### isEqual:

>     - (BOOL) isEqual: (id) anObject;

### referenceByEdgeId:

>     - (id <FTReference>) referenceByEdgeId: (id <FTId>) anEdgeId;

##### Parameter Descriptions

> `anEdgeId`
>   identifier for the edge

method result
  the reference corresponding to the given edge id or nil

### referencesByNodeId:

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

##### Parameter Descriptions

> `aNodeId`
>   node id to look for

method result
  all references having the specified node id

### removeReference:

removes a reference from the set

>     - removeReference: (id <FTReference>) toRemove;

##### Parameter Descriptions

> `toRemove`
>   reference to remove.

method result
  self

##### Discussion

After a successful call the reference is no longer valid.

### updateIndex

update internal indexes used for searches

See Also:

> updateIndexes:forReference:

>     - updateIndexes: (NSNumber *) indexOfNewEntry forReference: (FTReferenceImpl *) aReference;

##### Parameter Descriptions

> `indexOfNewEntry`
>   index where the new entry has been added to and to which all index values have to point to
> `aReference`
>   new reference

method result
  self

### updateIndexes:forReference:

update internal indexes used for searches

See Also:

> updateIndex

>     - updateIndexes: (NSNumber *) indexOfNewEntry forReference: (FTReferenceImpl *) aReference;

##### Parameter Descriptions

> `indexOfNewEntry`
>   index where the new entry has been added to and to which all index values have to point to
> `aReference`
>   new reference

(Last Updated August 27, 2006)