diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/core/NetworkParser.java b/src/main/java/de/hhu/ba/yoshikoWrapper/core/NetworkParser.java index 683e86d6066f052b4618214b93d7fb3620eef16a..3ee549796e15330ad808ce41da6f288ee838121b 100644 --- a/src/main/java/de/hhu/ba/yoshikoWrapper/core/NetworkParser.java +++ b/src/main/java/de/hhu/ba/yoshikoWrapper/core/NetworkParser.java @@ -39,14 +39,18 @@ public class NetworkParser { //Loop over edges for (CyEdge e : edges) { - CyRow edgeEntry = net.getRow(e); - //Parse editing costs double weight = deletionCostDefault; + + //Fetch entry and check if it exists + CyRow edgeEntry = net.getRow(e); + + //Check if there is a weight column defined, else skip if (weightColumn != null){ - System.out.println("Using column: "+weightColumn.getName()); - try { - //Find out if the weights are double or int + //Check if the column contains an entry for the respective edge + //It is possible, that there are missing entries + if (edgeEntry.getAllValues().containsKey(weightColumn.getName())){ + //Find out if the weights are double or integer and cast accordingly Class<?> weightType = weightColumn.getType(); if (weightType == Integer.class) { weight = (int)edgeEntry.get(weightColumn.getName(), weightType); @@ -54,14 +58,10 @@ public class NetworkParser { else if(weightType == Double.class) { weight = (double)edgeEntry.get(weightColumn.getName(), weightType); } - } - catch(Exception ex) { - ex.printStackTrace(); - //Invalid entry (no entry) - logger.info("No valid edit costs defined for: "+edgeEntry.get("name", String.class)+", falling back to default value!"); + } } - + //Parse Forbidden/Permanent markers boolean forbidden = false; boolean permanent = false;