# FTDictionaryServiceForGraphImpl

## Abstract

Don't know wether i like the name. Anyway this class implements the dictionary service for a particular graph. All nodes offering the service FTDictionaryService somehow refer to this graph.

## Methods

`-addDatabaseEntry`
  adds an entry to the database
`-addDatabaseEntry:forDatabaseKey:`
  adds an entry to the database
`-addObject`
  adds data for a given node. Usually called by transaction steps.
`-addObject:forKey:forNode:`
  adds data for a given node. Usually called by transaction steps.
`-allKeysOfNode:`
`-close`
  closes any databases thus ending work with the corresponding instance
`-createDatabaseEntryKeyForNodeId`
  creates a database key consisting of the node's id and the given key
`-createDatabaseEntryKeyForNodeId:forKey:`
  creates a database key consisting of the node's id and the given key
`-databaseEntryForKey:`
  Looks up for an entry wihin the database which is associated with the given key.
`-objectForKey`
  used to fetch the object associated to the given key for the specified node
`-objectForKey:ofNode:`
  used to fetch the object associated to the given key for the specified node
`-openDatabase`
  Internal method used to open or create the database
`-openDatabaseForGraph:usingDatabaseName:`
  Internal method used to open or create the database
`-removeDatabaseEntryForKey:`
  removes the database entry associated to the given key
`-removeObjectForKey`
  removes an entry from the dictionary
`-removeObjectForKey:ofNode:`
  removes an entry from the dictionary
`-serviceForNode:`
`-serviceLoader`

### addDatabaseEntry

adds an entry to the database

See Also:

> addDatabaseEntry:forDatabaseKey:

>     - addDatabaseEntry: (BDBDatabaseEntry *) anEntry forDatabaseKey: (BDBDatabaseEntry *) aKey;

##### Parameter Descriptions

> `anentry`
>   entry to add
> `aKey`
>   key associated to the entry

method result
  self

### addDatabaseEntry:forDatabaseKey:

adds an entry to the database

See Also:

> addDatabaseEntry

>     - addDatabaseEntry: (BDBDatabaseEntry *) anEntry forDatabaseKey: (BDBDatabaseEntry *) aKey;

##### Parameter Descriptions

> `anentry`
>   entry to add
> `aKey`
>   key associated to the entry

### addObject

adds data for a given node. Usually called by transaction steps.

See Also:

> addObject:forKey:forNode:

>     - addObject: (id <NSCoding>) anObject forKey: (id <NSCoding>) aKey forNode: (id <FTNode>) aNode;

##### Parameter Descriptions

> `anObject`
>   object to add
> `aKey`
>   key to use
> `aNode`
>   node to add the data to

method result
  self

### addObject:forKey:forNode:

adds data for a given node. Usually called by transaction steps.

See Also:

> addObject

>     - addObject: (id <NSCoding>) anObject forKey: (id <NSCoding>) aKey forNode: (id <FTNode>) aNode;

##### Parameter Descriptions

> `anObject`
>   object to add
> `aKey`
>   key to use
> `aNode`
>   node to add the data to

### allKeysOfNode:

>     - (id <ECIterator>) allKeysOfNode: (id <FTNode>) aNode;

##### Parameter Descriptions

> `aNode`
>   node to evaluate

method result
  return all data object keys for the particular node

### close

closes any databases thus ending work with the corresponding instance

>     - (void) close;

### createDatabaseEntryKeyForNodeId

creates a database key consisting of the node's id and the given key

See Also:

> createDatabaseEntryKeyForNodeId:forKey:

>     - (BDBDatabaseEntry *) createDatabaseEntryKeyForNodeId: (id <FTId>) aNodeId forKey: (id <NSCoding>) aKey;

##### Parameter Descriptions

> `aNodeId`
>   id of node
> `aKey`

method result
  database key consisting of the node's id and the given key

### createDatabaseEntryKeyForNodeId:forKey:

creates a database key consisting of the node's id and the given key

See Also:

> createDatabaseEntryKeyForNodeId

>     - (BDBDatabaseEntry *) createDatabaseEntryKeyForNodeId: (id <FTId>) aNodeId forKey: (id <NSCoding>) aKey;

##### Parameter Descriptions

> `aNodeId`
>   id of node
> `aKey`

### databaseEntryForKey:

Looks up for an entry wihin the database which is associated with the given key.

>     - (BDBDatabaseEntry *) databaseEntryForKey: (BDBDatabaseEntry *) aDBKey;

##### Parameter Descriptions

> `aDBKey`
>   key to look for

method result
  associated entry or nil, if not found

### objectForKey

used to fetch the object associated to the given key for the specified node

See Also:

> objectForKey:ofNode:

>     - objectForKey: (id <NSCoding>) aKey ofNode: (id <FTNode>) aNode;

##### Parameter Descriptions

> `aKey`
>   key to look for
> `aNode`
>   related node

method result
  object or nil if not found

### objectForKey:ofNode:

used to fetch the object associated to the given key for the specified node

See Also:

> objectForKey

>     - objectForKey: (id <NSCoding>) aKey ofNode: (id <FTNode>) aNode;

##### Parameter Descriptions

> `aKey`
>   key to look for
> `aNode`
>   related node

### openDatabase

Internal method used to open or create the database

See Also:

> openDatabaseForGraph:usingDatabaseName:

>     - openDatabaseForGraph: (FTGraphImpl *) aGraph usingDatabaseName: (NSString *) aDatabaseName;

##### Parameter Descriptions

> `aGraph`
>   graph for which the service has to be offered to.
> `databaseName`
>   name of database to be used within the data directory of the given graph

method result
  self

### openDatabaseForGraph:usingDatabaseName:

Internal method used to open or create the database

See Also:

> openDatabase

>     - openDatabaseForGraph: (FTGraphImpl *) aGraph usingDatabaseName: (NSString *) aDatabaseName;

##### Parameter Descriptions

> `aGraph`
>   graph for which the service has to be offered to.
> `databaseName`
>   name of database to be used within the data directory of the given graph

### removeDatabaseEntryForKey:

removes the database entry associated to the given key

>     - removeDatabaseEntryForKey: (BDBDatabaseEntry *) key;

##### Parameter Descriptions

> `key`
>   key of entry to be removed

method result
  self

### removeObjectForKey

removes an entry from the dictionary

See Also:

> removeObjectForKey:ofNode:

>     - removeObjectForKey: (id <NSCoding>) aKey ofNode: (id <FTNode>) aNode;

##### Parameter Descriptions

> `aKey`
>   key associated to the object to be removed
> `aNode`
>   related node

method result
  self

### removeObjectForKey:ofNode:

removes an entry from the dictionary

See Also:

> removeObjectForKey

>     - removeObjectForKey: (id <NSCoding>) aKey ofNode: (id <FTNode>) aNode;

##### Parameter Descriptions

> `aKey`
>   key associated to the object to be removed
> `aNode`
>   related node

### serviceForNode:

>     - (id <FTDictionaryService>) serviceForNode: (id <FTNode>) aNode;

method result
  service related to the given node

### serviceLoader

>     - (id <FTServiceLoader>) serviceLoader;

method result
  underlying service loader

(Last Updated August 27, 2006)