Author: mes
Date: 2011-09-21 16:05:48 -0700 (Wed, 21 Sep 2011)
New Revision: 26917
Modified:
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/sif/Interaction.java
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/sif/SIFNetworkReader.java
core3/impl/trunk/io-impl/impl/src/test/java/org/cytoscape/io/internal/read/sif/InteractionTest.java
Log:
fixed interaction to use faster tokenizer
Modified:
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/sif/Interaction.java
===================================================================
---
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/sif/Interaction.java
2011-09-21 22:59:09 UTC (rev 26916)
+++
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/sif/Interaction.java
2011-09-21 23:05:48 UTC (rev 26917)
@@ -33,31 +33,35 @@
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Pattern;
+import java.util.StringTokenizer;
/**
* Utility class for representing one line of SIF file.
*/
final class Interaction {
- private final String source;
+ private String source;
private List<String> targets;
private String interactionType;
- Interaction(final String rawText, final Pattern delimiterPattern) {
- final String[] values = delimiterPattern.split(rawText);
- if (values.length < 1)
- throw new IllegalArgumentException("Invalid entry.");
-
- source = values[0].trim();
+ Interaction(final String rawText, final String delimiter) {
+ final StringTokenizer strtok = new StringTokenizer(rawText, delimiter);
+ int counter = 0;
targets = new ArrayList<String>();
- if (values.length > 2) {
- interactionType = values[1].trim();
- for (int i = 2; i < values.length; i++)
- targets.add(values[i].trim());
- }
+ while (strtok.hasMoreTokens()) {
+ if (counter == 0)
+ source = strtok.nextToken().trim();
+ else if (counter == 1)
+ interactionType = strtok.nextToken().trim();
+ else
+ targets.add(strtok.nextToken().trim());
+
+ counter++;
+ }
}
+
/**
* @return The source node identifier string.
*/
Modified:
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/sif/SIFNetworkReader.java
===================================================================
---
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/sif/SIFNetworkReader.java
2011-09-21 22:59:09 UTC (rev 26916)
+++
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/sif/SIFNetworkReader.java
2011-09-21 23:05:48 UTC (rev 26917)
@@ -62,9 +62,8 @@
public class SIFNetworkReader extends AbstractNetworkReader {
private static final Logger logger =
LoggerFactory.getLogger(SIFNetworkReader.class);
- private static final String DEF_DELIMITER = "\\s+";
private static final String TAB = "\t";
- private String delimiter = DEF_DELIMITER;
+ private String delimiter = " "; // single space
private final CyEventHelper eventHelper;
private final CyLayoutAlgorithmManager layouts;
@@ -109,8 +108,7 @@
final String firstLine = br.readLine();
if (firstLine.contains(TAB))
delimiter = TAB;
- final Pattern delimiterPattern = Pattern.compile(delimiter);
- createEdge(new Interaction(firstLine.trim(), delimiterPattern),
network, nMap);
+ createEdge(new Interaction(firstLine.trim(), delimiter),
network, nMap);
while ((line = br.readLine()) != null) {
if (cancelled) {
@@ -126,7 +124,7 @@
continue;
try {
- final Interaction itr = new Interaction(line,
delimiterPattern);
+ final Interaction itr = new Interaction(line,
delimiter);
createEdge(itr, network, nMap);
} catch (Exception e) {
// Simply ignore invalid lines.
Modified:
core3/impl/trunk/io-impl/impl/src/test/java/org/cytoscape/io/internal/read/sif/InteractionTest.java
===================================================================
---
core3/impl/trunk/io-impl/impl/src/test/java/org/cytoscape/io/internal/read/sif/InteractionTest.java
2011-09-21 22:59:09 UTC (rev 26916)
+++
core3/impl/trunk/io-impl/impl/src/test/java/org/cytoscape/io/internal/read/sif/InteractionTest.java
2011-09-21 23:05:48 UTC (rev 26917)
@@ -36,7 +36,7 @@
public class InteractionTest {
- private Pattern delim = Pattern.compile(" ");
+ private String delim = " ";
@Test
public void test3ArgCtor() throws Exception {
--
You received this message because you are subscribed to the Google Groups
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/cytoscape-cvs?hl=en.