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 AccelerationSensor.AccelerationSensor\n")
72 Out.write("import AccelerationSensor.AccelerationSensors\n")
73 Out.write("import Battery.Battery\n")
74 Out.write("import Battery.Batteries\n")
75 Out.write("import BeaconSensor.BeaconSensor\n")
76 Out.write("import BeaconSensor.BeaconSensors\n")
77 Out.write("import CarbonMonoxideDetector.CarbonMonoxideDetector\n")
78 Out.write("import CarbonMonoxideDetector.CarbonMonoxideDetectors\n")
79 Out.write("import ColorControl.ColorControl\n")
80 Out.write("import ColorControl.ColorControls\n")
81 Out.write("import EnergyMeter.EnergyMeter\n")
82 Out.write("import EnergyMeter.EnergyMeters\n")
83 Out.write("import Event.Event\n")
84 Out.write("import Timer.SimulatedTimer\n")
86 Out.write("//Global eventHandler\n")
87 for line in eventHandler:
90 Out.write("//GlobalVariables for both Apps\n")
91 for line in GlobalVariablesBothApps:
94 Out.write("//Application #1\n")
95 Out.write("class App1 {\n")
96 Out.write("\tdef reference\n")
97 Out.write("\tdef location\n")
98 Out.write("\tdef app\n")
100 Out.write("\t//Extracted objects for App1\n")
101 for line in extractedObjectsApp1:
104 Out.write("\t//Extracted objects for functions for App1\n")
105 for line in extractedFunctionsApp1:
108 Out.write("\tApp1(Object obj) {\n")
109 Out.write("\t\treference = obj\n")
110 Out.write("\t\tlocation = obj.locationObject\n")
111 Out.write("\t\tapp = obj.appObject\n")
112 for line in extractedObjectsConstructorApp1:
113 Out.write("\t\t"+line)
115 Out.write("\t//Global variables for each app\n")
116 for line in GlobalVariablesEachApp:
119 Out.write("\t//Methods\n")
120 for line in setLocationMode:
122 for line in subscribe:
126 for line in unschedule:
128 for line in sendNotificationToContacts:
132 for line in sendPush:
134 for line in schedule:
138 for line in getTemperatureScale:
140 for line in getSunriseAndSunset:
152 GlobalVariablesEachApp = open("GlobalVariables/"+"GlobalVariablesEachApp.groovy", "r")
155 GlobalVariablesEachApp = open("GlobalVariables/"+"GlobalVariablesEachApp.groovy", "r")
156 setLocationMode = open("Methods/"+"setLocationMode.groovy", "r")
157 subscribe = open("Methods/"+"subscribe.groovy", "r")
158 runIn = open("Methods/"+"runIn.groovy", "r")
159 unschedule = open("Methods/"+"unschedule.groovy", "r")
160 sendNotificationToContacts = open("Methods/"+"sendNotificationToContacts.groovy", "r")
161 sendSms = open("Methods/"+"sendSms.groovy", "r")
162 eventHandler = open("Methods/"+"eventHandler.groovy", "r")
163 schedule = open("Methods/"+"schedule.groovy", "r")
164 now = open("Methods/"+"now.groovy", "r")
165 getTemperatureScale = open("Methods/"+"getTemperatureScale.groovy", "r")
166 getSunriseAndSunset = open("Methods/"+"getSunriseAndSunset.groovy", "r")
167 App2 = open("Extractor/"+"App2/App2.groovy", "r")
168 extractedObjectsApp2 = open("Extractor/"+"App2/extractedObjectsApp2.groovy", "r")
169 extractedObjectsConstructorApp2 = open("Extractor/"+"App2/extractedObjectsConstructorApp2.groovy", "r")
170 extractedFunctionsApp2 = open("Extractor/"+"App2/extractedFunctionsApp2.groovy", "r")
172 Out.write("//Application #2\n")
173 Out.write("class App2 {\n")
174 Out.write("\tdef reference\n")
175 Out.write("\tdef location\n")
176 Out.write("\tdef app\n")
178 Out.write("\t//Extracted objects for App2\n")
179 for line in extractedObjectsApp2:
182 Out.write("\t//Extracted objects for functions for App2\n")
183 for line in extractedFunctionsApp2:
186 Out.write("\tApp2(Object obj) {\n")
187 Out.write("\t\treference = obj\n")
188 Out.write("\t\tlocation = obj.locationObject\n")
189 Out.write("\t\tapp = obj.appObject\n")
190 for line in extractedObjectsConstructorApp2:
191 Out.write("\t\t"+line)
193 Out.write("\t//Global variables for each app\n")
194 for line in GlobalVariablesEachApp:
197 Out.write("\t//Methods\n")
198 for line in setLocationMode:
200 for line in subscribe:
204 for line in unschedule:
206 for line in sendNotificationToContacts:
210 for line in sendPush:
212 for line in schedule:
216 for line in getTemperatureScale:
218 for line in getSunriseAndSunset:
229 Out.write("@Field def app1 = new App1(this)\n")
230 Out.write("@Field def app2 = new App2(this)\n")
231 Out.write("app1.installed()\n")
232 Out.write("app2.installed()\n")
234 for line in eventSimulator: