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