Adding SmartThing class and MutableInteger
[smartthings-infrastructure.git] / SmartThing / SmartThings.groovy
diff --git a/SmartThing/SmartThings.groovy b/SmartThing/SmartThings.groovy
new file mode 100644 (file)
index 0000000..aa54b7e
--- /dev/null
@@ -0,0 +1,66 @@
+//Create a class for SmartThings
+package SmartThing
+
+//Importing mutable integer class
+import MutableInteger.MutableInteger
+
+class SmartThings {
+       List smartThings = new ArrayList()
+
+       // Methods for closures
+       def count(Closure Input) {
+               smartThings.count(Input)
+       }
+               
+       def size() {
+               smartThings.size()
+       }
+               
+       def each(Closure Input) {
+               smartThings.each(Input)
+       }
+               
+       def find(Closure Input) {
+               smartThings.find(Input)
+       }
+               
+       def sort(Closure Input) {
+               smartThings.sort(Input)
+       }
+               
+       def collect(Closure Input) {
+               smartThings.collect(Input)
+       }
+
+       // Methods to handle events
+       def eventsSince(Date dateObj) {
+               return smartThings[0].eventsSince()
+       }
+       
+       def statesSince(String info, Date dateObj) {
+               return smartThings[0].statesSince()
+       }
+
+       // Methods to return states of the devices
+       def currentState(String deviceFeature) {
+               List tmpValues = new ArrayList()
+               tmpValues.add(smartThings[0].currentState(deviceFeature))
+               return tmpValues
+       }
+
+       def currentValue(String deviceFeature) {
+               List tmpValues = new ArrayList()
+               tmpValues.add(smartThings[0].currentValue(deviceFeature))
+               return tmpValues
+       }
+
+       def latestValue(String deviceFeature) {
+               List tmpValues = new ArrayList()
+               tmpValues.add(smartThings[0].latestValue(deviceFeature))
+               return tmpValues
+       }
+
+       def getAt(int ix) {
+               smartThings[ix]
+       }
+}