1 ////////////////////////////////////////
3 import groovy.transform.Field
8 import ContactSensor.ContactSensor
9 import ContactSensor.ContactSensors
10 import DoorControl.DoorControl
11 import DoorControl.DoorControls
14 import Thermostat.Thermostat
15 import Thermostat.Thermostats
17 import Switch.Switches
18 import PresenceSensor.PresenceSensor
19 import PresenceSensor.PresenceSensors
21 import Location.LocationVar
22 import Location.Phrase
23 import appTouch.Touched
24 import NfcTouch.NfcTouch
25 import AeonKeyFob.AeonKeyFob
26 import AeonKeyFob.AeonKeyFobs
27 import MusicPlayer.MusicPlayer
28 import MusicPlayer.MusicPlayers
29 import MotionSensor.MotionSensor
30 import MotionSensor.MotionSensors
31 import ImageCapture.ImageCapture
32 import ImageCapture.ImageCaptures
33 import SmokeDetector.SmokeDetector
34 import SmokeDetector.SmokeDetectors
37 import SpeechSynthesis.SpeechSynthesis
38 import SpeechSynthesis.SpeechSynthesises
39 import AccelerationSensor.AccelerationSensor
40 import AccelerationSensor.AccelerationSensors
41 import Battery.Battery
42 import Battery.Batteries
43 import BeaconSensor.BeaconSensor
44 import BeaconSensor.BeaconSensors
45 import CarbonMonoxideDetector.CarbonMonoxideDetector
46 import CarbonMonoxideDetector.CarbonMonoxideDetectors
47 import ColorControl.ColorControl
48 import ColorControl.ColorControls
49 import EnergyMeter.EnergyMeter
50 import EnergyMeter.EnergyMeters
51 import IlluminanceMeasurement.IlluminanceMeasurement
52 import IlluminanceMeasurement.IlluminanceMeasurements
53 import PowerMeter.PowerMeter
54 import PowerMeter.PowerMeters
55 import RelativeHumidityMeasurement.RelativeHumidityMeasurement
56 import RelativeHumidityMeasurement.RelativeHumidityMeasurements
57 import RelaySwitch.RelaySwitch
58 import RelaySwitch.RelaySwitches
59 import SleepSensor.SleepSensor
60 import SleepSensor.SleepSensors
61 import StepSensor.StepSensor
62 import StepSensor.StepSensors
63 import SwitchLevel.SwitchLevel
64 import SwitchLevel.SwitchLevels
65 import TemperatureMeasurement.TemperatureMeasurement
66 import TemperatureMeasurement.TemperatureMeasurements
67 import WaterSensor.WaterSensor
68 import WaterSensor.WaterSensors
71 import MobilePresence.MobilePresence
72 import MobilePresence.MobilePresences
73 import ColorTemperature.ColorTemperature
74 import ColorTemperature.ColorTemperatures
77 import ThreeAxis.ThreeAxis
78 import ThreeAxis.ThreeAxises
79 import Momentary.Momentary
80 import Momentary.Momentaries
81 import RemainingDevices.RemainingDevices
82 import Timer.SimulatedTimer
85 @Field def location = new LocationVar({}, true)
86 //Settings variable defined to settings on purpose
87 @Field def settings = [app: "app"]
88 //Global variable for state[mode]
89 @Field def state = [home:[],away:[],night:[]]
90 //Create a global logger object for methods
91 @Field def log = new Logger()
92 //Create a global variable for optional property
93 @Field def optional = false //by default for now
94 //Global Object for class AtomicState!
95 @Field def atomicState = [history: "15:00"]
98 //Global variables for files
99 @Field File globalObjects = new File("Extractor/globalObjects.groovy")
100 @Field File extractedObjectsApp1 = new File("Extractor/App1/extractedObjectsApp1.groovy")
101 @Field File extractedObjectsApp2 = new File("Extractor/App2/extractedObjectsApp2.groovy")
102 @Field File extractedObjectsConstructorApp1 = new File("Extractor/App1/extractedObjectsConstructorApp1.groovy")
103 @Field File extractedObjectsConstructorApp2 = new File("Extractor/App2/extractedObjectsConstructorApp2.groovy")
105 //Set this to true for global-state variable conflict
106 @Field assignDifferentModes = true
107 @Field chooseMode = 0
110 globalObjects.write("")
111 extractedObjectsApp1.write("")
112 extractedObjectsConstructorApp1.write("")
113 if (assignDifferentModes)
115 } else if (App == "App2") {
116 extractedObjectsApp2.write("")
117 extractedObjectsConstructorApp2.write("")
118 if (assignDifferentModes)
124 //Some of methods-May be needed even in install
125 /////////////////////////////////////////////////////////////////////
126 def timeToday(String time, Object timeZone) {
127 def timeOfDay = new Date()
128 def _inputTime = time.split(':')
129 def inputTime = Integer.parseInt(_inputTime[0])*3600+Integer.parseInt(_inputTime[1])*60+1564191100415
130 timeOfDay.time = inputTime
137 //Global Object for class Touch Sensor!
138 @Field touchSensorObjects = 0
139 @Field def touchSensorObject0
140 @Field def touchSensorObject1
141 @Field def touchSensorObject2
142 //Global Object for class switch!
143 @Field switchObjects = 0
144 @Field def switchObject0
145 @Field def switchObject1
146 @Field def switchObject2
147 //Global Object for class lock!
148 @Field lockObjects = 0
149 @Field def lockObject0
150 @Field def lockObject1
151 @Field def lockObject2
152 //Global Object for class door control!
153 @Field doorControlObjects = 0
154 @Field def doorControlObject0
155 @Field def doorControlObject1
156 @Field def doorControlObject2
157 //Global Object for class contact sensor!
158 @Field contactObjects = 0
159 @Field def contactObject0
160 @Field def contactObject1
161 @Field def contactObject2
162 //Global Object for class presence sensor!
163 @Field presenceSensorObjects = 0
164 @Field def presenceSensorObject0
165 @Field def presenceSensorObject1
166 @Field def presenceSensorObject2
167 //Global Object for class thermostat!
168 @Field thermostatObjects = 0
169 @Field def thermostatObject0
170 @Field def thermostatObject1
171 @Field def thermostatObject2
172 //Global Object for class music player!
173 @Field musicPlayerObjects = 0
174 @Field def musicPlayerObject0
175 @Field def musicPlayerObject1
176 @Field def musicPlayerObject2
177 //Global Object for class aeon key fob!
178 @Field aeonKeyFobObjects = 0
179 @Field def aeonKeyFobObject0
180 @Field def aeonKeyFobObject1
181 @Field def aeonKeyFobObject2
182 //Global Object for class motion sensor!
183 @Field motionSensorObjects = 0
184 @Field def motionSensorObject0
185 @Field def motionSensorObject1
186 @Field def motionSensorObject2
187 //Global Object for class image capture!
188 @Field imageCaptureObjects = 0
189 @Field def imageCaptureObject0
190 @Field def imageCaptureObject1
191 @Field def imageCaptureObject2
192 //Global Object for class smoke detector!
193 @Field smokeDetectorObjects = 0
194 @Field def smokeDetectorObject0
195 @Field def smokeDetectorObject1
196 @Field def smokeDetectorObject2
197 //Global Object for class alarm!
198 @Field alarmObjects = 0
199 @Field def alarmObject0
200 @Field def alarmObject1
201 @Field def alarmObject2
202 //Global Object for class speech synthesis!
203 @Field speechSynthesisObjects = 0
204 @Field def speechSynthesisObject0
205 @Field def speechSynthesisObject1
206 @Field def speechSynthesisObject2
207 //Global Object for class acceleration sensor!
208 @Field accelerationSensorObjects = 0
209 @Field def accelerationSensorObject0
210 @Field def accelerationSensorObject1
211 @Field def accelerationSensorObject2
212 //Global Object for class battery!
213 @Field batteryObjects = 0
214 @Field def batteryObject0
215 @Field def batteryObject1
216 @Field def batteryObject2
217 //Global Object for class beacon sensor!
218 @Field beaconSensorObjects = 0
219 @Field def beaconSensorObject0
220 @Field def beaconSensorObject1
221 @Field def beaconSensorObject2
222 //Global Object for class carbon monoxide detector!
223 @Field carbonMonoxideDetectorObjects = 0
224 @Field def carbonMonoxideDetectorObject0
225 @Field def carbonMonoxideDetectorObject1
226 @Field def carbonMonoxideDetectorObject2
227 //Global Object for class color control!
228 @Field colorControlObjects = 0
229 @Field def colorControlObject0
230 @Field def colorControlObject1
231 @Field def colorControlObject2
232 //Global Object for class energy meter!
233 @Field energyMeterObjects = 0
234 @Field def energyMeterObject0
235 @Field def energyMeterObject1
236 @Field def energyMeterObject2
237 //Global Object for class energy meter!
238 @Field illuminanceMeasurementObjects = 0
239 @Field def illuminanceMeasurementObject0
240 @Field def illuminanceMeasurementObject1
241 @Field def illuminanceMeasurementObject2
242 //Global Object for class power meter!
243 @Field powerMeterObjects = 0
244 @Field def powerMeterObject0
245 @Field def powerMeterObject1
246 @Field def powerMeterObject2
247 //Global Object for class power meter!
248 @Field humidityMeasurementObjects = 0
249 @Field def humidityMeasurementObject0
250 @Field def humidityMeasurementObject1
251 @Field def humidityMeasurementObject2
252 //Global Object for class relay switch!
253 @Field relaySwitchObjects = 0
254 @Field def relaySwitchObject0
255 @Field def relaySwitchObject1
256 @Field def relaySwitchObject2
257 //Global Object for class sleep sensor!
258 @Field sleepSensorObjects = 0
259 @Field def sleepSensorObject0
260 @Field def sleepSensorObject1
261 @Field def sleepSensorObject2
262 //Global Object for class step sensor!
263 @Field stepSensorObjects = 0
264 @Field def stepSensorObject0
265 @Field def stepSensorObject1
266 @Field def stepSensorObject2
267 //Global Object for class switch level!
268 @Field switchLevelObjects = 0
269 @Field def switchLevelObject0
270 @Field def switchLevelObject1
271 @Field def switchLevelObject2
272 //Global Object for class temperature measurement!
273 @Field temperatureMeasurementObjects = 0
274 @Field def temperatureMeasurementObject0
275 @Field def temperatureMeasurementObject1
276 @Field def temperatureMeasurementObject2
277 //Global Object for class water sensor!
278 @Field waterSensorObjects = 0
279 @Field def waterSensorObject0
280 @Field def waterSensorObject1
281 @Field def waterSensorObject2
282 //Global Object for class valve!
283 @Field valveObjects = 0
284 @Field def valveObject0
285 @Field def valveObject1
286 @Field def valveObject2
287 //Global Object for class mobile presence!
288 @Field mobilePresenceObjects = 0
289 @Field def mobilePresenceObject0
290 @Field def mobilePresenceObject1
291 @Field def mobilePresenceObject2
292 //Global Object for class color temperature!
293 @Field colorTemperatureObjects = 0
294 @Field def colorTemperatureObject0
295 @Field def colorTemperatureObject1
296 @Field def colorTemperatureObject2
297 //Global Object for class button!
298 @Field buttonObjects = 0
299 @Field def buttonObject0
300 @Field def buttonObject1
301 @Field def buttonObject2
302 //Global Object for class three axis!
303 @Field threeAxisObjects = 0
304 @Field def threeAxisObject0
305 @Field def threeAxisObject1
306 @Field def threeAxisObject2
307 //Global Object for class momentary switch device!
308 @Field momentaryObjects = 0
309 @Field def momentaryObject0
310 @Field def momentaryObject1
311 @Field def momentaryObject2
316 @Field modeVariables = 0
324 @Field numberVariables = 0
332 @Field decimalVariables = 0
340 @Field timeVariables = 0
348 @Field enumVariables = 0
356 @Field phoneVariables = 0
364 @Field contactVariables = 0
372 @Field textVariables = 0
380 @Field boolVariables = 0
388 /////Input Methods/////
390 def input(String name, String type) {
391 LinkedHashMap metaData = []
392 metaData.put('name',name)
393 metaData.put('type',type)
397 //input "","",linkedHashMap
398 def input(LinkedHashMap metaData, String name, String type) {
399 metaData.put('name',name)
400 metaData.put('type',type)
404 //input "", "", linkedHashMap, Closure
405 def input(LinkedHashMap metaData, String name, String type, Closure Input) {
406 metaData.put('name',name)
407 metaData.put('type',type)
412 //input linkedHashMap
413 def input(LinkedHashMap metaData) {
414 if (metaData.containsKey('title')) {
415 println metaData['title']
417 if (metaData.containsKey('options')) {
418 println "Options: "+metaData['options']
421 def List = ["capability.carbonDioxideMeasurement", "capability.consumable", "capability.pHMeasurement", "capability.shockSensor",
422 "capability.signalStrength", "capability.soundSensor", "capability.soundPressureLevel", "capability.tamperAlert",
423 "capability.ultravioletIndex", "capability.voltageMeasurement", "capability.windowShade", "capability.sensor"]
424 String thisCapability = ""
425 if (metaData['type'] in List) {
426 int dot = metaData['type'].indexOf('.')
427 thisCapability = metaData['type'].substring(dot + 1)
428 metaData['type'] = "capability.remainingDevices"
430 switch(metaData['type']) {
431 case "capability.lock":
432 globalObjects.eachLine { line ->
433 if(line.contains("lockObject")){
439 globalObjects.append("@Field def lockObject = new Locks(sendEvent, 1, init)\n")
441 if (lockObjects == 0) {
442 lockObject0 = metaData['name']
443 this[lockObject0] = new Locks({}, 1, true)
444 } else if (lockObjects == 1) {
445 lockObject1 = metaData['name']
446 this[lockObject1] = new Locks({}, 1, true)
447 } else if (lockObjects == 2) {
448 lockObject2 = metaData['name']
449 this[lockObject2] = new Locks({}, 1, true)
452 lockObjects=lockObjects+1
454 settings.put(metaData['name'], new Locks({}, 1, true))
457 extractedObjectsApp1.append("//Object for class lock!\n")
458 extractedObjectsApp1.append("def "+metaData['name']+"\n")
459 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.lockObject\n")
461 extractedObjectsApp2.append("//Object for class lock!\n")
462 extractedObjectsApp2.append("def "+metaData['name']+"\n")
463 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.lockObject\n")
466 case "capability.alarm":
467 globalObjects.eachLine { line ->
468 if(line.contains("alarmObject")){
474 globalObjects.append("@Field def alarmObject = new Alarms(sendEvent, 1, init)\n")
476 if (alarmObjects == 0) {
477 alarmObject0 = metaData['name']
478 this[alarmObject0] = new Alarms({}, 1, true)
479 } else if (alarmObjects == 1) {
480 alarmObject1 = metaData['name']
481 this[alarmObject1] = new Alarms({}, 1, true)
482 } else if (alarmObjects == 2) {
483 alarmObject2 = metaData['name']
484 this[alarmObject2] = new Alarms({}, 1, true)
487 alarmObjects=alarmObjects+1
489 settings.put(metaData['name'], new Alarms({}, 1, true))
492 extractedObjectsApp1.append("//Object for class alarm!\n")
493 extractedObjectsApp1.append("def "+metaData['name']+"\n")
494 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.alarmObject\n")
496 extractedObjectsApp2.append("//Object for class alarm!\n")
497 extractedObjectsApp2.append("def "+metaData['name']+"\n")
498 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.alarmObject\n")
501 case "capability.button":
502 globalObjects.eachLine { line ->
503 if(line.contains("buttonObject")){
509 globalObjects.append("@Field def buttonObject = new Buttons(sendEvent, 1, init)\n")
511 if (buttonObjects == 0) {
512 buttonObject0 = metaData['name']
513 this[buttonObject0] = new Buttons({}, 1, true)
514 } else if (buttonObjects == 1) {
515 buttonObject1 = metaData['name']
516 this[buttonObject1] = new Buttons({}, 1, true)
517 } else if (buttonObjects == 2) {
518 buttonObject2 = metaData['name']
519 this[buttonObject2] = new Buttons({}, 1, true)
522 buttonObjects=buttonObjects+1
524 settings.put(metaData['name'], new Buttons({}, 1, true))
527 extractedObjectsApp1.append("//Object for class Button!\n")
528 extractedObjectsApp1.append("def "+metaData['name']+"\n")
529 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.buttonObject\n")
531 extractedObjectsApp2.append("//Object for class Button!\n")
532 extractedObjectsApp2.append("def "+metaData['name']+"\n")
533 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.buttonObject\n")
536 case "capability.battery":
537 globalObjects.eachLine { line ->
538 if(line.contains("batteryObject")){
544 globalObjects.append("@Field def batteryObject = new Batteries(sendEvent, 1, init)\n")
546 if (batteryObjects == 0) {
547 batteryObject0 = metaData['name']
548 this[batteryObject0] = new Batteries({}, 1, true)
549 } else if (batteryObjects == 1) {
550 batteryObject1 = metaData['name']
551 this[batteryObject1] = new Batteries({}, 1, true)
552 } else if (batteryObjects == 2) {
553 batteryObject2 = metaData['name']
554 this[batteryObject2] = new Batteries({}, 1, true)
557 batteryObjects=batteryObjects+1
559 settings.put(metaData['name'], new Batteries({}, 1, true))
562 extractedObjectsApp1.append("//Object for class Battery!\n")
563 extractedObjectsApp1.append("def "+metaData['name']+"\n")
564 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.batteryObject\n")
566 extractedObjectsApp2.append("//Object for class Battery!\n")
567 extractedObjectsApp2.append("def "+metaData['name']+"\n")
568 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.batteryObject\n")
571 case "capability.beacon":
572 globalObjects.eachLine { line ->
573 if(line.contains("beaconSensorObject")){
579 globalObjects.append("@Field def beaconSensorObject = new BeaconSensors(sendEvent, 1, init)\n")
581 if (beaconSensorObjects == 0) {
582 beaconSensorObject0 = metaData['name']
583 this[beaconSensorObject0] = new BeaconSensors({}, 1, true)
584 } else if (beaconSensorObjects == 1) {
585 beaconSensorObject1 = metaData['name']
586 this[beaconSensorObject1] = new BeaconSensors({}, 1, true)
587 } else if (beaconSensorObjects == 2) {
588 beaconSensorObject2 = metaData['name']
589 this[beaconSensorObject2] = new BeaconSensors({}, 1, true)
592 beaconSensorObjects=beaconSensorObjects+1
594 settings.put(metaData['name'], new BeaconSensors({}, 1, true))
597 extractedObjectsApp1.append("//Object for class beacon sensor!\n")
598 extractedObjectsApp1.append("def "+metaData['name']+"\n")
599 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.beaconSensorObject\n")
601 extractedObjectsApp2.append("//Object for class beacon sensor!\n")
602 extractedObjectsApp2.append("def "+metaData['name']+"\n")
603 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.beaconSensorObject\n")
606 case "capability.carbonMonoxideDetector":
607 globalObjects.eachLine { line ->
608 if(line.contains("carbonMonoxideDetectorObject")){
614 globalObjects.append("@Field def carbonMonoxideDetectorObject = new CarbonMonoxideDetectors(sendEvent, 1, init)\n")
616 if (carbonMonoxideDetectorObjects == 0) {
617 carbonMonoxideDetectorObject0 = metaData['name']
618 this[carbonMonoxideDetectorObject0] = new CarbonMonoxideDetectors({}, 1, true)
619 } else if (carbonMonoxideDetectorObjects == 1) {
620 carbonMonoxideDetectorObject1 = metaData['name']
621 this[carbonMonoxideDetectorObject1] = new CarbonMonoxideDetectors({}, 1, true)
622 } else if (carbonMonoxideDetectorObjects == 2) {
623 carbonMonoxideDetectorObject2 = metaData['name']
624 this[carbonMonoxideDetectorObject2] = new CarbonMonoxideDetectors({}, 1, true)
627 carbonMonoxideDetectorObjects=carbonMonoxideDetectorObjects+1
629 settings.put(metaData['name'], new CarbonMonoxideDetectors({}, 1, true))
632 extractedObjectsApp1.append("//Object for class carbon monoxide detector!\n")
633 extractedObjectsApp1.append("def "+metaData['name']+"\n")
634 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.carbonMonoxideDetectorObject\n")
636 extractedObjectsApp2.append("//Object for class carbon monoxide detector!\n")
637 extractedObjectsApp2.append("def "+metaData['name']+"\n")
638 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.carbonMonoxideDetectorObject\n")
641 case "capability.colorTemperature":
642 globalObjects.eachLine { line ->
643 if(line.contains("colorTemperatureObject")){
649 globalObjects.append("@Field def colorTemperatureObject = new ColorTemperatures(sendEvent, 1, init)\n")
651 if (colorTemperatureObjects == 0) {
652 colorTemperatureObject0 = metaData['name']
653 this[colorTemperatureObject0] = new ColorTemperatures({}, 1, true)
654 } else if (colorTemperatureObjects == 1) {
655 colorTemperatureObject1 = metaData['name']
656 this[colorTemperatureObject1] = new ColorTemperatures({}, 1, true)
657 } else if (colorTemperatureObjects == 2) {
658 colorTemperatureObject2 = metaData['name']
659 this[colorTemperatureObject2] = new ColorTemperatures({}, 1, true)
662 colorTemperatureObjects=colorTemperatureObjects+1
664 settings.put(metaData['name'], new ColorTemperatures({}, 1, true))
667 extractedObjectsApp1.append("//Object for class color temperature!\n")
668 extractedObjectsApp1.append("def "+metaData['name']+"\n")
669 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.colorTemperatureObject\n")
671 extractedObjectsApp2.append("//Object for class color control!\n")
672 extractedObjectsApp2.append("def "+metaData['name']+"\n")
673 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.colorTemperatureObject\n")
676 case "capability.colorControl":
677 globalObjects.eachLine { line ->
678 if(line.contains("colorControlObject")){
684 globalObjects.append("@Field def colorControlObject = new ColorControls(sendEvent, 1, init)\n")
686 if (colorControlObjects == 0) {
687 colorControlObject0 = metaData['name']
688 this[colorControlObject0] = new ColorControls({}, 1, true)
689 } else if (colorControlObjects == 1) {
690 colorControlObject1 = metaData['name']
691 this[colorControlObject1] = new ColorControls({}, 1, true)
692 } else if (colorControlObjects == 2) {
693 colorControlObject2 = metaData['name']
694 this[colorControlObject2] = new ColorControls({}, 1, true)
697 colorControlObjects=colorControlObjects+1
699 settings.put(metaData['name'], new ColorControls({}, 1, true))
702 extractedObjectsApp1.append("//Object for class color control!\n")
703 extractedObjectsApp1.append("def "+metaData['name']+"\n")
704 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.colorControlObject\n")
706 extractedObjectsApp2.append("//Object for class color control!\n")
707 extractedObjectsApp2.append("def "+metaData['name']+"\n")
708 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.colorControlObject\n")
711 case "capability.contactSensor":
712 globalObjects.eachLine { line ->
713 if(line.contains("contactObject")){
719 globalObjects.append("@Field def contactObject = new ContactSensors(sendEvent, 1, init)\n")
721 if (contactObjects == 0) {
722 contactObject0 = metaData['name']
723 this[contactObject0] = new ContactSensors({}, 1, true)
724 } else if (contactObjects == 1) {
725 contactObject1 = metaData['name']
726 this[contactObject1] = new ContactSensors({}, 1, true)
727 } else if (contactObjects == 2) {
728 contactObject2 = metaData['name']
729 this[contactObject2] = new ContactSensors({}, 1, true)
732 contactObjects=contactObjects+1
734 settings.put(metaData['name'], new ContactSensors({}, 1, true))
737 extractedObjectsApp1.append("//Object for class contactSensor!\n")
738 extractedObjectsApp1.append("def "+metaData['name']+"\n")
739 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.contactObject\n")
741 extractedObjectsApp2.append("//Object for class contactSensor!\n")
742 extractedObjectsApp2.append("def "+metaData['name']+"\n")
743 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.contactObject\n")
746 case "capability.threeAxis":
747 globalObjects.eachLine { line ->
748 if(line.contains("threeAxisObject")){
754 globalObjects.append("@Field def threeAxisObject = new ThreeAxises(sendEvent, 1, init)\n")
756 if (threeAxisObjects == 0) {
757 threeAxisObject0 = metaData['name']
758 this[threeAxisObject0] = new ThreeAxises({}, 1, true)
759 } else if (threeAxisObjects == 1) {
760 threeAxisObject1 = metaData['name']
761 this[threeAxisObject1] = new ThreeAxises({}, 1, true)
762 } else if (threeAxisObjects == 2) {
763 threeAxisObject2 = metaData['name']
764 this[threeAxisObject2] = new ThreeAxises({}, 1, true)
767 threeAxisObjects=threeAxisObjects+1
769 settings.put(metaData['name'], new ThreeAxises({}, 1, true))
772 extractedObjectsApp1.append("//Object for class three axis!\n")
773 extractedObjectsApp1.append("def "+metaData['name']+"\n")
774 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.threeAxisObject\n")
776 extractedObjectsApp2.append("//Object for class three axis!\n")
777 extractedObjectsApp2.append("def "+metaData['name']+"\n")
778 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.threeAxisObject\n")
781 case "capability.doorControl":
782 globalObjects.eachLine { line ->
783 if(line.contains("doorControlObject")){
789 globalObjects.append("@Field def doorControlObject = new DoorControls(sendEvent, 1, init)\n")
791 if (doorControlObjects == 0) {
792 doorControlObject0 = metaData['name']
793 this[doorControlObject0] = new DoorControls({}, 1, true)
794 } else if (doorControlObjects == 1) {
795 doorControlObject1 = metaData['name']
796 this[doorControlObject1] = new DoorControls({}, 1, true)
797 } else if (doorControlObjects == 2) {
798 doorControlObject2 = metaData['name']
799 this[doorControlObject2] = new DoorControls({}, 1, true)
802 doorControlObjects=doorControlObjects+1
804 settings.put(metaData['name'], new DoorControls({}, 1, true))
807 extractedObjectsApp1.append("//Object for class door control!\n")
808 extractedObjectsApp1.append("def "+metaData['name']+"\n")
809 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.doorControlObject\n")
811 extractedObjectsApp2.append("//Object for class door control!\n")
812 extractedObjectsApp2.append("def "+metaData['name']+"\n")
813 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.doorControlObject\n")
816 case "capability.energyMeter":
817 globalObjects.eachLine { line ->
818 if(line.contains("energyMeterObject")){
824 globalObjects.append("@Field def energyMeterObject = new EnergyMeters(sendEvent, 1, init)\n")
826 if (energyMeterObjects == 0) {
827 energyMeterObject0 = metaData['name']
828 this[energyMeterObject0] = new EnergyMeters({}, 1, true)
829 } else if (energyMeterObjects == 1) {
830 energyMeterObject1 = metaData['name']
831 this[energyMeterObject1] = new EnergyMeters({}, 1, true)
832 } else if (energyMeterObjects == 2) {
833 energyMeterObject2 = metaData['name']
834 this[energyMeterObject2] = new EnergyMeters({}, 1, true)
837 energyMeterObjects=energyMeterObjects+1
839 settings.put(metaData['name'], new EnergyMeters({}, 1, true))
842 extractedObjectsApp1.append("//Object for class energy meter!\n")
843 extractedObjectsApp1.append("def "+metaData['name']+"\n")
844 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.energyMeterObject\n")
846 extractedObjectsApp2.append("//Object for class energy meter!\n")
847 extractedObjectsApp2.append("def "+metaData['name']+"\n")
848 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.energyMeterObject\n")
851 case "capability.illuminanceMeasurement":
852 globalObjects.eachLine { line ->
853 if(line.contains("illuminanceMeasurementObject")){
859 globalObjects.append("@Field def illuminanceMeasurementObject = new IlluminanceMeasurements(sendEvent, 1, init)\n")
861 if (illuminanceMeasurementObjects == 0) {
862 illuminanceMeasurementObject0 = metaData['name']
863 this[illuminanceMeasurementObject0] = new IlluminanceMeasurements({}, 1, true)
864 } else if (illuminanceMeasurementObjects == 1) {
865 illuminanceMeasurementObject1 = metaData['name']
866 this[illuminanceMeasurementObject1] = new IlluminanceMeasurements({}, 1, true)
867 } else if (illuminanceMeasurementObjects == 2) {
868 illuminanceMeasurementObject2 = metaData['name']
869 this[illuminanceMeasurementObject2] = new IlluminanceMeasurements({}, 1, true)
872 illuminanceMeasurementObjects=illuminanceMeasurementObjects+1
874 settings.put(metaData['name'], new IlluminanceMeasurements({}, 1, true))
877 extractedObjectsApp1.append("//Object for class illuminance measurement!\n")
878 extractedObjectsApp1.append("def "+metaData['name']+"\n")
879 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.illuminanceMeasurementObject\n")
881 extractedObjectsApp2.append("//Object for class illuminance measurement!\n")
882 extractedObjectsApp2.append("def "+metaData['name']+"\n")
883 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.illuminanceMeasurementObject\n")
886 case "capability.accelerationSensor":
887 globalObjects.eachLine { line ->
888 if(line.contains("accelerationSensorObject")){
894 globalObjects.append("@Field def accelerationSensorObject = new AccelerationSensors(sendEvent, 1, init)\n")
896 if (accelerationSensorObjects == 0) {
897 accelerationSensorObject0 = metaData['name']
898 this[accelerationSensorObject0] = new AccelerationSensors({}, 1, true)
899 } else if (accelerationSensorObjects == 1) {
900 accelerationSensorObject1 = metaData['name']
901 this[accelerationSensorObject1] = new AccelerationSensors({}, 1, true)
902 } else if (accelerationSensorObjects == 2) {
903 accelerationSensorObject2 = metaData['name']
904 this[accelerationSensorObject2] = new AccelerationSensors({}, 1, true)
907 accelerationSensorObjects=accelerationSensorObjects+1
909 settings.put(metaData['name'], new AccelerationSensors({}, 1, true))
912 extractedObjectsApp1.append("//Object for class Acceleration Sensor!\n")
913 extractedObjectsApp1.append("def "+metaData['name']+"\n")
914 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.accelerationSensorObject\n")
916 extractedObjectsApp2.append("//Object for class Acceleration Sensor!\n")
917 extractedObjectsApp2.append("def "+metaData['name']+"\n")
918 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.accelerationSensorObject\n")
921 case "capability.momentary":
922 globalObjects.eachLine { line ->
923 if(line.contains("momentoryObject")){
929 globalObjects.append("@Field def momentaryObject = new Momentaries(sendEvent, 1)\n")
931 if (momentaryObjects == 0) {
932 momentaryObject0 = metaData['name']
933 this[momentaryObject0] = new Momentaries({}, 1)
934 } else if (momentaryObjects == 1) {
935 momentaryObject1 = metaData['name']
936 this[momentaryObject1] = new Momentaries({}, 1)
937 } else if (momentaryObjects == 2) {
938 momentaryObject2 = metaData['name']
939 this[momentaryObject2] = new Momentaries({}, 1)
942 momentaryObjects=momentaryObjects+1
944 settings.put(metaData['name'], new Momentaries({}, 1))
947 extractedObjectsApp1.append("//Object for class momentory switch class!\n")
948 extractedObjectsApp1.append("def "+metaData['name']+"\n")
949 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.momentaryObject\n")
951 extractedObjectsApp2.append("//Object for class momentory Sensor!\n")
952 extractedObjectsApp2.append("def "+metaData['name']+"\n")
953 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.momentaryObject\n")
956 case "capability.motionSensor":
957 globalObjects.eachLine { line ->
958 if(line.contains("motionSensorObject")){
964 globalObjects.append("@Field def motionSensorObject = new MotionSensors(sendEvent, 1, init)\n")
966 if (motionSensorObjects == 0) {
967 motionSensorObject0 = metaData['name']
968 this[motionSensorObject0] = new MotionSensors({}, 1, true)
969 } else if (motionSensorObjects == 1) {
970 motionSensorObject1 = metaData['name']
971 this[motionSensorObject1] = new MotionSensors({}, 1, true)
972 } else if (motionSensorObjects == 2) {
973 motionSensorObject2 = metaData['name']
974 this[motionSensorObject2] = new MotionSensors({}, 1, true)
977 motionSensorObjects=motionSensorObjects+1
979 settings.put(metaData['name'], new MotionSensors({}, 1, true))
982 extractedObjectsApp1.append("//Object for class Motion Sensor!\n")
983 extractedObjectsApp1.append("def "+metaData['name']+"\n")
984 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.motionSensorObject\n")
986 extractedObjectsApp2.append("//Object for class Motion Sensor!\n")
987 extractedObjectsApp2.append("def "+metaData['name']+"\n")
988 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.motionSensorObject\n")
991 case "capability.musicPlayer":
992 globalObjects.eachLine { line ->
993 if(line.contains("musicPlayerObject")){
999 globalObjects.append("@Field def musicPlayerObject = new MusicPlayers(sendEvent, 1, init)\n")
1001 if (musicPlayerObjects == 0) {
1002 musicPlayerObject0 = metaData['name']
1003 this[musicPlayerObject0] = new MusicPlayers({}, 1, true)
1004 } else if (musicPlayerObjects == 1) {
1005 musicPlayerObject1 = metaData['name']
1006 this[musicPlayerObject1] = new MusicPlayers({}, 1, true)
1007 } else if (musicPlayerObjects == 2) {
1008 musicPlayerObject2 = metaData['name']
1009 this[musicPlayerObject2] = new MusicPlayers({}, 1, true)
1012 musicPlayerObjects=musicPlayerObjects+1
1014 settings.put(metaData['name'], new MusicPlayers({}, 1, true))
1016 if (App == "App1") {
1017 extractedObjectsApp1.append("//Object for class music player!\n")
1018 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1019 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.musicPlayerObject\n")
1021 extractedObjectsApp2.append("//Object for class music player!\n")
1022 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1023 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.musicPlayerObject\n")
1026 case "capability.powerMeter":
1027 globalObjects.eachLine { line ->
1028 if(line.contains("powerMeterObject")){
1034 globalObjects.append("@Field def powerMeterObject = new PowerMeters(sendEvent, 1, init)\n")
1036 if (powerMeterObjects == 0) {
1037 powerMeterObject0 = metaData['name']
1038 this[powerMeterObject0] = new PowerMeters({}, 1, true)
1039 } else if (powerMeterObjects == 1) {
1040 powerMeterObject1 = metaData['name']
1041 this[powerMeterObject1] = new PowerMeters({}, 1, true)
1042 } else if (powerMeterObjects == 2) {
1043 powerMeterObject2 = metaData['name']
1044 this[powerMeterObject2] = new PowerMeters({}, 1, true)
1047 powerMeterObjects=powerMeterObjects+1
1049 settings.put(metaData['name'], new PowerMeters({}, 1, true))
1051 if (App == "App1") {
1052 extractedObjectsApp1.append("//Object for class power meter!\n")
1053 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1054 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.powerMeterObject\n")
1056 extractedObjectsApp2.append("//Object for class power meter!\n")
1057 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1058 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.powerMeterObject\n")
1061 case "capability.presenceSensor":
1062 globalObjects.eachLine { line ->
1063 if(line.contains("presenceSensorObject")){
1069 globalObjects.append("@Field def presenceSensorObject = new PresenceSensors(sendEvent, 1, init)\n")
1071 if (presenceSensorObjects == 0) {
1072 presenceSensorObject0 = metaData['name']
1073 this[presenceSensorObject0] = new PresenceSensors({}, 1, true)
1074 } else if (presenceSensorObjects == 1) {
1075 presenceSensorObject1 = metaData['name']
1076 this[presenceSensorObject1] = new PresenceSensors({}, 1, true)
1077 } else if (presenceSensorObjects == 2) {
1078 presenceSensorObject2 = metaData['name']
1079 this[presenceSensorObject2] = new PresenceSensors({}, 1, true)
1082 presenceSensorObjects=presenceSensorObjects+1
1084 settings.put(metaData['name'], new PresenceSensors({}, 1, true))
1086 if (App == "App1") {
1087 extractedObjectsApp1.append("//Object for class presence sensor!\n")
1088 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1089 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.presenceSensorObject\n")
1091 extractedObjectsApp2.append("//Object for class presence sensor!\n")
1092 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1093 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.presenceSensorObject\n")
1096 case "capability.relativeHumidityMeasurement":
1097 globalObjects.eachLine { line ->
1098 if(line.contains("humidityMeasurementObject")){
1104 globalObjects.append("@Field def humidityMeasurementObject = new RelativeHumidityMeasurements(sendEvent, 1, init)\n")
1106 if (humidityMeasurementObjects == 0) {
1107 humidityMeasurementObject0 = metaData['name']
1108 this[humidityMeasurementObject0] = new RelativeHumidityMeasurements({}, 1, true)
1109 } else if (humidityMeasurementObjects == 1) {
1110 humidityMeasurementObject1 = metaData['name']
1111 this[humidityMeasurementObject1] = new RelativeHumidityMeasurements({}, 1, true)
1112 } else if (humidityMeasurementObjects == 2) {
1113 humidityMeasurementObject2 = metaData['name']
1114 this[humidityMeasurementObject2] = new RelativeHumidityMeasurements({}, 1, true)
1117 humidityMeasurementObjects=humidityMeasurementObjects+1
1119 settings.put(metaData['name'], new RelativeHumidityMeasurements({}, 1, true))
1121 if (App == "App1") {
1122 extractedObjectsApp1.append("//Object for class humidity measurement!\n")
1123 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1124 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.humidityMeasurementObject\n")
1126 extractedObjectsApp2.append("//Object for class humidity measurement!\n")
1127 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1128 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.humidityMeasurementObject\n")
1131 case "capability.relaySwitch":
1132 globalObjects.eachLine { line ->
1133 if(line.contains("relaySwitchObject")){
1139 globalObjects.append("@Field def relaySwitchObject = new RelaySwitches(sendEvent, 1, init)\n")
1141 if (relaySwitchObjects == 0) {
1142 relaySwitchObject0 = metaData['name']
1143 this[relaySwitchObject0] = new RelaySwitches({}, 1, true)
1144 } else if (relaySwitchObjects == 1) {
1145 relaySwitchObject1 = metaData['name']
1146 this[relaySwitchObject1] = new RelaySwitches({}, 1, true)
1147 } else if (relaySwitchObjects == 2) {
1148 relaySwitchObject2 = metaData['name']
1149 this[relaySwitchObject2] = new RelaySwitches({}, 1, true)
1152 relaySwitchObjects=relaySwitchObjects+1
1154 settings.put(metaData['name'], new RelaySwitches({}, 1, true))
1156 if (App == "App1") {
1157 extractedObjectsApp1.append("//Object for class relay switch!\n")
1158 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1159 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.relaySwitchObject\n")
1161 extractedObjectsApp2.append("//Object for class relay switch!\n")
1162 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1163 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.relaySwitchObject\n")
1166 case "capability.sleepSensor":
1167 globalObjects.eachLine { line ->
1168 if(line.contains("sleepSensorObject")){
1174 globalObjects.append("@Field def sleepSensorObject = new SleepSensors(sendEvent, 1, init)\n")
1176 if (sleepSensorObjects == 0) {
1177 sleepSensorObject0 = metaData['name']
1178 this[sleepSensorObject0] = new SleepSensors({}, 1, true)
1179 } else if (sleepSensorObjects == 1) {
1180 sleepSensorObject1 = metaData['name']
1181 this[sleepSensorObject1] = new SleepSensors({}, 1, true)
1182 } else if (sleepSensorObjects == 2) {
1183 sleepSensorObject2 = metaData['name']
1184 this[sleepSensorObject2] = new SleepSensors({}, 1, true)
1187 sleepSensorObjects=sleepSensorObjects+1
1189 settings.put(metaData['name'], new SleepSensors({}, 1, true))
1191 if (App == "App1") {
1192 extractedObjectsApp1.append("//Object for class sleep sensor!\n")
1193 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1194 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.sleepSensorObject\n")
1196 extractedObjectsApp2.append("//Object for class sleep sensor!\n")
1197 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1198 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.sleepSensorObject\n")
1201 case "capability.smokeDetector":
1202 globalObjects.eachLine { line ->
1203 if(line.contains("smokeDetectorObject")){
1209 globalObjects.append("@Field def smokeDetectorObject = new SmokeDetectors(sendEvent, 1, init)\n")
1211 if (smokeDetectorObjects == 0) {
1212 smokeDetectorObject0 = metaData['name']
1213 this[smokeDetectorObject0] = new SmokeDetectors({}, 1, true)
1214 } else if (smokeDetectorObjects == 1) {
1215 smokeDetectorObject1 = metaData['name']
1216 this[smokeDetectorObject1] = new SmokeDetectors({}, 1, true)
1217 } else if (smokeDetectorObjects == 2) {
1218 smokeDetectorObject2 = metaData['name']
1219 this[smokeDetectorObject2] = new SmokeDetectors({}, 1, true)
1222 smokeDetectorObjects=smokeDetectorObjects+1
1224 settings.put(metaData['name'], new SmokeDetectors({}, 1, true))
1226 if (App == "App1") {
1227 extractedObjectsApp1.append("//Object for class smoke detector!\n")
1228 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1229 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.smokeDetectorObject\n")
1231 extractedObjectsApp2.append("//Object for class smoke detector!\n")
1232 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1233 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.smokeDetectorObject\n")
1236 case "capability.stepSensor":
1237 globalObjects.eachLine { line ->
1238 if(line.contains("stepSensorObject")){
1244 globalObjects.append("@Field def stepSensorObject = new StepSensors(sendEvent, 1, init)\n")
1246 if (stepSensorObjects == 0) {
1247 stepSensorObject0 = metaData['name']
1248 this[stepSensorObject0] = new StepSensors({}, 1, true)
1249 } else if (stepSensorObjects == 1) {
1250 stepSensorObject1 = metaData['name']
1251 this[stepSensorObject1] = new StepSensors({}, 1, true)
1252 } else if (stepSensorObjects == 2) {
1253 stepSensorObject2 = metaData['name']
1254 this[stepSensorObject2] = new StepSensors({}, 1, true)
1257 stepSensorObjects=stepSensorObjects+1
1259 settings.put(metaData['name'], new StepSensors({}, 1, true))
1261 if (App == "App1") {
1262 extractedObjectsApp1.append("//Object for class step sensor!\n")
1263 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1264 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.stepSensorObject\n")
1266 extractedObjectsApp2.append("//Object for class step sensor!\n")
1267 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1268 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.stepSensorObject\n")
1271 case "capability.switch":
1272 globalObjects.eachLine { line ->
1273 if(line.contains("switchObject")){
1279 globalObjects.append("@Field def switchObject = new Switches(sendEvent, 1, init)\n")
1281 if (switchObjects == 0) {
1282 switchObject0 = metaData['name']
1283 this[switchObject0] = new Switches({}, 1, true)
1284 } else if (switchObjects == 1) {
1285 switchObject1 = metaData['name']
1286 this[switchObject1] = new Switches({}, 1, true)
1287 } else if (switchObjects == 2) {
1288 switchObject2 = metaData['name']
1289 this[switchObject2] = new Switches({}, 1, true)
1292 switchObjects=switchObjects+1
1294 settings.put(metaData['name'], new Switches({}, 1, true))
1296 if (App == "App1") {
1297 extractedObjectsApp1.append("//Object for class switch!\n")
1298 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1299 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.switchObject\n")
1301 extractedObjectsApp2.append("//Object for class switch!\n")
1302 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1303 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.switchObject\n")
1306 case "capability.switchLevel":
1307 globalObjects.eachLine { line ->
1308 if(line.contains("switchLevelObject")){
1314 globalObjects.append("@Field def switchLevelObject = new SwitchLevels(sendEvent, 1, init)\n")
1316 if (switchLevelObjects == 0) {
1317 switchLevelObject0 = metaData['name']
1318 this[switchLevelObject0] = new SwitchLevels({}, 1, true)
1319 } else if (switchLevelObjects == 1) {
1320 switchLevelObject1 = metaData['name']
1321 this[switchLevelObject1] = new SwitchLevels({}, 1, true)
1322 } else if (switchLevelObjects == 2) {
1323 switchLevelObject2 = metaData['name']
1324 this[switchLevelObject2] = new SwitchLevels({}, 1, true)
1327 switchLevelObjects=switchLevelObjects+1
1329 settings.put(metaData['name'], new SwitchLevels({}, 1, true))
1331 if (App == "App1") {
1332 extractedObjectsApp1.append("//Object for class switch level!\n")
1333 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1334 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.switchLevelObject\n")
1336 extractedObjectsApp2.append("//Object for class switch level!\n")
1337 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1338 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.switchLevelObject\n")
1341 case "capability.temperatureMeasurement":
1342 globalObjects.eachLine { line ->
1343 if(line.contains("temperatureMeasurementObject")){
1349 globalObjects.append("@Field def temperatureMeasurementObject = new TemperatureMeasurements(sendEvent, 1, init)\n")
1351 if (temperatureMeasurementObjects == 0) {
1352 temperatureMeasurementObject0 = metaData['name']
1353 this[temperatureMeasurementObject0] = new TemperatureMeasurements({}, 1, true)
1354 } else if (temperatureMeasurementObjects == 1) {
1355 temperatureMeasurementObject1 = metaData['name']
1356 this[temperatureMeasurementObject1] = new TemperatureMeasurements({}, 1, true)
1357 } else if (temperatureMeasurementObjects == 2) {
1358 temperatureMeasurementObject2 = metaData['name']
1359 this[temperatureMeasurementObject2] = new TemperatureMeasurements({}, 1, true)
1362 temperatureMeasurementObjects=temperatureMeasurementObjects+1
1364 settings.put(metaData['name'], new TemperatureMeasurements({}, 1, true))
1366 if (App == "App1") {
1367 extractedObjectsApp1.append("//Object for class temperature measurement!\n")
1368 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1369 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.temperatureMeasurementObject\n")
1371 extractedObjectsApp2.append("//Object for class temperature measurement!\n")
1372 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1373 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.temperatureMeasurementObject\n")
1376 case "capability.thermostat":
1377 globalObjects.eachLine { line ->
1378 if(line.contains("thermostatObject")){
1384 globalObjects.append("@Field def thermostatObject = new Thermostats(sendEvent, 1, init)\n")
1386 if (thermostatObjects == 0) {
1387 thermostatObject0 = metaData['name']
1388 this[thermostatObject0] = new Thermostats({}, 1, true)
1389 } else if (thermostatObjects == 1) {
1390 thermostatObject1 = metaData['name']
1391 this[thermostatObject1] = new Thermostats({}, 1, true)
1392 } else if (thermostatObjects == 2) {
1393 thermostatObject2 = metaData['name']
1394 this[thermostatObject2] = new Thermostats({}, 1, true)
1397 thermostatObjects=thermostatObjects+1
1399 settings.put(metaData['name'], new Thermostats({}, 1, true))
1401 if (App == "App1") {
1402 extractedObjectsApp1.append("//Object for class thermostat!\n")
1403 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1404 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.thermostatObject\n")
1406 extractedObjectsApp2.append("//Object for class thermostat!\n")
1407 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1408 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.thermostatObject\n")
1411 case "capability.valve":
1412 globalObjects.eachLine { line ->
1413 if(line.contains("valveObject")){
1419 globalObjects.append("@Field def valveObject = new Valves(sendEvent, 1, init)\n")
1421 if (valveObjects == 0) {
1422 valveObject0 = metaData['name']
1423 this[valveObject0] = new Valves({}, 1, true)
1424 } else if (valveObjects == 1) {
1425 valveObject1 = metaData['name']
1426 this[valveObject1] = new Valves({}, 1, true)
1427 } else if (valveObjects == 2) {
1428 valveObject2 = metaData['name']
1429 this[valveObject2] = new Valves({}, 1, true)
1432 valveObjects=valveObjects+1
1434 settings.put(metaData['name'], new Valves({}, 1, true))
1436 if (App == "App1") {
1437 extractedObjectsApp1.append("//Object for class valve!\n")
1438 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1439 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.valveObject\n")
1441 extractedObjectsApp2.append("//Object for class valve!\n")
1442 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1443 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.valveObject\n")
1446 case "capability.speechSynthesis":
1447 globalObjects.eachLine { line ->
1448 if(line.contains("speechSynthesisObject")){
1454 globalObjects.append("@Field def speechSynthesisObject = new SpeechSynthesises(sendEvent, 1, init)\n")
1456 if (speechSynthesisObjects == 0) {
1457 speechSynthesisObject0 = metaData['name']
1458 this[speechSynthesisObject0] = new SpeechSynthesises({}, 1, true)
1459 } else if (speechSynthesisObjects == 1) {
1460 speechSynthesisObject1 = metaData['name']
1461 this[speechSynthesisObject1] = new SpeechSynthesises({}, 1, true)
1462 } else if (speechSynthesisObjects == 2) {
1463 speechSynthesisObject2 = metaData['name']
1464 this[speechSynthesisObject2] = new SpeechSynthesises({}, 1, true)
1467 speechSynthesisObjects=speechSynthesisObjects+1
1469 settings.put(metaData['name'], new SpeechSynthesises({}, 1, true))
1471 if (App == "App1") {
1472 extractedObjectsApp1.append("//Object for class speech synthesis!\n")
1473 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1474 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.speechSynthesisObject\n")
1476 extractedObjectsApp2.append("//Object for class speech synthesis!\n")
1477 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1478 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.speechSynthesisObject\n")
1481 case "capability.waterSensor":
1482 globalObjects.eachLine { line ->
1483 if(line.contains("waterSensorObject")){
1489 globalObjects.append("@Field def waterSensorObject = new WaterSensors(sendEvent, 1, init)\n")
1491 if (waterSensorObjects == 0) {
1492 waterSensorObject0 = metaData['name']
1493 this[waterSensorObject0] = new WaterSensors({}, 1, true)
1494 } else if (waterSensorObjects == 1) {
1495 waterSensorObject1 = metaData['name']
1496 this[waterSensorObject1] = new WaterSensors({}, 1, true)
1497 } else if (waterSensorObjects == 2) {
1498 waterSensorObject2 = metaData['name']
1499 this[waterSensorObject2] = new WaterSensors({}, 1, true)
1502 waterSensorObjects=waterSensorObjects+1
1504 settings.put(metaData['name'], new WaterSensors({}, 1, true))
1506 if (App == "App1") {
1507 extractedObjectsApp1.append("//Object for class water sensor!\n")
1508 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1509 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.waterSensorObject\n")
1511 extractedObjectsApp2.append("//Object for class water sensor!\n")
1512 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1513 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.waterSensorObject\n")
1516 case "capability.touchSensor":
1517 globalObjects.eachLine { line ->
1518 if(line.contains("touchSensorObject")){
1524 globalObjects.append("@Field def touchSensorObject = new NfcTouch(sendEvent, 1)\n")
1526 if (touchSensorObjects == 0) {
1527 touchSensorObject0 = metaData['name']
1528 this[touchSensorObject0] = new NfcTouch({}, 1)
1529 } else if (touchSensorObjects == 1) {
1530 touchSensorObject1 = metaData['name']
1531 this[touchSensorObject1] = new NfcTouch({}, 1)
1532 } else if (touchSensorObjects == 2) {
1533 touchSensorObject2 = metaData['name']
1534 this[touchSensorObject2] = new NfcTouch({}, 1)
1537 touchSensorObjects=touchSensorObjects+1
1539 settings.put(metaData['name'], new NfcTouch({}, 1))
1541 if (App == "App1") {
1542 extractedObjectsApp1.append("//Object for class Touch Sensor!\n")
1543 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1544 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.touchSensorObject\n")
1546 extractedObjectsApp2.append("//Object for class Touch Sensor!\n")
1547 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1548 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.touchSensorObject\n")
1551 case "capability.imageCapture":
1552 globalObjects.eachLine { line ->
1553 if(line.contains("imageCaptureObject")){
1559 globalObjects.append("@Field def imageCaptureObject = new ImageCaptures(sendEvent, 1, init)\n")
1561 if (imageCaptureObjects == 0) {
1562 imageCaptureObject0 = metaData['name']
1563 this[imageCaptureObject0] = new ImageCaptures({}, 1, true)
1564 } else if (imageCaptureObjects == 1) {
1565 imageCaptureObject1 = metaData['name']
1566 this[imageCaptureObject1] = new ImageCaptures({}, 1, true)
1567 } else if (imageCaptureObjects == 2) {
1568 imageCaptureObject2 = metaData['name']
1569 this[imageCaptureObject2] = new ImageCaptures({}, 1, true)
1572 imageCaptureObjects=imageCaptureObjects+1
1574 settings.put(metaData['name'], new ImageCaptures({}, 1, true))
1576 if (App == "App1") {
1577 extractedObjectsApp1.append("//Object for class Image Capture!\n")
1578 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1579 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.imageCaptureObject\n")
1581 extractedObjectsApp2.append("//Object for class Image Capture!\n")
1582 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1583 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.imageCaptureObject\n")
1586 case "device.mobilePresence":
1587 globalObjects.eachLine { line ->
1588 if(line.contains("mobilePresenceObject")){
1594 globalObjects.append("@Field def mobilePresenceObject = new MobilePresences(sendEvent, 1)\n")
1596 if (mobilePresenceObjects == 0) {
1597 mobilePresenceObject0 = metaData['name']
1598 this[mobilePresenceObject0] = new MobilePresences({}, 1)
1599 } else if (mobilePresenceObjects == 1) {
1600 mobilePresenceObject1 = metaData['name']
1601 this[mobilePresenceObject1] = new MobilePresences({}, 1)
1602 } else if (mobilePresenceObjects == 2) {
1603 mobilePresenceObject2 = metaData['name']
1604 this[mobilePresenceObject2] = new MobilePresences({}, 1)
1607 mobilePresenceObjects=mobilePresenceObjects+1
1609 settings.put(metaData['name'], new MobilePresences({}, 1))
1611 if (App == "App1") {
1612 extractedObjectsApp1.append("//Object for class mobile presence!\n")
1613 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1614 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.mobilePresenceObject\n")
1616 extractedObjectsApp2.append("//Object for class mobile presence!\n")
1617 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1618 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.mobilePresenceObject\n")
1621 case "device.aeonKeyFob":
1622 globalObjects.eachLine { line ->
1623 if(line.contains("aeonKeyFobObject")){
1628 globalObjects.append("@Field def aeonKeyFobObject = new AeonKeyFobs(sendEvent, 1)\n")
1630 if (aeonKeyFobObjects == 0) {
1631 aeonKeyFobObject0 = metaData['name']
1632 this[aeonKeyFobObject0] = new AeonKeyFobs({}, 1)
1633 } else if (aeonKeyFobObjects == 1) {
1634 aeonKeyFobObject1 = metaData['name']
1635 this[aeonKeyFobObject1] = new AeonKeyFobs({}, 1)
1636 } else if (aeonKeyFobObjects == 2) {
1637 aeonKeyFobObject2 = metaData['name']
1638 this[aeonKeyFobObject2] = new AeonKeyFobs({}, 1)
1641 aeonKeyFobObjects=aeonKeyFobObjects+1
1643 settings.put(metaData['name'], new AeonKeyFobs({}, 1))
1645 if (App == "App1") {
1646 extractedObjectsApp1.append("//Object for class aeon key fob!\n")
1647 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1648 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.aeonKeyFobObject\n")
1650 extractedObjectsApp2.append("//Object for class aeon key fob!\n")
1651 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1652 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.aeonKeyFobObject\n")
1656 //def randomVariable = Math.abs(new Random().nextInt() % 3)
1657 def modes = ["away", "home", "night"]
1658 // Always assign a different mode to each app
1660 if (assignDifferentModes) {
1661 userInput = modes[chooseMode]
1665 chooseMode = chooseMode%3
1667 userInput = modes[1]
1670 if (modeVariables == 0) {
1671 mode0 = metaData['name']
1672 this[mode0] = userInput
1673 } else if (modeVariables == 1) {
1674 mode1 = metaData['name']
1675 this[mode1] = userInput
1676 } else if (modeVariables == 2) {
1677 mode2 = metaData['name']
1678 this[mode2] = userInput
1679 } else if (modeVariables == 3) {
1680 mode3 = metaData['name']
1681 this[mode3] = userInput
1682 } else if (modeVariables == 4) {
1683 mode4 = metaData['name']
1684 this[mode4] = userInput
1685 } else if (modeVariables == 5) {
1686 mode5 = metaData['name']
1687 this[mode5] = userInput
1690 if (modeVariables != 5)
1691 modeVariables=modeVariables+1
1696 settings.put(metaData['name'], metaData['name'])
1698 if (App == "App1") {
1699 extractedObjectsApp1.append("//Global variable for mode!\n")
1700 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1702 extractedObjectsApp2.append("//Global variable for mode!\n")
1703 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1707 //def userInput = Math.abs(new Random().nextInt() % 60) + 40
1710 if (decimalVariables == 0) {
1711 decimal0 = metaData['name']
1712 this[decimal0] = userInput
1713 } else if (decimalVariables == 1) {
1714 decimal1 = metaData['name']
1715 this[decimal1] = userInput
1716 } else if (decimalVariables == 2) {
1717 decimal2 = metaData['name']
1718 this[decimal2] = userInput
1719 } else if (decimalVariables == 3) {
1720 decimal3 = metaData['name']
1721 this[decimal3] = userInput
1722 } else if (decimalVariables == 4) {
1723 decimal4 = metaData['name']
1724 this[decimal4] = userInput
1725 } else if (decimalVariables == 5) {
1726 decimal5 = metaData['name']
1727 this[decimal5] = userInput
1730 if (decimalVariables != 5)
1731 decimalVariables=decimalVariables+1
1735 settings.put(metaData['name'], metaData['name'])
1737 if (App == "App1") {
1738 extractedObjectsApp1.append("//Global variable for decimal number!\n")
1739 extractedObjectsApp1.append("def "+metaData['name']+" = "+userInput+"\n")
1741 extractedObjectsApp2.append("//Global variable for decimal number!\n")
1742 extractedObjectsApp2.append("def "+metaData['name']+" = "+userInput+"\n")
1746 def userInput = "This is just a text!"
1748 if (textVariables == 0) {
1749 text0 = metaData['name']
1750 this[text0] = userInput
1751 } else if (textVariables == 1) {
1752 text1 = metaData['name']
1753 this[text1] = userInput
1754 } else if (textVariables == 2) {
1755 text2 = metaData['name']
1756 this[text2] = userInput
1757 } else if (textVariables == 3) {
1758 text3 = metaData['name']
1759 this[text3] = userInput
1760 } else if (textVariables == 4) {
1761 text4 = metaData['name']
1762 this[text4] = userInput
1763 } else if (textVariables == 5) {
1764 text5 = metaData['name']
1765 this[text5] = userInput
1768 if (textVariables != 5)
1769 textVariables=textVariables+1
1774 settings.put(metaData['name'], metaData['name'])
1776 if (App == "App1") {
1777 extractedObjectsApp1.append("//Global variable for text!\n")
1778 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1780 extractedObjectsApp2.append("//Global variable for text!\n")
1781 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1785 //def userInput = Math.abs(new Random().nextInt() % 60) + 40
1788 if (numberVariables == 0) {
1789 number0 = metaData['name']
1790 this[number0] = userInput
1791 } else if (numberVariables == 1) {
1792 number1 = metaData['name']
1793 this[number1] = userInput
1794 } else if (numberVariables == 2) {
1795 number2 = metaData['name']
1796 this[number2] = userInput
1797 } else if (numberVariables == 3) {
1798 number3 = metaData['name']
1799 this[number3] = userInput
1800 } else if (numberVariables == 4) {
1801 number4 = metaData['name']
1802 this[number4] = userInput
1803 } else if (numberVariables == 5) {
1804 number5 = metaData['name']
1805 this[number5] = userInput
1809 if (numberVariables != 5)
1810 numberVariables=numberVariables+1
1815 settings.put(metaData['name'], metaData['name'])
1817 if (App == "App1") {
1818 extractedObjectsApp1.append("//Global variable for number!\n")
1819 extractedObjectsApp1.append("def "+metaData['name']+" = "+userInput+"\n")
1821 extractedObjectsApp2.append("//Global variable for number!\n")
1822 extractedObjectsApp2.append("def "+metaData['name']+" = "+userInput+"\n")
1826 def userInput = "15:00"
1828 if (timeVariables == 0) {
1829 time0 = metaData['name']
1830 this[time0] = userInput
1831 } else if (timeVariables == 1) {
1832 time1 = metaData['name']
1833 this[time1] = userInput
1834 } else if (timeVariables == 2) {
1835 time2 = metaData['name']
1836 this[time2] = userInput
1837 } else if (timeVariables == 3) {
1838 time3 = metaData['name']
1839 this[time3] = userInput
1840 } else if (timeVariables == 4) {
1841 time4 = metaData['name']
1842 this[time4] = userInput
1843 } else if (timeVariables == 5) {
1844 time5 = metaData['name']
1845 this[time5] = userInput
1848 if (timeVariables != 5)
1849 timeVariables=timeVariables+1
1853 settings.put(metaData['name'], metaData['name'])
1855 if (App == "App1") {
1856 extractedObjectsApp1.append("//Global variable for time!\n")
1857 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1859 extractedObjectsApp2.append("//Global variable for time!\n")
1860 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1864 if (metaData['options'] != null)
1865 modes = metaData['options']
1866 else if (metaData['metadata'] != null) { // If it is not named 'options' then it is captured as 'metadata'
1867 modes = metaData['metadata']
1868 modes = modes['values']
1870 def userInput = modes[0]
1872 if (enumVariables == 0) {
1873 enum0 = metaData['name']
1874 this[enum0] = userInput
1875 } else if (enumVariables == 1) {
1876 enum1 = metaData['name']
1877 this[enum1] = userInput
1878 } else if (enumVariables == 2) {
1879 enum2 = metaData['name']
1880 this[enum2] = userInput
1881 } else if (enumVariables == 3) {
1882 enum3 = metaData['name']
1883 this[enum3] = userInput
1884 } else if (enumVariables == 4) {
1885 enum4 = metaData['name']
1886 this[enum4] = userInput
1887 } else if (enumVariables == 5) {
1888 enum5 = metaData['name']
1889 this[enum5] = userInput
1892 if (enumVariables != 5)
1893 enumVariables=enumVariables+1
1898 settings.put(metaData['name'], metaData['name'])
1900 if (App == "App1") {
1901 extractedObjectsApp1.append("//Global variable for enum!\n")
1902 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1904 extractedObjectsApp2.append("//Global variable for enum!\n")
1905 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1909 //def userInput = Math.abs(new Random().nextInt() % 2)
1910 def userInput = true
1912 if (boolVariables == 0) {
1913 bool0 = metaData['name']
1914 this[bool0] = userInput
1915 } else if (boolVariables == 1) {
1916 bool1 = metaData['name']
1917 this[bool1] = userInput
1918 } else if (boolVariables == 2) {
1919 bool2 = metaData['name']
1920 this[bool2] = userInput
1921 } else if (boolVariables == 3) {
1922 bool3 = metaData['name']
1923 this[bool3] = userInput
1924 } else if (boolVariables == 4) {
1925 bool4 = metaData['name']
1926 this[bool4] = userInput
1927 } else if (boolVariables == 5) {
1928 bool5 = metaData['name']
1929 this[bool5] = userInput
1932 if (boolVariables != 5)
1933 boolVariables=boolVariables+1
1938 settings.put(metaData['name'], metaData['name'])
1940 if (App == "App1") {
1941 extractedObjectsApp1.append("//Global variable for boolean!\n")
1942 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1944 extractedObjectsApp2.append("//Global variable for boolean!\n")
1945 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1949 //def userInput = Math.abs(new Random().nextInt() % 2)
1950 def userInput = true
1952 if (boolVariables == 0) {
1953 bool0 = metaData['name']
1954 this[bool0] = userInput
1955 } else if (boolVariables == 1) {
1956 bool1 = metaData['name']
1957 this[bool1] = userInput
1958 } else if (boolVariables == 2) {
1959 bool2 = metaData['name']
1960 this[bool2] = userInput
1961 } else if (boolVariables == 3) {
1962 bool3 = metaData['name']
1963 this[bool3] = userInput
1964 } else if (boolVariables == 4) {
1965 bool4 = metaData['name']
1966 this[bool4] = userInput
1967 } else if (boolVariables == 5) {
1968 bool5 = metaData['name']
1969 this[bool5] = userInput
1972 if (boolVariables != 5)
1973 boolVariables=boolVariables+1
1978 settings.put(metaData['name'], metaData['name'])
1980 if (App == "App1") {
1981 extractedObjectsApp1.append("//Global variable for boolean!\n")
1982 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1984 extractedObjectsApp2.append("//Global variable for boolean!\n")
1985 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1989 def userInput = 9495379373
1991 if (phoneVariables == 0) {
1992 phone0 = metaData['name']
1993 this[phone0] = userInput
1994 } else if (phoneVariables == 1) {
1995 phone1 = metaData['name']
1996 this[phone1] = userInput
1997 } else if (phoneVariables == 2) {
1998 phone2 = metaData['name']
1999 this[phone2] = userInput
2000 } else if (phoneVariables == 3) {
2001 phone3 = metaData['name']
2002 this[phone3] = userInput
2003 } else if (phoneVariables == 4) {
2004 phone4 = metaData['name']
2005 this[phone4] = userInput
2006 } else if (phoneVariables == 5) {
2007 phone5 = metaData['name']
2008 this[phone5] = userInput
2011 if (phoneVariables != 5)
2012 phoneVariables=phoneVariables+1
2016 settings.put(metaData['name'], metaData['name'])
2018 if (App == "App1") {
2019 extractedObjectsApp1.append("//Global variable for phone!\n")
2020 extractedObjectsApp1.append("def "+metaData['name']+" = "+userInput+"\n")
2022 extractedObjectsApp2.append("//Global variable for phone!\n")
2023 extractedObjectsApp2.append("def "+metaData['name']+" = "+userInput+"\n")
2027 def userInput = "AJ"
2029 if (contactVariables == 0) {
2030 contact0 = metaData['name']
2031 this[contact0] = userInput
2032 } else if (contactVariables == 1) {
2033 contact1 = metaData['name']
2034 this[contact1] = userInput
2035 } else if (contactVariables == 2) {
2036 contact2 = metaData['name']
2037 this[contact2] = userInput
2038 } else if (contactVariables == 3) {
2039 contact3 = metaData['name']
2040 this[contact3] = userInput
2041 } else if (contactVariables == 4) {
2042 contact4 = metaData['name']
2043 this[contact4] = userInput
2044 } else if (contactVariables == 5) {
2045 contact5 = metaData['name']
2046 this[contact5] = userInput
2049 if (contactVariables != 5)
2050 contactVariables=contactVariables+1
2054 settings.put(metaData['name'], metaData['name'])
2056 if (App == "App1") {
2057 extractedObjectsApp1.append("//Global variable for contact!\n")
2058 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
2060 extractedObjectsApp2.append("//Global variable for contact!\n")
2061 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
2064 case "capability.remainingDevices":
2065 String nameOfObject = thisCapability+"Object"
2066 globalObjects.eachLine { line ->
2067 if(line.contains(nameOfObject)){
2073 globalObjects.append("@Field def $nameOfObject = new RemainingDevices(sendEvent, 1)\n")
2075 settings.put(metaData['name'], new RemainingDevices({}, 1))
2077 if (App == "App1") {
2078 extractedObjectsApp1.append("//Object for class remaining devices!\n")
2079 extractedObjectsApp1.append("def "+metaData['name']+"\n")
2080 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.$nameOfObject\n")
2082 extractedObjectsApp2.append("//Object for class remaining devices!\n")
2083 extractedObjectsApp2.append("def "+metaData['name']+"\n")
2084 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.$nameOfObject\n")
2092 def label(LinkedHashMap metaData) {
2093 if (metaData.containsKey('title')) {
2094 println metaData['title']
2096 if (metaData.containsKey('options')) {
2097 println "Options: "+metaData['options']
2100 println("//IGNORE--ForMobileUse//")
2103 def mode(LinkedHashMap metaData) {
2104 if (metaData.containsKey('title')) {
2105 println metaData['title']
2107 if (metaData.containsKey('options')) {
2108 println "Options: "+metaData['options']
2111 println("//IGNORE--ForMobileUse//")
2114 def href(LinkedHashMap metaData) {
2115 println("//IGNORE--some data//")
2118 def href(LinkedHashMap metaData, String name) {
2119 println("//IGNORE--some data//")
2121 /////Input Methods/////
2124 /////MethodsForExtraction/////
2125 def definition(LinkedHashMap metaData) {
2126 println("///Just some information///")
2129 def preferences(Closure inputData) {
2130 find(inputData) //Run the closure to extract pages/sections/inputMethods
2131 settings.put("END", "END")
2132 if (App == "App1") {
2133 extractedObjectsConstructorApp1.append("//Global variable for settings!\n")
2134 extractedObjectsConstructorApp1.append("settings = [")
2138 extractedObjectsConstructorApp1.append("$key: $key, ")
2140 extractedObjectsConstructorApp1.append("END: \"END\"]\n")
2143 extractedObjectsConstructorApp2.append("//Global variable for settings!\n")
2144 extractedObjectsConstructorApp2.append("settings = [")
2148 extractedObjectsConstructorApp2.append("$key: $key, ")
2150 extractedObjectsConstructorApp2.append("END: \"END\"]\n")
2153 File GlobalVariablesBothApps = new File("GlobalVariables/GlobalVariablesBothApps.groovy")
2154 GlobalVariablesBothApps.write("")
2155 GlobalVariablesBothApps.append("//Creating Global variables for both apps\n")
2156 GlobalVariablesBothApps.append("@Field def sendEvent = {eventDataMap -> eventHandler(eventDataMap)}\n")
2157 GlobalVariablesBothApps.append("@Field def locationObject = new LocationVar(sendEvent, init)\n")
2158 GlobalVariablesBothApps.append("@Field def appObject = new Touched(sendEvent, 0)\n")
2160 globalObjects.withReader { reader ->
2161 while ((line = reader.readLine()) != null) {
2162 GlobalVariablesBothApps.append(line)
2163 GlobalVariablesBothApps.append("\n")
2169 def image(String data) {
2170 println("//IGNORE--some image//")
2173 def page(LinkedHashMap metaData, Closure inputData) {
2174 if (metaData.containsKey('name'))
2175 println(metaData['name'])
2176 if (metaData.containsKey('title'))
2177 println(metaData['title'])
2179 find(inputData) //Run the closure to extract sections/inputMethods
2182 def page(LinkedHashMap metaData) {
2183 def nameOfFunction = metaData['name']
2184 "$nameOfFunction"() //Call the page
2187 def dynamicPage(LinkedHashMap metaData, Closure inputData) {
2188 if (metaData.containsKey('name'))
2189 println(metaData['name'])
2190 if (metaData.containsKey('title'))
2191 println(metaData['title'])
2193 find(inputData) //Run the closure to extract sections/inputMethods
2196 def paragraph(String paragraphText) {
2197 println(paragraphText)
2200 def paragraph(LinkedHashMap metaData, String paragraphText) {
2201 println(paragraphText)
2204 def section(String title, Closure inputData) {
2206 find(inputData) //Run the closure to extract inputMethods
2209 def section(Closure inputData) {
2210 find(inputData) //Run the closure to extract inputMethods
2213 def section(LinkedHashMap metaData, Closure inputData) {
2214 find(inputData) //Run the closure to extract inputMethods
2217 def section(LinkedHashMap metaData, String data, Closure inputData) {
2221 def mappings(Closure inputData) {
2222 println("//IGNORE--some data//")
2224 /////MethodsForExtraction/////