Fixing the previous commit bugs! Adding required classes + required methods
[smartthings-infrastructure.git] / Button / Button.groovy
1 //Create a class for button
2 package Button
3 import Timer.SimulatedTimer
4
5 //JPF's Verify API
6 import gov.nasa.jpf.vm.Verify
7
8 public class Button {
9         private String id
10         private String label
11         private String displayName
12         private String button
13         private int numberOfButtons
14
15         Button(String id, String label, String displayName, String button, int numberOfButtons) {
16                 this.id = id
17                 this.label = label
18                 this.displayName = displayName
19                 this.button = button
20                 this.numberOfButtons = numberOfButtons
21         }
22
23         def setValue(LinkedHashMap eventDataMap) {
24                 button = eventDataMap["value"]
25                 println("the button is $button!")
26         }
27
28         def eventsSince() {
29                 def evtHeld = [[name: "button", value: "held", deviceId: "buttonID0", descriptionText: "",
30                                 displayed: true, linkText: "", isStateChange: false, unit: "", data: '{"info": "info"}']]
31                 def evtPushed = [[name: "button", value: "pushed", deviceId: "buttonID0", descriptionText: "",
32                                   displayed: true, linkText: "", isStateChange: false, unit: "", data: '{"info": "info"}']]
33                 def init = Verify.getInt(0,4)
34                 def evtToSend = []
35                 if (init == 0) {//return empty set
36                         return evtToSend
37                 } else if (init == 1) {//send one held event
38                         evtHeld.each{
39                                 evtToSend.add(it)
40                         }
41                         return evtToSend
42                 } else if (init == 2) {//send two held events
43                         evtHeld.each{
44                                 evtToSend.add(it)
45                         }
46                         evtHeld.each{
47                                 evtToSend.add(it)
48                         }
49                         return evtToSend
50                 } else if (init == 3) {//send one pushed event
51                         evtPushed.each{
52                                 evtToSend.add(it)
53                         }
54                         return evtToSend
55                 } else if (init == 4) {//send two pushed events
56                         evtPushed.each{
57                                 evtToSend.add(it)
58                         }
59                         evtPushed.each{
60                                 evtToSend.add(it)
61                         }
62                         return evtToSend
63                 }
64         }
65 }