Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Rice Pastry API
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## rice.pastry.leafset
Class SimilarSet

    java.lang.Object
      java.util.Observable
          rice.pastry.leafset.SimilarSet

All Implemented Interfaces:
  NodeHandleSet, NodeSetI, java.util.Observer, java.io.Serializable

public class SimilarSet
extends java.util.Observable
implements NodeSetI, java.io.Serializable, java.util.Observer

A set of nodes, ordered by numerical distance of their nodeId from the local nodeId

Version:
  $Id: SimilarSet.java,v 1.29 2005/03/11 00:58:04 jeffh Exp $
Author:
  Andrew Ladd, Peter Druschel
See Also:
  Serialized Form

Constructor Summary
`SimilarSet(LeafSet leafSet, NodeHandle localNode, int size, boolean cw)` Constructor.

Method Summary
`NodeHandle` | `get(int i)` Gets the ith element in the set.
`NodeHandle` | `get(NodeHandle nh)` DESCRIBE THE METHOD
`NodeHandle` | `get(NodeId nid)` Finds the NodeHandle associated with the NodeId.
`NodeHandle` | `getHandle(Id id)` Finds the NodeHandle associated with the NodeId.
`NodeHandle` | `getHandle(int i)` Gets the ith element in the set.
`int` | `getIndex(NodeHandle nh)` Gets the Index attribute of the SimilarSet object
`int` | `getIndex(NodeId nid)` Gets the index of the element with the given node id.
`int` | `getIndexHandle(Id id)` Gets the index of the element with the given node id.
`boolean` | `member(NodeHandle nid)` Verifies if the set contains this particular id.
`boolean` | `member(NodeId nid)`
`boolean` | `memberHandle(Id id)` Verifies if the set contains this particular id.
`int` | `mostSimilar(Id nid)` Numerically closest node to a given a node.
`boolean` | `put(NodeHandle handle)` Puts a NodeHandle into the set.
`boolean` | `putHandle(NodeHandle handle)` Puts a NodeHandle into the set.
`protected NodeHandle` | `remove(int i)` Removes a node id and its handle from the set.
`NodeHandle` | `remove(NodeHandle nh)` DESCRIBE THE METHOD
`NodeHandle` | `remove(NodeId nid)` Removes a node id and its handle from the set.
`NodeHandle` | `removeHandle(Id id)` Removes a node id and its handle from the set.
`int` | `size()` Gets the current size of this set.
`protected void` | `swap(int i, int j)` swap two elements
`boolean` | `test(NodeHandle handle)` Test if a NodeHandle belongs into the set.
`void` | `update(java.util.Observable o, java.lang.Object arg)` Is called by the Observer pattern whenever the liveness or proximity of a registered node handle is changed.

Methods inherited from class java.util.Observable
`addObserver, clearChanged, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, notifyObservers, setChanged`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### SimilarSet

    public SimilarSet(LeafSet leafSet,
                      NodeHandle localNode,
                      int size,
                      boolean cw)

  Constructor.

Parameters:
  `localNode` - the local node
  `size` - the size of the similar set.
  `cw` - true if this is the clockwise leafset half
  `leafSet` - DESCRIBE THE PARAMETER

Method Detail

### get

    public NodeHandle get(NodeId nid)

  Finds the NodeHandle associated with the NodeId.

  Specified by:
    `get` in interface `NodeSetI`
  Parameters:
    `nid` - a node id.
  Returns:
    the handle associated with that id or null if no such handle is found.

### get

    public NodeHandle get(NodeHandle nh)

  DESCRIBE THE METHOD

  Parameters:
    `nh` - DESCRIBE THE PARAMETER
  Returns:
    DESCRIBE THE RETURN VALUE

### get

    public NodeHandle get(int i)

  Gets the ith element in the set.

  Specified by:
    `get` in interface `NodeSetI`
  Parameters:
    `i` - an index. i == -1 refers to the local node
  Returns:
    the handle associated with that id or null if no such handle is found.

### getIndex

    public int getIndex(NodeId nid)

  Gets the index of the element with the given node id.

  Specified by:
    `getIndex` in interface `NodeSetI`
  Parameters:
    `nid` - the node id.
  Returns:
    the index or -1 if the element does not exist.

### getIndex

    public int getIndex(NodeHandle nh)

  Gets the Index attribute of the SimilarSet object

  Specified by:
    `getIndex` in interface `NodeSetI`
  Parameters:
    `nh` - DESCRIBE THE PARAMETER
  Returns:
    The Index value

