Interface Store<V extends Identifiable>

    • Method Detail

      • create

        V create()
        Create a new object of the given type. This is not in the store until it is registered. Attempts to update the object should throw an exception. Note that this allows for a separation of creation semantics. Some objects require specific initialization before saving
        Returns:
      • update

        void update​(V value)
        Update an existing object. An UnregisteredObjectException is thrown if the object has not been saved first.
        Parameters:
        value -
      • register

        void register​(V value)
        Almost Identical to put(K,V) but since the object should have an identifier, passing along the key is redundant. This persists the object in the store. Note that this returns void since the contract assumes that this is not registered. If the object is registered an exception should be thrown. Generally use save(V).
        Parameters:
        value -
      • save

        void save​(V value)
        Saves an object. This bridges the gap between SQL stores update and insert commands. Implementations should check if the object already exists in the store and issue an appropriate call.
        Parameters:
        value -
      • getAll

        List<V> getAll()
        Method to get every element in the store. This is useful for command line interfaces. Note that this might be very expensive.
        Returns:
      • search

        List<V> search​(String key,
                       String condition,
                       boolean isRegEx)
        Allows for searching via a reg ex. Note that this may be very expensive for certain stores!
        Parameters:
        key -
        condition -
        isRegEx -
        Returns:
      • search

        List<V> search​(String key,
                       String condition,
                       boolean isRegEx,
                       List<String> attr)
        Return a subset of all the attributes. For non-SQL stores performance may be slow.
        Parameters:
        key -
        condition -
        isRegEx -
        attr -
        Returns:
      • size

        int size​(boolean includeVersions)
      • remove

        boolean remove​(List<Identifiable> objects)
        Removes a list of identifiable object from the store by ID.
        Parameters:
        objects -
        Returns:
      • getMostRecent

        List<V> getMostRecent​(int n,
                              List<String> attributes)