469c3c007f130edcf8ed444f37977d96914fb496
[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) {
34                 return smartThings[0].eventsSince()
35         }
36         
37         def statesSince(String info, Date dateObj) {
38                 return smartThings[0].statesSince()
39         }
40
41         // Methods to return states of the devices
42         def propertyMissing(String currentProperty) {
43                 if (smartThings[0] == null)
44                         return
45                 List tmpValues = new ArrayList()
46                 tmpValues.add(smartThings[0].propertyMissing(currentProperty))
47                 return tmpValues
48         }
49
50         def currentState(String deviceFeature) {
51                 List tmpValues = new ArrayList()
52                 tmpValues.add(smartThings[0].currentState(deviceFeature))
53                 return tmpValues
54         }
55
56         def currentValue(String deviceFeature) {
57                 List tmpValues = new ArrayList()
58                 tmpValues.add(smartThings[0].currentValue(deviceFeature))
59                 return tmpValues
60         }
61
62         def latestValue(String deviceFeature) {
63                 List tmpValues = new ArrayList()
64                 tmpValues.add(smartThings[0].latestValue(deviceFeature))
65                 return tmpValues
66         }
67
68         def getAt(int ix) {
69                 smartThings[ix]
70         }
71 }