Class ASolutionCandidateIterator<I,​O>

  • Type Parameters:
    I -
    O -
    All Implemented Interfaces:
    java.lang.Iterable<org.api4.java.algorithm.events.IAlgorithmEvent>, java.util.concurrent.Callable<O>, java.util.Iterator<org.api4.java.algorithm.events.IAlgorithmEvent>, org.api4.java.algorithm.IAlgorithm<I,​O>, org.api4.java.algorithm.ISolutionCandidateIterator<I,​O>, org.api4.java.common.control.ICancelable, org.api4.java.common.control.ILoggingCustomizable
    Direct Known Subclasses:
    AOptimizer, AReducingSolutionIterator

    public abstract class ASolutionCandidateIterator<I,​O>
    extends AAlgorithm<I,​O>
    implements org.api4.java.algorithm.ISolutionCandidateIterator<I,​O>
    A template for algorithms that iterate over solution candidates. By default, if this algorithm is called, it returns the first solution it finds.
    • Constructor Detail

      • ASolutionCandidateIterator

        public ASolutionCandidateIterator​(I input)
    • Method Detail

      • nextSolutionCandidate

        public O nextSolutionCandidate()
                                throws java.lang.InterruptedException,
                                       org.api4.java.algorithm.exceptions.AlgorithmExecutionCanceledException,
                                       org.api4.java.algorithm.exceptions.AlgorithmTimeoutedException,
                                       org.api4.java.algorithm.exceptions.AlgorithmException
        Specified by:
        nextSolutionCandidate in interface org.api4.java.algorithm.ISolutionCandidateIterator<I,​O>
        Throws:
        java.lang.InterruptedException
        org.api4.java.algorithm.exceptions.AlgorithmExecutionCanceledException
        org.api4.java.algorithm.exceptions.AlgorithmTimeoutedException
        org.api4.java.algorithm.exceptions.AlgorithmException
      • nextSolutionCandidateEvent

        public org.api4.java.algorithm.events.result.ISolutionCandidateFoundEvent<O> nextSolutionCandidateEvent()
                                                                                                         throws java.lang.InterruptedException,
                                                                                                                org.api4.java.algorithm.exceptions.AlgorithmExecutionCanceledException,
                                                                                                                org.api4.java.algorithm.exceptions.AlgorithmTimeoutedException,
                                                                                                                org.api4.java.algorithm.exceptions.AlgorithmException
        Specified by:
        nextSolutionCandidateEvent in interface org.api4.java.algorithm.ISolutionCandidateIterator<I,​O>
        Throws:
        java.lang.InterruptedException
        org.api4.java.algorithm.exceptions.AlgorithmExecutionCanceledException
        org.api4.java.algorithm.exceptions.AlgorithmTimeoutedException
        org.api4.java.algorithm.exceptions.AlgorithmException
      • call

        public O call()
               throws java.lang.InterruptedException,
                      org.api4.java.algorithm.exceptions.AlgorithmExecutionCanceledException,
                      org.api4.java.algorithm.exceptions.AlgorithmTimeoutedException,
                      org.api4.java.algorithm.exceptions.AlgorithmException
        Specified by:
        call in interface java.util.concurrent.Callable<I>
        Specified by:
        call in interface org.api4.java.algorithm.IAlgorithm<I,​O>
        Throws:
        java.lang.InterruptedException
        org.api4.java.algorithm.exceptions.AlgorithmExecutionCanceledException
        org.api4.java.algorithm.exceptions.AlgorithmTimeoutedException
        org.api4.java.algorithm.exceptions.AlgorithmException
      • collectAllSolutions

        public java.util.List<O> collectAllSolutions()
                                              throws java.lang.InterruptedException,
                                                     org.api4.java.algorithm.exceptions.AlgorithmExecutionCanceledException,
                                                     java.util.concurrent.TimeoutException,
                                                     org.api4.java.algorithm.exceptions.AlgorithmException
        Gathers all solutions that exist
        Returns:
        Throws:
        java.lang.InterruptedException
        org.api4.java.algorithm.exceptions.AlgorithmExecutionCanceledException
        java.util.concurrent.TimeoutException
        org.api4.java.algorithm.exceptions.AlgorithmException