source: trunk/quest-ui-core/src/main/java/de/ugoe/cs/quest/ui/commands/CMDgenerateRandomSequences.java @ 726

Last change on this file since 726 was 726, checked in by sherbold, 12 years ago
  • added manuals for the commands calcCoverage, calcEntropy, deleteObject, flattenModel, generateFixedLengthSequences, generateGreedy, generateHybrid, generateReplayfile, listSymbols, load, loadObject, modelSize, printDot, printTrieDot, save, saveObject, sequenceStatistics, showMarkovModel, showTime, showTrie, startFileListener, stopFileListener, trainDFA, trainPPM, and updateModel
  • Property svn:mime-type set to text/plain
File size: 2.7 KB
Line 
1package de.ugoe.cs.quest.ui.commands;
2
3import java.security.InvalidParameterException;
4import java.util.Collection;
5import java.util.List;
6
7import de.ugoe.cs.quest.CommandHelpers;
8import de.ugoe.cs.quest.eventcore.Event;
9import de.ugoe.cs.quest.testgeneration.RandomWalkGenerator;
10import de.ugoe.cs.quest.usageprofiles.IStochasticProcess;
11import de.ugoe.cs.util.console.Command;
12import de.ugoe.cs.util.console.Console;
13import de.ugoe.cs.util.console.GlobalDataContainer;
14
15/**
16 * <p>
17 * Command to generate random sessions.
18 * </p>
19 *
20 * @author Steffen Herbold
21 * @version 1.0
22 */
23public class CMDgenerateRandomSequences implements Command {
24
25        /*
26         * (non-Javadoc)
27         *
28         * @see de.ugoe.cs.util.console.Command#run(java.util.List)
29         */
30        @Override
31        public void run(List<Object> parameters) {
32                String modelname;
33                String sequencesName;
34                int numSessions;
35                int minLength = 0;
36                int maxLength = Integer.MAX_VALUE;
37                long maxIter;
38                boolean validEnd = true;
39                try {
40                        modelname = (String) parameters.get(0);
41                        sequencesName = (String) parameters.get(1);
42                        numSessions = Integer.parseInt((String) parameters.get(2));
43                        minLength = Integer.parseInt((String) parameters.get(3));
44                        maxLength = Integer.parseInt((String) parameters.get(4));
45                        maxIter = numSessions * 10;
46                        if (parameters.size() >= 5) {
47                                maxIter = Long.parseLong((String) parameters.get(5));
48                        }
49                        if (parameters.size() >= 6) {
50                                validEnd = Boolean.parseBoolean((String) parameters.get(6));
51                        }
52                } catch (Exception e) {
53                        throw new InvalidParameterException();
54                }
55
56                IStochasticProcess model = null;
57                Object dataObject = GlobalDataContainer.getInstance()
58                                .getData(modelname);
59                if (dataObject == null) {
60                        CommandHelpers.objectNotFoundMessage(modelname);
61                        return;
62                }
63                if (!(dataObject instanceof IStochasticProcess)) {
64                        CommandHelpers.objectNotType(modelname, "IStochasticProcess");
65                        return;
66                }
67                model = (IStochasticProcess) dataObject;
68
69                RandomWalkGenerator generator = new RandomWalkGenerator(numSessions,
70                                minLength, maxLength, validEnd, maxIter);
71                Collection<List<Event>> sequences = generator
72                                .generateTestSuite(model);
73
74                if (sequences.size() < numSessions) {
75                        Console.println("Only " + sequences.size()
76                                        + " unique sessions generated after " + maxIter
77                                        + " iterations");
78                }
79
80                if (GlobalDataContainer.getInstance().addData(sequencesName, sequences)) {
81                        CommandHelpers.dataOverwritten(sequencesName);
82                }
83        }
84
85        /*
86         * (non-Javadoc)
87         *
88         * @see de.ugoe.cs.util.console.Command#help()
89         */
90        @Override
91        public String help() {
92                return "generateRandomSequenecs <modelname> <sequencesName> <numSequences> <minlength> <maxlength> {<maxIter>} {<validEnd>}";
93        }
94
95}
Note: See TracBrowser for help on using the repository browser.