package aliview.sequencelist;
import java.awt.Point;
import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.Logger;
import aliview.sequences.FileSequence;
public class FindObject {
private static final Logger logger = Logger.getLogger(FindObject.class);
String searchTerm;
int nextFindSeqNumber;
int nextFindStartPos;
private int position;
private int seqIndex;
private boolean isFound;
private List<Integer> foundIndices = new ArrayList<Integer>();
private boolean findAll;
private Point foundPos;
private boolean findInNames;
public FindObject(String searchTerm) {
this(searchTerm, false);
}
public FindObject(String searchTerm, boolean findAll) {
this.searchTerm = searchTerm;
this.findAll = findAll;
}
public String getSearchTerm() {
return searchTerm;
}
public int getNextFindSeqNumber() {
return nextFindSeqNumber;
}
public void setNextFindSeqNumber(int nextFindSeqNumber) {
this.nextFindSeqNumber = nextFindSeqNumber;
}
public void setFoundPos(int position, int sequenceIndex) {
this.foundPos = new Point(position, sequenceIndex);
}
public Point getFoundPos() {
return foundPos;
}
public int getNextFindStartPos() {
return nextFindStartPos;
}
public void setNextFindStartPos(int pos) {
this.nextFindStartPos = pos;
}
public void setIsFound(boolean isFound) {
this.isFound = isFound;
}
public boolean isFound() {
return isFound;
}
public String getRegexSearchTerm() {
String regex = "";
for(int n = 0; n < searchTerm.length(); n++){
regex += searchTerm.charAt(n);
// add one or many gap between each character to be found
regex +="\\-*";
}
return regex;
}
public List<Integer> getFoundIndices() {
return this.foundIndices;
}
public void setFindAll(boolean b) {
this.findAll = b;
}
public boolean isFindAll() {
return this.findAll;
}
public void addFoundNameIndex(int n) {
foundIndices.add(n);
}
public void setFoundNameIndex(int n) {
foundIndices.clear();
foundIndices.add(n);
}
public int getNextNameFindIndex() {
logger.info(foundIndices.size());
if(foundIndices.isEmpty()){
return 0;
}else{
// last found
int lastFound = foundIndices.get(foundIndices.size() - 1).intValue();
return lastFound + 1;
}
}
public void clearIndices() {
foundIndices.clear();
}
public boolean findNextInNames(){
return findInNames;
}
public boolean findNextInSequences() {
return !findInNames;
}
public void setFindNextInNames(boolean b) {
this.findInNames = b;
}
public void setFindNextInSequences(boolean b) {
this.findInNames = !b;
}
}