Interface ILispDAO

  • All Known Implementing Classes:
    HashMapDb

    public interface ILispDAO
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      java.util.Map<java.lang.String,​java.lang.Object> get​(java.lang.Object key)
      Get the entries from the DAO.
      void getAll​(IRowVisitor visitor)
      Enumerate all the entries from the DAO.
      java.util.Map<java.lang.String,​java.lang.Object> getBest​(java.lang.Object key)
      Get value for longest prefix match from the DAO.
      java.util.AbstractMap.SimpleImmutableEntry<Eid,​java.util.Map<java.lang.String,​?>> getBestPair​(java.lang.Object key)
      Get longest prefix match and value from the DAO.
      Eid getCoveringLessSpecific​(Eid key)
      Look up the covering prefix for the argument, but exclude the argument itself, so the result is always less specific than the lookup key.
      Eid getParentPrefix​(Eid key)
      Get parent prefix.
      Eid getSiblingPrefix​(Eid key)
      Get sibling prefix.
      java.lang.Object getSpecific​(java.lang.Object key, java.lang.String valueKey)
      Get a specific value from the DAO.
      java.util.Set<Eid> getSubtree​(Eid key)
      Get the subtree of the given prefix.
      Eid getVirtualParentSiblingPrefix​(Eid key)
      Get virtual parent sibling prefix.
      Eid getWidestNegativePrefix​(Eid key)
      Get widest negative prefix.
      boolean isEmpty()
      Check if the DAO is empty.
      void put​(java.lang.Object key, MappingEntry<?>... values)
      Put a entry into the DAO.
      ILispDAO putNestedTable​(java.lang.Object key, java.lang.String valueKey)
      Inserts a new, nested table for given key and subkey.
      ILispDAO putTable​(java.lang.String key)
      Insert a new table for given key.
      void remove​(java.lang.Object key)
      Remove an entry from the DAO.
      void removeAll()
      Clear the DAO and remove all of the entries.
      void removeSpecific​(java.lang.Object key, java.lang.String valueKey)
      Remove an entry from the DAO.
    • Method Detail

      • put

        void put​(java.lang.Object key,
                 MappingEntry<?>... values)
        Put a entry into the DAO.
        Parameters:
        key - The entry's key.
        values - The entry's value.
      • getSpecific

        java.lang.Object getSpecific​(java.lang.Object key,
                                     java.lang.String valueKey)
        Get a specific value from the DAO.
        Parameters:
        key - The key of the value to fetch
        valueKey - The value to fetch
        Returns:
        The value from the DAO.
      • get

        java.util.Map<java.lang.String,​java.lang.Object> get​(java.lang.Object key)
        Get the entries from the DAO.
        Parameters:
        key - The key to be looked up as exact match.
        Returns:
        The value from the DAO.
      • getBest

        java.util.Map<java.lang.String,​java.lang.Object> getBest​(java.lang.Object key)
        Get value for longest prefix match from the DAO.
        Parameters:
        key - The eid prefix, IPv4 or IPv6, to be looked up. Key must be normalized.
        Returns:
        The value from the DAO.
      • getBestPair

        java.util.AbstractMap.SimpleImmutableEntry<Eid,​java.util.Map<java.lang.String,​?>> getBestPair​(java.lang.Object key)
        Get longest prefix match and value from the DAO.
        Parameters:
        key - The eid prefix, IPv4 or IPv6, to be looked up. Key must be normalized
        Returns:
        The best match and value pair from the DAO.
      • getCoveringLessSpecific

        Eid getCoveringLessSpecific​(Eid key)
        Look up the covering prefix for the argument, but exclude the argument itself, so the result is always less specific than the lookup key.
        Parameters:
        key - The eid prefix, IPv4 or IPv6, to be looked up. Key must be normalized.
        Returns:
        The covering prefix.
      • getParentPrefix

        Eid getParentPrefix​(Eid key)
        Get parent prefix.
        Parameters:
        key - The eid prefix, IPv4 or IPv6, to be looked up. Key must be normalized.
        Returns:
        The parent prefix of the longest prefix match for the key.
      • getSiblingPrefix

        Eid getSiblingPrefix​(Eid key)
        Get sibling prefix.
        Parameters:
        key - The eid prefix, IPv4 or IPv6, to be looked up. Key must be normalized.
        Returns:
        The sibling prefix of the longest prefix match for the key.
      • getVirtualParentSiblingPrefix

        Eid getVirtualParentSiblingPrefix​(Eid key)
        Get virtual parent sibling prefix.
        Parameters:
        key - The eid prefix, IPv4 or IPv6, to be looked up. Key must be normalized.
        Returns:
        The longest prefix match node's virtual parent's sibling or null if nothing is found.
      • getWidestNegativePrefix

        Eid getWidestNegativePrefix​(Eid key)
        Get widest negative prefix.
        Parameters:
        key - The eid prefix, IPv4 or IPv6, to be looked up. Key must be normalized.
        Returns:
        The widest negative prefix found.
      • getSubtree

        java.util.Set<Eid> getSubtree​(Eid key)
        Get the subtree of the given prefix.
        Parameters:
        key - The eid prefix, IPv4 or IPv6, to be looked up. Key must be normalized.
        Returns:
        The set of EIDs that part of the subtree of the given EID.
      • getAll

        void getAll​(IRowVisitor visitor)
        Enumerate all the entries from the DAO.
        Parameters:
        visitor - The visitor object.
      • remove

        void remove​(java.lang.Object key)
        Remove an entry from the DAO.
        Parameters:
        key - The key of the entry to delete
      • removeSpecific

        void removeSpecific​(java.lang.Object key,
                            java.lang.String valueKey)
        Remove an entry from the DAO.
        Parameters:
        key - The key of the entry
        valueKey - The value to delete
      • removeAll

        void removeAll()
        Clear the DAO and remove all of the entries.
      • putTable

        ILispDAO putTable​(java.lang.String key)
        Insert a new table for given key.
        Parameters:
        key - The key for the table
        Returns:
        The inserted table
      • putNestedTable

        ILispDAO putNestedTable​(java.lang.Object key,
                                java.lang.String valueKey)
        Inserts a new, nested table for given key and subkey. Also acts as factory method.
        Parameters:
        key - The key for which a new table is linked in
        valueKey - The subkey under which to insert the new table
        Returns:
        The inserted table
      • isEmpty

        boolean isEmpty()
        Check if the DAO is empty.
        Returns:
        true if empty