source: trunk/quest-plugin-mfc/src/main/java/de/ugoe/cs/quest/plugin/mfc/commands/CMDparseXML.java @ 766

Last change on this file since 766 was 766, checked in by sherbold, 12 years ago
File size: 2.1 KB
Line 
1package de.ugoe.cs.quest.plugin.mfc.commands;
2
3import java.util.Collection;
4import java.util.List;
5
6import de.ugoe.cs.quest.CommandHelpers;
7import de.ugoe.cs.quest.eventcore.Event;
8import de.ugoe.cs.quest.eventcore.guimodel.GUIModel;
9import de.ugoe.cs.quest.plugin.mfc.MFCLogParser;
10import de.ugoe.cs.util.console.Command;
11import de.ugoe.cs.util.console.GlobalDataContainer;
12
13/**
14 * <p>
15 * Command to parse an XML file with sessions monitored by EventBench's MFCUsageMonitor.
16 * </p>
17 *
18 * @author Steffen Herbold
19 * @version 1.0
20 */
21public class CMDparseXML implements Command {
22
23    /*
24     * (non-Javadoc)
25     *
26     * @see de.ugoe.cs.util.console.Command#help()
27     */
28    @Override
29    public String help() {
30        return "parseXML <filename> {<sequencesName>} {<countMessageOccurences>}";
31    }
32
33    /*
34     * (non-Javadoc)
35     *
36     * @see de.ugoe.cs.util.console.Command#run(java.util.List)
37     */
38    @Override
39    public void run(List<Object> parameters) {
40        String filename;
41        String sequencesName = "sequences";
42        boolean countMessageOccurences = false;
43
44        try {
45            filename = (String) parameters.get(0);
46            if (parameters.size() >= 2) {
47                sequencesName = (String) parameters.get(1);
48            }
49            if (parameters.size() >= 3) {
50                countMessageOccurences = Boolean.parseBoolean((String) parameters.get(2));
51            }
52        }
53        catch (Exception e) {
54            throw new IllegalArgumentException();
55        }
56
57        MFCLogParser parser = new MFCLogParser(countMessageOccurences);
58        parser.parseFile(filename);
59
60        Collection<List<Event>> sequences = parser.getSequences();
61
62        GUIModel targets = parser.getGuiModel();
63
64        if (GlobalDataContainer.getInstance().addData(sequencesName, sequences)) {
65            CommandHelpers.dataOverwritten(sequencesName);
66        }
67        if (GlobalDataContainer.getInstance().addData(sequencesName + "_targets", targets)) {
68            CommandHelpers.dataOverwritten(sequencesName + "_targets");
69        }
70    }
71
72}
Note: See TracBrowser for help on using the repository browser.