error handling for analyzer

This commit is contained in:
Branislav Stojkovic
2019-02-26 10:25:20 +01:00
parent 7cca8f86b2
commit 67761b1027
7 changed files with 15 additions and 12 deletions
@@ -47,8 +47,9 @@ public interface INetlistAnalyzer {
* @param netlists
* @param preferredOutput optional, needed only where there's more than one possible output node.
* @return
* @throws TreeException
*/
List<Summary> summarize(List<Netlist> netlists, Node preferredOutput);
List<Summary> summarize(List<Netlist> netlists, Node preferredOutput) throws TreeException;
/**
*
@@ -159,7 +159,7 @@ public class NetlistAnalyzer {
boolean canMerge = true;
unique = pathsToMerge.get(0).getChildren().get(backward ? i : pathsToMerge.get(0).getChildren().size() - i - 1);
for (Tree t : pathsToMerge) {
if (t.getChildren().size() <= i || !t.getChildren().get(backward ? 0 : pathsToMerge.get(0).getChildren().size() - 1).equals(unique)) {
if (t.getChildren().size() <= i || !t.getChildren().get(backward ? 0 : t.getChildren().size() - 1).equals(unique)) {
canMerge = false;
break;
}
Binary file not shown.
@@ -65,7 +65,7 @@ public class GuitarDiagramAnalyzer extends NetlistAnalyzer implements INetlistAn
return "Guitar";
}
public List<Summary> summarize(List<Netlist> netlists, Node preferredOutput) {
public List<Summary> summarize(List<Netlist> netlists, Node preferredOutput) throws TreeException {
List<Summary> summaries = new ArrayList<Summary>();
for (Netlist n : netlists)
summaries.add(summarize(n, preferredOutput));
@@ -73,7 +73,7 @@ public class GuitarDiagramAnalyzer extends NetlistAnalyzer implements INetlistAn
return summaries;
}
private Summary summarize(Netlist netlist, Node preferredOutput) {
private Summary summarize(Netlist netlist, Node preferredOutput) throws TreeException {
List<String> notes = new ArrayList<String>();
List<Group> jackTipGroups = findGroups(JACK_TYPES, "Tip", netlist);
List<Group> jackSleeveGroups = findGroups(JACK_TYPES, "Sleeve", netlist);
@@ -96,13 +96,8 @@ public class GuitarDiagramAnalyzer extends NetlistAnalyzer implements INetlistAn
// }
// }
try {
return new Summary(netlist, notes, constructTree(netlist));
} catch (TreeException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
return new Summary(netlist, notes, constructTree(netlist));
}
private Netlist findAndEliminatePots(Netlist netlist, Group jackTipGroup, Group jackSleeveGroup, List<String> notes) {
Binary file not shown.
Binary file not shown.
@@ -1707,7 +1707,14 @@ public class ActionFactory {
return;
}
List<Summary> res = summarizer.summarize(netlists, null);
List<Summary> res = null;
try {
res = summarizer.summarize(netlists, null);
} catch (Exception ex) {
swingUI.showMessage(ex.getMessage(), "Analyze " + summarizer.getName(), ISwingUI.ERROR_MESSAGE);
return;
}
if (res == null) {
swingUI.showMessage("The generated summary is empty, nothing to show.", "Analyze " + summarizer.getName(), ISwingUI.INFORMATION_MESSAGE);
return;