Class DatarouterNodes

java.lang.Object
io.datarouter.storage.node.DatarouterNodes

@Singleton public class DatarouterNodes extends Object
Nodes is a registry of all Nodes in a Datarouter. It ensures that no two nodes try to share the same name. It can be used by Datarouter management features like a web page to browse all nodes in the system.
  • Method Details

    • register

      public <PK extends io.datarouter.model.key.primary.PrimaryKey<PK>, D extends io.datarouter.model.databean.Databean<PK, D>, F extends io.datarouter.model.serialize.fielder.DatabeanFielder<PK, D>, N extends Node<PK, D, F>> N register(N node)
    • getAllNodes

      public Collection<Node<?,?,?>> getAllNodes()
    • getNode

      public Node<?,?,?> getNode(String nodeName)
    • getNodeAndCast

      public <PK extends io.datarouter.model.key.primary.PrimaryKey<PK>, D extends io.datarouter.model.databean.Databean<PK, D>, N extends Node<PK, D, ?>> N getNodeAndCast(String nodeName)
    • getTypesForClient

      public Set<Class<?>> getTypesForClient(String clientName)
    • getPhysicalNodesForClient

      public Collection<PhysicalNode<?,?,?>> getPhysicalNodesForClient(String clientName)
    • getTableNamesForClient

      public List<String> getTableNamesForClient(String clientName)
    • getPhysicalNodeForClientAndTable

      public PhysicalNode<?,?,?> getPhysicalNodeForClientAndTable(String clientName, String tableName)
    • getPhysicalNodeByTableNameByClientName

      public Map<String,Map<String,PhysicalNode<?,?,?>>> getPhysicalNodeByTableNameByClientName()
    • findParent

      public Node<?,?,?> findParent(Node<?,?,?> node, Class<?> requiredInterface)
    • getTopLevelNodes

      public SortedSet<Node<?,?,?>> getTopLevelNodes()
    • getWritableNodes

      public NavigableSet<PhysicalNode<?,?,?>> getWritableNodes(Collection<ClientId> clientIds)
    • getWritableAndReadableNodes

      public NavigableSet<PhysicalNode<?,?,?>> getWritableAndReadableNodes(Collection<ClientId> clientIds)