source: trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/windows/commands/CMDparseXML.java @ 297

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