public static SearchTermAndList getTermAndTermList( String searchTerm, boolean useAlias, boolean tabDelimited) { SearchTermAndList terms; // first see if the item is an expression term or regular term if (searchTerm.trim().endsWith(")") && searchTerm.trim().startsWith("(")) { // this is an expression, so need to parse string terms = new SearchTermAndList(searchTerm.trim()); int startIndex = 1; int phraseIndex = searchTerm.trim().indexOf(")"); while (startIndex > 0 && phraseIndex > 0) { String[] termInfo = getTermAliasList(searchTerm.trim().substring(startIndex, phraseIndex), false); terms.addItems(termInfo); startIndex = searchTerm.trim().indexOf("(", phraseIndex) + 1; phraseIndex = searchTerm.trim().indexOf(")", startIndex); } } else { // regular term with possible aliases String[] finalItems = getTermAliasList(searchTerm, tabDelimited); terms = new SearchTermAndList(finalItems[0]); if (useAlias) { terms.addItems(finalItems); } else { terms.addItems(finalItems[0]); } } return terms; }