b60cb4501457ad4bfad618d49072b9acd6c6b015
[smartthings-infrastructure.git] / Methods / subscribe.groovy
1 /////////////////////////////////////////////////////////////////////
2 ////subscribe(obj, func)
3 def subscribe(Object obj, Closure FunctionToCall) {
4         if (obj == app) {
5                 objectList.add(obj)
6                 eventList.add("Touched")
7                 valueList.add("")
8                 functionList.add(FunctionToCall)
9         } else if (obj == location) {
10                 objectList.add(obj)
11                 eventList.add("Location")
12                 valueList.add("")
13                 functionList.add(FunctionToCall)
14         }
15 }
16
17 ////subscribe(obj, event, func)
18 def subscribe(Object obj, String event, Closure FunctionToCall) {
19     if (event == "tamper.tampered") {
20        event = "contact"      //This really should be its own name
21     } else if ((event == "mode")||(event == "mode.away")||(event == "mode.home")||(event == "mode.night")) {
22        //This really should be fixed also...
23        event = "Location"
24     }       
25     
26     int dot = event.indexOf('.')
27     String name = ""
28     String value = ""
29     if (dot != -1) {
30       name = event.substring(0, dot)
31       value = event.substring(dot + 1)
32     } else {
33       name = event
34     }
35
36     objectList.add(obj)
37     eventList.add(name)
38     functionList.add(FunctionToCall)
39     valueList.add(value)
40 }
41 ////subscribe(obj, event, nameOfFunc)
42 def subscribe(Object obj, String event, String FunctionToCall) {
43     if (event == "tamper.tampered") {
44        event = "contact"      //This really should be its own name
45     } else if ((event == "mode")||(event == "mode.away")||(event == "mode.home")||(event == "mode.night")) {
46        event = "Location"
47     }       
48
49     int dot = event.indexOf('.')
50     String name = ""
51     String value = ""
52     if (dot != -1) {
53       name = event.substring(0, dot)
54       value = event.substring(dot + 1)
55     } else {
56       name = event
57     }
58
59     objectList.add(obj)
60     eventList.add(name)
61     functionList.add(FunctionToCall)
62     valueList.add(value)
63 }
64
65 ////subscribe(obj, event, func, data)
66 def subscribe(Object obj, String event, Closure FunctionToCall, LinkedHashMap metaData) {
67         subscribe(obj, event, FunctionToCall)
68 }