Added convenience constructors for default snippets
[Mograsim.git] / net.mograsim.logic.model / src / net / mograsim / logic / model / snippets / highlevelstatehandlers / DefaultHighLevelStateHandler.java
1 package net.mograsim.logic.model.snippets.highlevelstatehandlers;
2
3 import net.mograsim.logic.model.model.components.submodels.SubmodelComponent;
4 import net.mograsim.logic.model.snippets.HighLevelStateHandler;
5 import net.mograsim.logic.model.snippets.SnippetDefinintion;
6 import net.mograsim.logic.model.snippets.SubmodelComponentSnippetSuppliers;
7
8 public class DefaultHighLevelStateHandler implements HighLevelStateHandler
9 {
10         public DefaultHighLevelStateHandler()
11         {
12                 this(null);
13         }
14
15         public DefaultHighLevelStateHandler(SubmodelComponent component)
16         {
17                 this(component, null);
18         }
19
20         @SuppressWarnings("unused") // we don't need the component; and params are always null
21         public DefaultHighLevelStateHandler(SubmodelComponent component, Void params)
22         {
23                 // nothing to do here
24         }
25
26         @Override
27         public Object getHighLevelState(String stateID)
28         {
29                 throw new IllegalArgumentException("No high level state with ID " + stateID);
30         }
31
32         @Override
33         public void setHighLevelState(String stateID, Object newState)
34         {
35                 throw new IllegalArgumentException("No high level state with ID " + stateID);
36         }
37
38         static
39         {
40                 SubmodelComponentSnippetSuppliers.highLevelStateHandlerSupplier.setSnippetSupplier(
41                                 DefaultHighLevelStateHandler.class.getCanonicalName(),
42                                 SnippetDefinintion.create(Void.class, DefaultHighLevelStateHandler::new));
43         }
44 }