package moduls.frm; import java.io.Serializable; import java.util.LinkedHashMap; import java.util.LinkedList; import importExport.DadesExternes; import moduls.frm.children.FrmSearchResults; import definicions.Cluster; import definicions.MatriuDistancies; import genomeObjects.CSDisplayData; public class QueryData implements Serializable{ //Fields private boolean AnnotationSearch; private String[] Queries = null; private String Name; private String ContextSetName; private String DissimilarityType; private String ClusteringType; private PostSearchAnalyses AnalysesList; private CSDisplayData CSD; private String OSName; //Output- type fields private int[] Clusters = null; private MatriuDistancies multiDendro; private transient FrmSearchResults SRF; private DadesExternes de; private Cluster OutputCluster = null; //AND-statement fields public LinkedList<String> ANDStatements = new LinkedList<String>(); public LinkedList<LinkedList<Integer>> ParsedANDStatementsCluster; public LinkedList<LinkedList<String>> ParsedANDStatementsAnnotation; public boolean ANDStatementsParsed = false; public boolean ifAndOnlyif = false; public LinkedList<Integer> ClustersAsList; public LinkedList<String> QueriesAsList; //update AND statments parsing public LinkedHashMap<Integer,Integer> ANDClustersHash = new LinkedHashMap<Integer,Integer>(); public LinkedHashMap<String,Integer> ANDAnnotationsHash = new LinkedHashMap<String,Integer>(); //Constructor public QueryData(){ } // === Method ====// public void BuildANDStatements(String Type){ //transform each unparsed AND statement into a list of associated items for (String s : ANDStatements){ //split the string by components String[] Comps = s.split("\\$\\$"); //parse statements into linked lists. for (String s1 : Comps){ if (Type.equals("cluster")){ //check hash + initialize count int Key = Integer.parseInt(s1.trim()); int Count = 1; //determine appropriate count + increment counter if (ANDClustersHash.get(Key) != null){ Count = ANDClustersHash.get(Key); Count++; } ANDClustersHash.put(Key,Count); } else { //check hash + initialize count String Key = s1.trim().toUpperCase(); int Count = 1; //determine appropriate count + increment counter if (ANDAnnotationsHash.get(Key) != null){ Count = ANDAnnotationsHash.get(Key); Count++; } ANDAnnotationsHash.put(Key,Count); } } } //note that these statements have been parsed ANDStatementsParsed = true; } //=== SETTERS AND GETTERS ==========// public String getOSName() { return OSName; } public void setOSName(String oSName) { OSName = oSName; } public boolean isAnnotationSearch() { return AnnotationSearch; } public void setAnnotationSearch(boolean annotationSearch) { AnnotationSearch = annotationSearch; } public String[] getQueries() { return Queries; } public void setQueriesAndList(String[] queries) { Queries = queries; //build list if (queries != null){ QueriesAsList = new LinkedList<String>(); for (String s : Queries){ QueriesAsList.add(s); } } } public int[] getClusters() { return Clusters; } public void setClustersAndList(int[] clusters) { Clusters = clusters; //build list if (clusters != null){ ClustersAsList = new LinkedList<Integer>(); for (Integer x : Clusters){ ClustersAsList.add(x); } } } public String getContextSetName() { return ContextSetName; } public void setContextSetName(String contextSetName) { ContextSetName = contextSetName; } public String getDissimilarityType() { return DissimilarityType; } public void setDissimilarityType(String dissimilarityType) { DissimilarityType = dissimilarityType; } public String getName() { return Name; } public void setName(String name) { Name = name; } public PostSearchAnalyses getAnalysesList() { return AnalysesList; } public void setAnalysesList(PostSearchAnalyses analysesList) { AnalysesList = analysesList; } public CSDisplayData getCSD() { return CSD; } public void setCSD(CSDisplayData cSD) { CSD = cSD; } public String getClusteringType() { return ClusteringType; } public void setClusteringType(String clusteringType) { ClusteringType = clusteringType; } public MatriuDistancies getMultiDendro() { return multiDendro; } public void setMultiDendro(MatriuDistancies multiDendro) { this.multiDendro = multiDendro; } public FrmSearchResults getSRF() { return SRF; } public void setSRF(FrmSearchResults sRF) { SRF = sRF; } public DadesExternes getDe() { return de; } public void setDe(DadesExternes de) { this.de = de; } public Cluster getOutputCluster() { return OutputCluster; } public void setOutputCluster(Cluster outputCluster) { OutputCluster = outputCluster; } }