Fixing bug in Mobile Presence class
[smartthings-infrastructure.git] / SmartThing / SmartThings.groovy
1 //Create a class for SmartThings
2 package SmartThing
3
4 public class SmartThings {
5         List smartThings = new ArrayList()
6
7         // Methods for closures
8         def count(Closure Input) {
9                 smartThings.count(Input)
10         }
11                 
12         def size() {
13                 smartThings.size()
14         }
15                 
16         def each(Closure Input) {
17                 smartThings.each(Input)
18         }
19                 
20         def find(Closure Input) {
21                 smartThings.find(Input)
22         }
23                 
24         def sort(Closure Input) {
25                 smartThings.sort(Input)
26         }
27                 
28         def collect(Closure Input) {
29                 smartThings.collect(Input)
30         }
31
32         // Methods to handle events
33         def eventsSince(Date dateObj, LinkedHashMap info) {
34                 return smartThings[0].eventsSince()
35         }
36
37         def eventsSince(Date dateObj) {
38                 return smartThings[0].eventsSince()
39         }
40         
41         def statesSince(String info, Date dateObj) {
42                 return smartThings[0].statesSince()
43         }
44
45         // Methods to return states of the devices
46         def propertyMissing(String currentProperty) {
47                 if (smartThings[0] == null)
48                         return
49                 List tmpValues = new ArrayList()
50                 tmpValues.add(smartThings[0].propertyMissing(currentProperty))
51                 return tmpValues
52         }
53
54         def currentState(String deviceFeature) {
55                 List tmpValues = new ArrayList()
56                 tmpValues.add(smartThings[0].currentState(deviceFeature))
57                 return tmpValues
58         }
59
60         def currentValue(String deviceFeature) {
61                 List tmpValues = new ArrayList()
62                 tmpValues.add(smartThings[0].currentValue(deviceFeature))
63                 return tmpValues
64         }
65
66         def latestValue(String deviceFeature) {
67                 List tmpValues = new ArrayList()
68                 tmpValues.add(smartThings[0].latestValue(deviceFeature))
69                 return tmpValues
70         }
71
72         def getAt(int ix) {
73                 smartThings[ix]
74         }
75 }