3 #Create directory for files to append in the main file
5 #Extract information from preferences and subscribe method to create required objects
6 os.system("python Extractor/ExtractorScript.py")
9 Out = open("main.groovy", "w+")
10 GlobalVariablesBothApps = open("GlobalVariables/"+"GlobalVariablesBothApps.groovy", "r")
11 eventSimulator = open("eventSimulator/"+"eventSimulator.groovy", "r")
14 GlobalVariablesEachApp = open("GlobalVariables/"+"GlobalVariablesEachApp.groovy", "r")
15 setLocationMode = open("Methods/"+"setLocationMode.groovy", "r")
16 subscribe = open("Methods/"+"subscribe.groovy", "r")
17 runIn = open("Methods/"+"runIn.groovy", "r")
18 unschedule = open("Methods/"+"unschedule.groovy", "r")
19 sendNotificationToContacts = open("Methods/"+"sendNotificationToContacts.groovy", "r")
20 sendSms = open("Methods/"+"sendSms.groovy", "r")
21 sendPush = open("Methods/"+"sendPush.groovy", "r")
22 eventHandler = open("Methods/"+"eventHandler.groovy", "r")
23 schedule = open("Methods/"+"schedule.groovy", "r")
24 now = open("Methods/"+"now.groovy", "r")
25 getTemperatureScale = open("Methods/"+"getTemperatureScale.groovy", "r")
26 getSunriseAndSunset = open("Methods/"+"getSunriseAndSunset.groovy", "r")
27 App1 = open("Extractor/"+"App1/App1.groovy", "r")
28 extractedObjectsApp1 = open("Extractor/"+"App1/extractedObjectsApp1.groovy", "r")
29 extractedObjectsConstructorApp1 = open("Extractor/"+"App1/extractedObjectsConstructorApp1.groovy", "r")
30 extractedFunctionsApp1 = open("Extractor/"+"App1/extractedFunctionsApp1.groovy", "r")
35 Out.write("//Infrastructure for SmartThings Application\n")
36 Out.write("//Importing Libraries\n")
37 Out.write("import groovy.transform.Field\n")
39 Out.write("//Importing Classes\n")
40 Out.write("import ContactSensor.ContactSensor\n")
41 Out.write("import ContactSensor.ContactSensors\n")
42 Out.write("import DoorControl.DoorControl\n")
43 Out.write("import DoorControl.DoorControls\n")
44 Out.write("import Lock.Lock\n")
45 Out.write("import Lock.Locks\n")
46 Out.write("import Thermostat.Thermostat\n")
47 Out.write("import Thermostat.Thermostats\n")
48 Out.write("import Switch.Switch\n")
49 Out.write("import Switch.Switches\n")
50 Out.write("import PresenceSensor.PresenceSensor\n")
51 Out.write("import PresenceSensor.PresenceSensors\n")
52 Out.write("import Logger.Logger\n")
53 Out.write("import Location.LocationVar\n")
54 Out.write("import Location.Phrase\n")
55 Out.write("import appTouch.Touched\n")
56 Out.write("import NfcTouch.NfcTouch\n")
57 Out.write("import AeonKeyFob.AeonKeyFob\n")
58 Out.write("import AeonKeyFob.AeonKeyFobs\n")
59 Out.write("import MusicPlayer.MusicPlayer\n")
60 Out.write("import MusicPlayer.MusicPlayers\n")
61 Out.write("import MotionSensor.MotionSensor\n")
62 Out.write("import MotionSensor.MotionSensors\n")
63 Out.write("import ImageCapture.ImageCapture\n")
64 Out.write("import ImageCapture.ImageCaptures\n")
65 Out.write("import SmokeDetector.SmokeDetector\n")
66 Out.write("import SmokeDetector.SmokeDetectors\n")
67 Out.write("import Alarm.Alarm\n")
68 Out.write("import Alarm.Alarms\n")
69 Out.write("import SpeechSynthesis.SpeechSynthesis\n")
70 Out.write("import SpeechSynthesis.SpeechSynthesises\n")
71 Out.write("import Event.Event\n")
72 Out.write("import Timer.SimulatedTimer\n")
74 Out.write("//Global eventHandler\n")
75 for line in eventHandler:
78 Out.write("//GlobalVariables for both Apps\n")
79 for line in GlobalVariablesBothApps:
82 Out.write("//Application #1\n")
83 Out.write("class App1 {\n")
84 Out.write("\tdef reference\n")
85 Out.write("\tdef location\n")
86 Out.write("\tdef app\n")
88 Out.write("\t//Extracted objects for App1\n")
89 for line in extractedObjectsApp1:
92 Out.write("\t//Extracted objects for functions for App1\n")
93 for line in extractedFunctionsApp1:
96 Out.write("\tApp1(Object obj) {\n")
97 Out.write("\t\treference = obj\n")
98 Out.write("\t\tlocation = obj.locationObject\n")
99 Out.write("\t\tapp = obj.appObject\n")
100 for line in extractedObjectsConstructorApp1:
101 Out.write("\t\t"+line)
103 Out.write("\t//Global variables for each app\n")
104 for line in GlobalVariablesEachApp:
107 Out.write("\t//Methods\n")
108 for line in setLocationMode:
110 for line in subscribe:
114 for line in unschedule:
116 for line in sendNotificationToContacts:
120 for line in sendPush:
122 for line in schedule:
126 for line in getTemperatureScale:
128 for line in getSunriseAndSunset:
140 GlobalVariablesEachApp = open("GlobalVariables/"+"GlobalVariablesEachApp.groovy", "r")
143 GlobalVariablesEachApp = open("GlobalVariables/"+"GlobalVariablesEachApp.groovy", "r")
144 setLocationMode = open("Methods/"+"setLocationMode.groovy", "r")
145 subscribe = open("Methods/"+"subscribe.groovy", "r")
146 runIn = open("Methods/"+"runIn.groovy", "r")
147 unschedule = open("Methods/"+"unschedule.groovy", "r")
148 sendNotificationToContacts = open("Methods/"+"sendNotificationToContacts.groovy", "r")
149 sendSms = open("Methods/"+"sendSms.groovy", "r")
150 eventHandler = open("Methods/"+"eventHandler.groovy", "r")
151 schedule = open("Methods/"+"schedule.groovy", "r")
152 now = open("Methods/"+"now.groovy", "r")
153 getTemperatureScale = open("Methods/"+"getTemperatureScale.groovy", "r")
154 getSunriseAndSunset = open("Methods/"+"getSunriseAndSunset.groovy", "r")
155 App2 = open("Extractor/"+"App2/App2.groovy", "r")
156 extractedObjectsApp2 = open("Extractor/"+"App2/extractedObjectsApp2.groovy", "r")
157 extractedObjectsConstructorApp2 = open("Extractor/"+"App2/extractedObjectsConstructorApp2.groovy", "r")
158 extractedFunctionsApp2 = open("Extractor/"+"App2/extractedFunctionsApp2.groovy", "r")
160 Out.write("//Application #2\n")
161 Out.write("class App2 {\n")
162 Out.write("\tdef reference\n")
163 Out.write("\tdef location\n")
164 Out.write("\tdef app\n")
166 Out.write("\t//Extracted objects for App2\n")
167 for line in extractedObjectsApp2:
170 Out.write("\t//Extracted objects for functions for App2\n")
171 for line in extractedFunctionsApp2:
174 Out.write("\tApp2(Object obj) {\n")
175 Out.write("\t\treference = obj\n")
176 Out.write("\t\tlocation = obj.locationObject\n")
177 Out.write("\t\tapp = obj.appObject\n")
178 for line in extractedObjectsConstructorApp2:
179 Out.write("\t\t"+line)
181 Out.write("\t//Global variables for each app\n")
182 for line in GlobalVariablesEachApp:
185 Out.write("\t//Methods\n")
186 for line in setLocationMode:
188 for line in subscribe:
192 for line in unschedule:
194 for line in sendNotificationToContacts:
198 for line in sendPush:
200 for line in schedule:
204 for line in getTemperatureScale:
206 for line in getSunriseAndSunset:
217 Out.write("@Field def app1 = new App1(this)\n")
218 Out.write("@Field def app2 = new App2(this)\n")
219 Out.write("app1.installed()\n")
220 Out.write("app2.installed()\n")
222 for line in eventSimulator: