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

Last change on this file since 667 was 667, checked in by sherbold, 12 years ago

*moved GlobalDataContainer? from quest-ui-core to java-utils

  • Property svn:mime-type set to text/plain
File size: 1.9 KB
Line 
1package de.ugoe.cs.quest.ui.commands;
2
3import java.security.InvalidParameterException;
4import java.util.List;
5
6import de.ugoe.cs.quest.CommandHelpers;
7import de.ugoe.cs.quest.usageprofiles.FirstOrderMarkovModel;
8import de.ugoe.cs.quest.usageprofiles.HighOrderMarkovModel;
9import de.ugoe.cs.quest.usageprofiles.ModelFlattener;
10import de.ugoe.cs.util.console.Command;
11import de.ugoe.cs.util.console.GlobalDataContainer;
12
13/**
14 * <p>
15 * Command to flatten high-order models and create first-order markov models
16 * with the same stochastic properties.
17 * </p>
18 *
19 * @author Steffen Herbold
20 * @version 1.0
21 */
22public class CMDflattenModel implements Command {
23
24        /*
25         * (non-Javadoc)
26         *
27         * @see de.ugoe.cs.util.console.Command#run(java.util.List)
28         */
29        @Override
30        public void run(List<Object> parameters) {
31                String modelname;
32                String modelnameFOM;
33
34                try {
35                        modelname = (String) parameters.get(0);
36                        modelnameFOM = (String) parameters.get(1);
37                } catch (Exception e) {
38                        throw new InvalidParameterException();
39                }
40
41                Object dataObject = GlobalDataContainer.getInstance()
42                                .getData(modelname);
43                if (dataObject == null) {
44                        CommandHelpers.objectNotFoundMessage(modelname);
45                        return;
46                }
47                if (!(dataObject instanceof HighOrderMarkovModel)) {
48                        CommandHelpers.objectNotType(modelname, "HighOrderMarkovModel");
49                        return;
50                }
51
52                HighOrderMarkovModel model = (HighOrderMarkovModel) dataObject;
53                ModelFlattener flattener = new ModelFlattener();
54                FirstOrderMarkovModel modelFOM = flattener
55                                .flattenHighOrderMarkovModel(model);
56
57                if (GlobalDataContainer.getInstance().addData(modelnameFOM, modelFOM)) {
58                        CommandHelpers.dataOverwritten(modelnameFOM);
59                }
60        }
61
62        /*
63         * (non-Javadoc)
64         *
65         * @see de.ugoe.cs.util.console.Command#help()
66         */
67        @Override
68        public String help() {
69                return "flattenModel <modelname> <modelname_flattened>";
70        }
71}
Note: See TracBrowser for help on using the repository browser.