1 /*
2  * Copyright (c) 2016 Helmut Neemann
3  * Use of this source code is governed by the GPL v3 license
4  * that can be found in the LICENSE file.
5  */
6 package de.neemann.digital.analyse.quinemc.primeselector;
7 
8 
9 import de.neemann.digital.analyse.quinemc.TableRow;
10 
11 import java.util.ArrayList;
12 import java.util.TreeSet;
13 
14 /**
15  * Represents an algorithm which chooses the final primes
16  */
17 public interface PrimeSelector {
18 
19     /**
20      * Selects the primes to use
21      *
22      * @param primes      the list to add the primes to
23      * @param primesAvail the available primes
24      * @param termIndices the indices
25      */
select(ArrayList<TableRow> primes, ArrayList<TableRow> primesAvail, TreeSet<Integer> termIndices)26     void select(ArrayList<TableRow> primes, ArrayList<TableRow> primesAvail, TreeSet<Integer> termIndices);
27 
28     /**
29      * @return all possible solutions
30      */
getAllSolutions()31     default ArrayList<ArrayList<TableRow>> getAllSolutions() {
32         return null;
33     }
34 
35 }
36