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