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

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