source: trunk/quest-ui-core/src/main/java/de/ugoe/cs/quest/commands/usage/CMDgenerateFixedLengthSequences.java @ 733

Last change on this file since 733 was 733, checked in by sherbold, 12 years ago
  • refactored command packages in quest-ui-core
  • Property svn:mime-type set to text/plain
File size: 2.7 KB
Line 
1package de.ugoe.cs.quest.commands.usage;
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.DrawFromAllSequencesGenerator;
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 all sequences of a given length.
18 * </p>
19 *
20 * @author Steffen Herbold
21 * @version 1.0
22 */
23public class CMDgenerateFixedLengthSequences 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 minLength;
35                int maxLength;
36                boolean all = true;
37                int numSequences = -1;
38                boolean validEnd = true;
39                try {
40                        modelname = (String) parameters.get(0);
41                        sequencesName = (String) parameters.get(1);
42                        minLength = Integer.parseInt((String) parameters.get(2));
43                        maxLength = Integer.parseInt((String) parameters.get(3));
44                        if (parameters.size() >= 5) {
45                                all = Boolean.parseBoolean((String) parameters.get(4));
46                        }
47                        if (parameters.size() >= 6) {
48                                numSequences = Integer.parseInt((String) parameters.get(5));
49                        }
50                        if (parameters.size() >= 7) {
51                                validEnd = Boolean.parseBoolean((String) parameters.get(6));
52                        }
53                } catch (Exception e) {
54                        throw new InvalidParameterException();
55                }
56
57                IStochasticProcess model = null;
58                Object dataObject = GlobalDataContainer.getInstance()
59                                .getData(modelname);
60                if (dataObject == null) {
61                        CommandHelpers.objectNotFoundMessage(modelname);
62                        return;
63                } else if (!(dataObject instanceof IStochasticProcess)) {
64                        CommandHelpers.objectNotType(modelname, "IStochasticProcess");
65                        return;
66                }
67                model = (IStochasticProcess) dataObject;
68                DrawFromAllSequencesGenerator generator = new DrawFromAllSequencesGenerator(
69                                numSequences, minLength, maxLength, validEnd, all);
70                Collection<List<Event>> sequences = generator
71                                .generateTestSuite(model);
72
73                if (GlobalDataContainer.getInstance().addData(sequencesName, sequences)) {
74                        CommandHelpers.dataOverwritten(sequencesName);
75                }
76                Console.println("" + sequences.size() + " sequences generated");
77        }
78
79        /*
80         * (non-Javadoc)
81         *
82         * @see de.ugoe.cs.util.console.Command#help()
83         */
84        @Override
85        public String help() {
86                return "generateFixedLengthSequences <modelname> <sequencesName> <minlenght> <maxlength> {<all>} {<numSequences>} {<validEnd>}";
87        }
88
89}
Note: See TracBrowser for help on using the repository browser.