*/
package jalview.ws;
+import java.util.Locale;
+
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Enumeration;
import java.util.Map;
import java.util.StringTokenizer;
import java.util.Vector;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
import jalview.analysis.AlignSeq;
import jalview.api.FeatureSettingsModelI;
*/
void addSeqId(SequenceI seq, String key)
{
- key = key.toUpperCase();
+ key = key.toUpperCase(Locale.ROOT);
Vector<SequenceI> seqs;
if (seqRefs.containsKey(key))
AlignmentI retrieved = null;
try
{
- if (Cache.log.isDebugEnabled())
+ if (Cache.isDebugEnabled())
{
- Cache.log.debug("Querying " + dbsource.getDbName()
+ Cache.debug("Querying " + dbsource.getDbName()
+ " with : '" + queryString.toString() + "'");
}
retrieved = dbsource.getSequenceRecords(queryString.toString());
DBRefEntry upref = uprefs.get(j);
addSeqId(sequence, upref.getAccessionId());
queries.addElement(
- upref.getAccessionId().toUpperCase());
+ upref.getAccessionId().toUpperCase(Locale.ROOT));
}
}
else
{
+ Pattern possibleIds = Pattern.compile("[A-Za-z0-9_]+");
// generate queries from sequence ID string
- StringTokenizer st = new StringTokenizer(sequence.getName(),
- "|");
- while (st.hasMoreTokens())
+ Matcher tokens = possibleIds.matcher(sequence.getName());
+ int p=0;
+ while (tokens.find(p))
{
- String token = st.nextToken();
+ String token = tokens.group();
+ p = tokens.end();
UPEntry[] presp = null;
if (picrClient != null)
{
"Validated ID against PICR... (for what its worth):"
+ token);
addSeqId(sequence, token);
- queries.addElement(token.toUpperCase());
+ queries.addElement(token.toUpperCase(Locale.ROOT));
}
else
{
// System.out.println("Not querying source with
// token="+token+"\n");
addSeqId(sequence, token);
- queries.addElement(token.toUpperCase());
+ queries.addElement(token.toUpperCase(Locale.ROOT));
}
}
}
DBRefEntry ref = entryRefs.get(j);
String accessionId = ref.getAccessionId();
// match up on accessionId
- if (seqRefs.containsKey(accessionId.toUpperCase()))
+ if (seqRefs.containsKey(accessionId.toUpperCase(Locale.ROOT)))
{
Vector<SequenceI> seqs = seqRefs.get(accessionId);
for (int jj = 0; jj < seqs.size(); jj++)
// sequenceMatches now contains the set of all sequences associated with
// the returned db record
final String retrievedSeqString = retrievedSeq.getSequenceAsString();
- String entrySeq = retrievedSeqString.toUpperCase();
+ String entrySeq = retrievedSeqString.toUpperCase(Locale.ROOT);
for (int m = 0; m < sequenceMatches.size(); m++)
{
sequence = sequenceMatches.elementAt(m);
boolean remoteEnclosesLocal = false;
String nonGapped = AlignSeq
.extractGaps("-. ", sequence.getSequenceAsString())
- .toUpperCase();
+ .toUpperCase(Locale.ROOT);
int absStart = entrySeq.indexOf(nonGapped);
if (absStart == -1)
{
String ngAlsq = AlignSeq
.extractGaps("-. ",
alseqs[alsq].getSequenceAsString())
- .toUpperCase();
+ .toUpperCase(Locale.ROOT);
int oldstrt = alseqs[alsq].getStart();
alseqs[alsq].setStart(sequence.getSequenceAsString()
- .toUpperCase().indexOf(ngAlsq) + sequence.getStart());
+ .toUpperCase(Locale.ROOT).indexOf(ngAlsq) + sequence.getStart());
if (oldstrt != alseqs[alsq].getStart())
{
alseqs[alsq].setEnd(