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

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