### getHandle

    public NodeHandle getHandle(Id id)

  Finds the NodeHandle associated with the NodeId.

  Specified by:
    `getHandle` in interface `NodeHandleSet`
  Parameters:
    `id` - a node id.
  Returns:
    the handle associated with that id or null if no such handle is found.

### getHandle

    public NodeHandle getHandle(int i)

  Gets the ith element in the set.

  Specified by:
    `getHandle` in interface `NodeHandleSet`
  Parameters:
    `i` - an index.
  Returns:
    the handle associated with that id or null if no such handle is found.

### getIndexHandle

    public int getIndexHandle(Id id)
                       throws java.util.NoSuchElementException

  Gets the index of the element with the given node id.

  Specified by:
    `getIndexHandle` in interface `NodeHandleSet`
  Parameters:
    `id` - the id.
  Returns:
    the index or throws a NoSuchElementException.
  Throws:
    `java.util.NoSuchElementException` - DESCRIBE THE EXCEPTION

### swap

    protected void swap(int i,
                        int j)

  swap two elements

  Parameters:
    `i` - the index of the first element
    `j` - the indes of the second element

### test

    public boolean test(NodeHandle handle)

  Test if a NodeHandle belongs into the set. Predicts if a put would succeed.

  Parameters:
    `handle` - the handle to test.
  Returns:
    true if a put would succeed, false otherwise.

### put

    public boolean put(NodeHandle handle)

  Puts a NodeHandle into the set.

  Specified by:
    `put` in interface `NodeSetI`
  Parameters:
    `handle` - the handle to put.
  Returns:
    true if the put succeeded, false otherwise.

### update

    public void update(java.util.Observable o,
                       java.lang.Object arg)

  Is called by the Observer pattern whenever the liveness or proximity of a registered node handle is changed.

  Specified by:
    `update` in interface `java.util.Observer`
  Parameters:
    `o` - The node handle
    `arg` - the event type (PROXIMITY_CHANGE, DECLARED_LIVE, DECLARED_DEAD)

### member

    public boolean member(NodeHandle nid)

  Verifies if the set contains this particular id.

  Specified by:
    `member` in interface `NodeSetI`
  Parameters:
    `nid` - a node id.
  Returns:
    true if that node id is in the set, false otherwise.

### member

    public boolean member(NodeId nid)

  Parameters:
    `nid` - DESCRIBE THE PARAMETER
  Returns:
    DESCRIBE THE RETURN VALUE

### remove

    public NodeHandle remove(NodeId nid)

  Removes a node id and its handle from the set.

  Parameters:
    `nid` - the node to remove.
  Returns:
    the node handle removed or null if nothing.

### remove

    public NodeHandle remove(NodeHandle nh)

  DESCRIBE THE METHOD

  Specified by:
    `remove` in interface `NodeSetI`
  Parameters:
    `nh` - DESCRIBE THE PARAMETER
  Returns:
    DESCRIBE THE RETURN VALUE

### remove

    protected NodeHandle remove(int i)

  Removes a node id and its handle from the set.

  Parameters:
    `i` - the index of the node to remove.
  Returns:
    the node handle removed or null if nothing.

### size

    public int size()

  Gets the current size of this set.

  Specified by:
    `size` in interface `NodeSetI`
  Returns:
    the size.

### mostSimilar

    public int mostSimilar(Id nid)

  Numerically closest node to a given a node. Returns -1 if the local nodeId is the most similar and returns an index otherwise.

  Parameters:
    `nid` - a node id.
  Returns:
    -1 if the local nodeId is most similar, else the index of the most similar node.

### putHandle

    public boolean putHandle(NodeHandle handle)

  Puts a NodeHandle into the set.

  Specified by:
    `putHandle` in interface `NodeHandleSet`
  Parameters:
    `handle` - the handle to put.
  Returns:
    true if the put succeeded, false otherwise.

### memberHandle

    public boolean memberHandle(Id id)

  Verifies if the set contains this particular id.

  Specified by:
    `memberHandle` in interface `NodeHandleSet`
  Parameters:
    `id` - a node id.
  Returns:
    true if that node id is in the set, false otherwise.

### removeHandle

    public NodeHandle removeHandle(Id id)

  Removes a node id and its handle from the set.

  Specified by:
    `removeHandle` in interface `NodeHandleSet`
  Parameters:
    `id` - DESCRIBE THE PARAMETER
  Returns:
    the node handle removed or null if nothing.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Rice Pastry API
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2001-2005 - Rice Pastry.