Class AlgorithmRegistrySingleton

    • Method Detail

      • getInstance

        public static AlgorithmRegistrySingleton getInstance()
        Gets the singleton instance.
        Returns:
        the singleton instance
      • setAlgorithmRegistry

        public static void setAlgorithmRegistry​(AlgorithmRegistry algorithmRegistry)
        Assigns the AlgorithmRegistry instance to be used by this singleton. If no instance is assigned, a default implementation of the registry will be used.
        Parameters:
        algorithmRegistry - the registry to be used by the singleton
      • getAlgorithm

        public Algorithm getAlgorithm​(String algorithmUri)
        Gets the algorithm based on its URI.
        Specified by:
        getAlgorithm in interface AlgorithmRegistry
        Parameters:
        algorithmUri - the algorithm URI
        Returns:
        the algorithm, or null if none is found
      • getAlgorithm

        public <T extends Algorithm> T getAlgorithm​(String algorithmUri,
                                                    Class<T> clazz)
        Gets an algorithm based on its URI and type.
        Specified by:
        getAlgorithm in interface AlgorithmRegistry
        Type Parameters:
        T - the algorithm type
        Parameters:
        algorithmUri - the algorithm URI
        clazz - the type representing the algorithm
        Returns:
        the algorithm, or null if none is found
      • getAlgorithm

        public Algorithm getAlgorithm​(Predicate<Algorithm> predicate)
        Gets the first algorithm that matches the supplied predicate.

        If more than one algorithm matches the supplied predicate, the one with the lowest order is returned.

        Specified by:
        getAlgorithm in interface AlgorithmRegistry
        Parameters:
        predicate - the predicate to apply
        Returns:
        an Algorithm or null if no algorithms in the registry matches
        See Also:
        AlgorithmPredicates
      • getAlgorithm

        public <T extends Algorithm> T getAlgorithm​(Predicate<Algorithm> predicate,
                                                    Class<T> clazz)
        Gets the first algorithm that matches the given type and supplied predicate.

        If more than one algorithm matches the supplied predicate, the one with the lowest order is returned.

        Specified by:
        getAlgorithm in interface AlgorithmRegistry
        Parameters:
        predicate - the predicate to apply
        clazz - the type representing the algorithm
        Returns:
        an Algorithm or null if no algorithms in the registry matches
        See Also:
        AlgorithmPredicates
      • getAlgorithms

        public List<Algorithm> getAlgorithms​(Predicate<Algorithm> predicate)
        Gets all algorithms that matches the supplied predicate.

        The list is sorted with the lowest algorithms with the lowest order index first.

        Specified by:
        getAlgorithms in interface AlgorithmRegistry
        Parameters:
        predicate - the predicate to apply
        Returns:
        a (possibly empty) list of Algorithm objects
      • getAlgorithms

        public <T extends AlgorithmList<T> getAlgorithms​(Predicate<Algorithm> predicate,
                                                           Class<T> clazz)
        Gets all algorithms that matches the given type and the supplied predicate.

        The list is sorted with the lowest algorithms with the lowest order index first.

        Specified by:
        getAlgorithms in interface AlgorithmRegistry
        Parameters:
        predicate - the predicate to apply
        clazz - the type representing the algorithm
        Returns:
        a (possibly empty) list of Algorithm objects