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 Timer.SimulatedTimer
84 @Field def location = new LocationVar({}, true)
85 //Settings variable defined to settings on purpose
86 @Field def settings = [app: "app"]
87 //Global variable for state[mode]
88 @Field def state = [home:[],away:[],night:[]]
89 //Create a global logger object for methods
90 @Field def log = new Logger()
91 //Create a global variable for optional property
92 @Field def optional = false //by default for now
93 //Global Object for class AtomicState!
94 @Field def atomicState = [history: "15:00"]
97 //Global variables for files
98 @Field File globalObjects = new File("Extractor/globalObjects.groovy")
99 @Field File extractedObjectsApp1 = new File("Extractor/App1/extractedObjectsApp1.groovy")
100 @Field File extractedObjectsApp2 = new File("Extractor/App2/extractedObjectsApp2.groovy")
101 @Field File extractedObjectsConstructorApp1 = new File("Extractor/App1/extractedObjectsConstructorApp1.groovy")
102 @Field File extractedObjectsConstructorApp2 = new File("Extractor/App2/extractedObjectsConstructorApp2.groovy")
104 @Field chooseMode = 0
107 globalObjects.write("")
108 extractedObjectsApp1.write("")
109 extractedObjectsConstructorApp1.write("")
111 } else if (App == "App2") {
112 extractedObjectsApp2.write("")
113 extractedObjectsConstructorApp2.write("")
119 //Some of methods-May be needed even in install
120 /////////////////////////////////////////////////////////////////////
121 def timeToday(String time, Object timeZone) {
122 def timeOfDay = new Date()
123 def _inputTime = time.split(':')
124 def inputTime = Integer.parseInt(_inputTime[0])*3600+Integer.parseInt(_inputTime[1])*60+1564191100415
125 timeOfDay.time = inputTime
132 //Global Object for class Touch Sensor!
133 @Field touchSensorObjects = 0
134 @Field def touchSensorObject0
135 @Field def touchSensorObject1
136 @Field def touchSensorObject2
137 //Global Object for class switch!
138 @Field switchObjects = 0
139 @Field def switchObject0
140 @Field def switchObject1
141 @Field def switchObject2
142 //Global Object for class lock!
143 @Field lockObjects = 0
144 @Field def lockObject0
145 @Field def lockObject1
146 @Field def lockObject2
147 //Global Object for class door control!
148 @Field doorControlObjects = 0
149 @Field def doorControlObject0
150 @Field def doorControlObject1
151 @Field def doorControlObject2
152 //Global Object for class contact sensor!
153 @Field contactObjects = 0
154 @Field def contactObject0
155 @Field def contactObject1
156 @Field def contactObject2
157 //Global Object for class presence sensor!
158 @Field presenceSensorObjects = 0
159 @Field def presenceSensorObject0
160 @Field def presenceSensorObject1
161 @Field def presenceSensorObject2
162 //Global Object for class thermostat!
163 @Field thermostatObjects = 0
164 @Field def thermostatObject0
165 @Field def thermostatObject1
166 @Field def thermostatObject2
167 //Global Object for class music player!
168 @Field musicPlayerObjects = 0
169 @Field def musicPlayerObject0
170 @Field def musicPlayerObject1
171 @Field def musicPlayerObject2
172 //Global Object for class aeon key fob!
173 @Field aeonKeyFobObjects = 0
174 @Field def aeonKeyFobObject0
175 @Field def aeonKeyFobObject1
176 @Field def aeonKeyFobObject2
177 //Global Object for class motion sensor!
178 @Field motionSensorObjects = 0
179 @Field def motionSensorObject0
180 @Field def motionSensorObject1
181 @Field def motionSensorObject2
182 //Global Object for class image capture!
183 @Field imageCaptureObjects = 0
184 @Field def imageCaptureObject0
185 @Field def imageCaptureObject1
186 @Field def imageCaptureObject2
187 //Global Object for class smoke detector!
188 @Field smokeDetectorObjects = 0
189 @Field def smokeDetectorObject0
190 @Field def smokeDetectorObject1
191 @Field def smokeDetectorObject2
192 //Global Object for class alarm!
193 @Field alarmObjects = 0
194 @Field def alarmObject0
195 @Field def alarmObject1
196 @Field def alarmObject2
197 //Global Object for class speech synthesis!
198 @Field speechSynthesisObjects = 0
199 @Field def speechSynthesisObject0
200 @Field def speechSynthesisObject1
201 @Field def speechSynthesisObject2
202 //Global Object for class acceleration sensor!
203 @Field accelerationSensorObjects = 0
204 @Field def accelerationSensorObject0
205 @Field def accelerationSensorObject1
206 @Field def accelerationSensorObject2
207 //Global Object for class battery!
208 @Field batteryObjects = 0
209 @Field def batteryObject0
210 @Field def batteryObject1
211 @Field def batteryObject2
212 //Global Object for class beacon sensor!
213 @Field beaconSensorObjects = 0
214 @Field def beaconSensorObject0
215 @Field def beaconSensorObject1
216 @Field def beaconSensorObject2
217 //Global Object for class carbon monoxide detector!
218 @Field carbonMonoxideDetectorObjects = 0
219 @Field def carbonMonoxideDetectorObject0
220 @Field def carbonMonoxideDetectorObject1
221 @Field def carbonMonoxideDetectorObject2
222 //Global Object for class color control!
223 @Field colorControlObjects = 0
224 @Field def colorControlObject0
225 @Field def colorControlObject1
226 @Field def colorControlObject2
227 //Global Object for class energy meter!
228 @Field energyMeterObjects = 0
229 @Field def energyMeterObject0
230 @Field def energyMeterObject1
231 @Field def energyMeterObject2
232 //Global Object for class energy meter!
233 @Field illuminanceMeasurementObjects = 0
234 @Field def illuminanceMeasurementObject0
235 @Field def illuminanceMeasurementObject1
236 @Field def illuminanceMeasurementObject2
237 //Global Object for class power meter!
238 @Field powerMeterObjects = 0
239 @Field def powerMeterObject0
240 @Field def powerMeterObject1
241 @Field def powerMeterObject2
242 //Global Object for class power meter!
243 @Field humidityMeasurementObjects = 0
244 @Field def humidityMeasurementObject0
245 @Field def humidityMeasurementObject1
246 @Field def humidityMeasurementObject2
247 //Global Object for class relay switch!
248 @Field relaySwitchObjects = 0
249 @Field def relaySwitchObject0
250 @Field def relaySwitchObject1
251 @Field def relaySwitchObject2
252 //Global Object for class sleep sensor!
253 @Field sleepSensorObjects = 0
254 @Field def sleepSensorObject0
255 @Field def sleepSensorObject1
256 @Field def sleepSensorObject2
257 //Global Object for class step sensor!
258 @Field stepSensorObjects = 0
259 @Field def stepSensorObject0
260 @Field def stepSensorObject1
261 @Field def stepSensorObject2
262 //Global Object for class switch level!
263 @Field switchLevelObjects = 0
264 @Field def switchLevelObject0
265 @Field def switchLevelObject1
266 @Field def switchLevelObject2
267 //Global Object for class temperature measurement!
268 @Field temperatureMeasurementObjects = 0
269 @Field def temperatureMeasurementObject0
270 @Field def temperatureMeasurementObject1
271 @Field def temperatureMeasurementObject2
272 //Global Object for class water sensor!
273 @Field waterSensorObjects = 0
274 @Field def waterSensorObject0
275 @Field def waterSensorObject1
276 @Field def waterSensorObject2
277 //Global Object for class valve!
278 @Field valveObjects = 0
279 @Field def valveObject0
280 @Field def valveObject1
281 @Field def valveObject2
282 //Global Object for class mobile presence!
283 @Field mobilePresenceObjects = 0
284 @Field def mobilePresenceObject0
285 @Field def mobilePresenceObject1
286 @Field def mobilePresenceObject2
287 //Global Object for class color temperature!
288 @Field colorTemperatureObjects = 0
289 @Field def colorTemperatureObject0
290 @Field def colorTemperatureObject1
291 @Field def colorTemperatureObject2
292 //Global Object for class button!
293 @Field buttonObjects = 0
294 @Field def buttonObject0
295 @Field def buttonObject1
296 @Field def buttonObject2
297 //Global Object for class three axis!
298 @Field threeAxisObjects = 0
299 @Field def threeAxisObject0
300 @Field def threeAxisObject1
301 @Field def threeAxisObject2
302 //Global Object for class momentary switch device!
303 @Field momentaryObjects = 0
304 @Field def momentaryObject0
305 @Field def momentaryObject1
306 @Field def momentaryObject2
311 @Field modeVariables = 0
319 @Field numberVariables = 0
327 @Field decimalVariables = 0
335 @Field timeVariables = 0
343 @Field enumVariables = 0
351 @Field phoneVariables = 0
359 @Field contactVariables = 0
367 @Field textVariables = 0
375 @Field boolVariables = 0
383 /////Input Methods/////
385 def input(String name, String type) {
386 LinkedHashMap metaData = []
387 metaData.put('name',name)
388 metaData.put('type',type)
392 //input "","",linkedHashMap
393 def input(LinkedHashMap metaData, String name, String type) {
394 metaData.put('name',name)
395 metaData.put('type',type)
399 //input "", "", linkedHashMap, Closure
400 def input(LinkedHashMap metaData, String name, String type, Closure Input) {
401 metaData.put('name',name)
402 metaData.put('type',type)
407 //input linkedHashMap
408 def input(LinkedHashMap metaData) {
409 if (metaData.containsKey('title')) {
410 println metaData['title']
412 if (metaData.containsKey('options')) {
413 println "Options: "+metaData['options']
416 switch(metaData['type']) {
417 case "capability.lock":
418 globalObjects.eachLine { line ->
419 if(line.contains("lockObject")){
425 globalObjects.append("@Field def lockObject = new Locks(sendEvent, 1, init)\n")
427 if (lockObjects == 0) {
428 lockObject0 = metaData['name']
429 this[lockObject0] = new Locks({}, 1, true)
430 } else if (lockObjects == 1) {
431 lockObject1 = metaData['name']
432 this[lockObject1] = new Locks({}, 1, true)
433 } else if (lockObjects == 2) {
434 lockObject2 = metaData['name']
435 this[lockObject2] = new Locks({}, 1, true)
438 lockObjects=lockObjects+1
440 settings.put(metaData['name'], new Locks({}, 1, true))
443 extractedObjectsApp1.append("//Object for class lock!\n")
444 extractedObjectsApp1.append("def "+metaData['name']+"\n")
445 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.lockObject\n")
447 extractedObjectsApp2.append("//Object for class lock!\n")
448 extractedObjectsApp2.append("def "+metaData['name']+"\n")
449 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.lockObject\n")
452 case "capability.alarm":
453 globalObjects.eachLine { line ->
454 if(line.contains("alarmObject")){
460 globalObjects.append("@Field def alarmObject = new Alarms(sendEvent, 1, init)\n")
462 if (alarmObjects == 0) {
463 alarmObject0 = metaData['name']
464 this[alarmObject0] = new Alarms({}, 1, true)
465 } else if (alarmObjects == 1) {
466 alarmObject1 = metaData['name']
467 this[alarmObject1] = new Alarms({}, 1, true)
468 } else if (alarmObjects == 2) {
469 alarmObject2 = metaData['name']
470 this[alarmObject2] = new Alarms({}, 1, true)
473 alarmObjects=alarmObjects+1
475 settings.put(metaData['name'], new Alarms({}, 1, true))
478 extractedObjectsApp1.append("//Object for class alarm!\n")
479 extractedObjectsApp1.append("def "+metaData['name']+"\n")
480 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.alarmObject\n")
482 extractedObjectsApp2.append("//Object for class alarm!\n")
483 extractedObjectsApp2.append("def "+metaData['name']+"\n")
484 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.alarmObject\n")
487 case "capability.button":
488 globalObjects.eachLine { line ->
489 if(line.contains("buttonObject")){
495 globalObjects.append("@Field def buttonObject = new Buttons(sendEvent, 1, init)\n")
497 if (buttonObjects == 0) {
498 buttonObject0 = metaData['name']
499 this[buttonObject0] = new Buttons({}, 1, true)
500 } else if (buttonObjects == 1) {
501 buttonObject1 = metaData['name']
502 this[buttonObject1] = new Buttons({}, 1, true)
503 } else if (buttonObjects == 2) {
504 buttonObject2 = metaData['name']
505 this[buttonObject2] = new Buttons({}, 1, true)
508 buttonObjects=buttonObjects+1
510 settings.put(metaData['name'], new Buttons({}, 1, true))
513 extractedObjectsApp1.append("//Object for class Button!\n")
514 extractedObjectsApp1.append("def "+metaData['name']+"\n")
515 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.buttonObject\n")
517 extractedObjectsApp2.append("//Object for class Button!\n")
518 extractedObjectsApp2.append("def "+metaData['name']+"\n")
519 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.buttonObject\n")
522 case "capability.battery":
523 globalObjects.eachLine { line ->
524 if(line.contains("batteryObject")){
530 globalObjects.append("@Field def batteryObject = new Batteries(sendEvent, 1, init)\n")
532 if (batteryObjects == 0) {
533 batteryObject0 = metaData['name']
534 this[batteryObject0] = new Batteries({}, 1, true)
535 } else if (batteryObjects == 1) {
536 batteryObject1 = metaData['name']
537 this[batteryObject1] = new Batteries({}, 1, true)
538 } else if (batteryObjects == 2) {
539 batteryObject2 = metaData['name']
540 this[batteryObject2] = new Batteries({}, 1, true)
543 batteryObjects=batteryObjects+1
545 settings.put(metaData['name'], new Batteries({}, 1, true))
548 extractedObjectsApp1.append("//Object for class Battery!\n")
549 extractedObjectsApp1.append("def "+metaData['name']+"\n")
550 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.batteryObject\n")
552 extractedObjectsApp2.append("//Object for class Battery!\n")
553 extractedObjectsApp2.append("def "+metaData['name']+"\n")
554 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.batteryObject\n")
557 case "capability.beacon":
558 globalObjects.eachLine { line ->
559 if(line.contains("beaconSensorObject")){
565 globalObjects.append("@Field def beaconSensorObject = new BeaconSensors(sendEvent, 1, init)\n")
567 if (beaconSensorObjects == 0) {
568 beaconSensorObject0 = metaData['name']
569 this[beaconSensorObject0] = new BeaconSensors({}, 1, true)
570 } else if (beaconSensorObjects == 1) {
571 beaconSensorObject1 = metaData['name']
572 this[beaconSensorObject1] = new BeaconSensors({}, 1, true)
573 } else if (beaconSensorObjects == 2) {
574 beaconSensorObject2 = metaData['name']
575 this[beaconSensorObject2] = new BeaconSensors({}, 1, true)
578 beaconSensorObjects=beaconSensorObjects+1
580 settings.put(metaData['name'], new BeaconSensors({}, 1, true))
583 extractedObjectsApp1.append("//Object for class beacon sensor!\n")
584 extractedObjectsApp1.append("def "+metaData['name']+"\n")
585 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.beaconSensorObject\n")
587 extractedObjectsApp2.append("//Object for class beacon sensor!\n")
588 extractedObjectsApp2.append("def "+metaData['name']+"\n")
589 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.beaconSensorObject\n")
592 case "capability.carbonMonoxideDetector":
593 globalObjects.eachLine { line ->
594 if(line.contains("carbonMonoxideDetectorObject")){
600 globalObjects.append("@Field def carbonMonoxideDetectorObject = new CarbonMonoxideDetectors(sendEvent, 1, init)\n")
602 if (carbonMonoxideDetectorObjects == 0) {
603 carbonMonoxideDetectorObject0 = metaData['name']
604 this[carbonMonoxideDetectorObject0] = new CarbonMonoxideDetectors({}, 1, true)
605 } else if (carbonMonoxideDetectorObjects == 1) {
606 carbonMonoxideDetectorObject1 = metaData['name']
607 this[carbonMonoxideDetectorObject1] = new CarbonMonoxideDetectors({}, 1, true)
608 } else if (carbonMonoxideDetectorObjects == 2) {
609 carbonMonoxideDetectorObject2 = metaData['name']
610 this[carbonMonoxideDetectorObject2] = new CarbonMonoxideDetectors({}, 1, true)
613 carbonMonoxideDetectorObjects=carbonMonoxideDetectorObjects+1
615 settings.put(metaData['name'], new CarbonMonoxideDetectors({}, 1, true))
618 extractedObjectsApp1.append("//Object for class carbon monoxide detector!\n")
619 extractedObjectsApp1.append("def "+metaData['name']+"\n")
620 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.carbonMonoxideDetectorObject\n")
622 extractedObjectsApp2.append("//Object for class carbon monoxide detector!\n")
623 extractedObjectsApp2.append("def "+metaData['name']+"\n")
624 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.carbonMonoxideDetectorObject\n")
627 case "capability.colorTemperature":
628 globalObjects.eachLine { line ->
629 if(line.contains("colorTemperatureObject")){
635 globalObjects.append("@Field def colorTemperatureObject = new ColorTemperatures(sendEvent, 1, init)\n")
637 if (colorTemperatureObjects == 0) {
638 colorTemperatureObject0 = metaData['name']
639 this[colorTemperatureObject0] = new ColorTemperatures({}, 1, true)
640 } else if (colorTemperatureObjects == 1) {
641 colorTemperatureObject1 = metaData['name']
642 this[colorTemperatureObject1] = new ColorTemperatures({}, 1, true)
643 } else if (colorTemperatureObjects == 2) {
644 colorTemperatureObject2 = metaData['name']
645 this[colorTemperatureObject2] = new ColorTemperatures({}, 1, true)
648 colorTemperatureObjects=colorTemperatureObjects+1
650 settings.put(metaData['name'], new ColorTemperatures({}, 1, true))
653 extractedObjectsApp1.append("//Object for class color temperature!\n")
654 extractedObjectsApp1.append("def "+metaData['name']+"\n")
655 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.colorTemperatureObject\n")
657 extractedObjectsApp2.append("//Object for class color control!\n")
658 extractedObjectsApp2.append("def "+metaData['name']+"\n")
659 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.colorTemperatureObject\n")
662 case "capability.colorControl":
663 globalObjects.eachLine { line ->
664 if(line.contains("colorControlObject")){
670 globalObjects.append("@Field def colorControlObject = new ColorControls(sendEvent, 1, init)\n")
672 if (colorControlObjects == 0) {
673 colorControlObject0 = metaData['name']
674 this[colorControlObject0] = new ColorControls({}, 1, true)
675 } else if (colorControlObjects == 1) {
676 colorControlObject1 = metaData['name']
677 this[colorControlObject1] = new ColorControls({}, 1, true)
678 } else if (colorControlObjects == 2) {
679 colorControlObject2 = metaData['name']
680 this[colorControlObject2] = new ColorControls({}, 1, true)
683 colorControlObjects=colorControlObjects+1
685 settings.put(metaData['name'], new ColorControls({}, 1, true))
688 extractedObjectsApp1.append("//Object for class color control!\n")
689 extractedObjectsApp1.append("def "+metaData['name']+"\n")
690 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.colorControlObject\n")
692 extractedObjectsApp2.append("//Object for class color control!\n")
693 extractedObjectsApp2.append("def "+metaData['name']+"\n")
694 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.colorControlObject\n")
697 case "capability.contactSensor":
698 globalObjects.eachLine { line ->
699 if(line.contains("contactObject")){
705 globalObjects.append("@Field def contactObject = new ContactSensors(sendEvent, 1, init)\n")
707 if (contactObjects == 0) {
708 contactObject0 = metaData['name']
709 this[contactObject0] = new ContactSensors({}, 1, true)
710 } else if (contactObjects == 1) {
711 contactObject1 = metaData['name']
712 this[contactObject1] = new ContactSensors({}, 1, true)
713 } else if (contactObjects == 2) {
714 contactObject2 = metaData['name']
715 this[contactObject2] = new ContactSensors({}, 1, true)
718 contactObjects=contactObjects+1
720 settings.put(metaData['name'], new ContactSensors({}, 1, true))
723 extractedObjectsApp1.append("//Object for class contactSensor!\n")
724 extractedObjectsApp1.append("def "+metaData['name']+"\n")
725 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.contactObject\n")
727 extractedObjectsApp2.append("//Object for class contactSensor!\n")
728 extractedObjectsApp2.append("def "+metaData['name']+"\n")
729 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.contactObject\n")
732 case "capability.threeAxis":
733 globalObjects.eachLine { line ->
734 if(line.contains("threeAxisObject")){
740 globalObjects.append("@Field def threeAxisObject = new ThreeAxises(sendEvent, 1, init)\n")
742 if (threeAxisObjects == 0) {
743 threeAxisObject0 = metaData['name']
744 this[threeAxisObject0] = new ThreeAxises({}, 1, true)
745 } else if (threeAxisObjects == 1) {
746 threeAxisObject1 = metaData['name']
747 this[threeAxisObject1] = new ThreeAxises({}, 1, true)
748 } else if (threeAxisObjects == 2) {
749 threeAxisObject2 = metaData['name']
750 this[threeAxisObject2] = new ThreeAxises({}, 1, true)
753 threeAxisObjects=threeAxisObjects+1
755 settings.put(metaData['name'], new ThreeAxises({}, 1, true))
758 extractedObjectsApp1.append("//Object for class three axis!\n")
759 extractedObjectsApp1.append("def "+metaData['name']+"\n")
760 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.threeAxisObject\n")
762 extractedObjectsApp2.append("//Object for class three axis!\n")
763 extractedObjectsApp2.append("def "+metaData['name']+"\n")
764 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.threeAxisObject\n")
767 case "capability.doorControl":
768 globalObjects.eachLine { line ->
769 if(line.contains("doorControlObject")){
775 globalObjects.append("@Field def doorControlObject = new DoorControls(sendEvent, 1, init)\n")
777 if (doorControlObjects == 0) {
778 doorControlObject0 = metaData['name']
779 this[doorControlObject0] = new DoorControls({}, 1, true)
780 } else if (doorControlObjects == 1) {
781 doorControlObject1 = metaData['name']
782 this[doorControlObject1] = new DoorControls({}, 1, true)
783 } else if (doorControlObjects == 2) {
784 doorControlObject2 = metaData['name']
785 this[doorControlObject2] = new DoorControls({}, 1, true)
788 doorControlObjects=doorControlObjects+1
790 settings.put(metaData['name'], new DoorControls({}, 1, true))
793 extractedObjectsApp1.append("//Object for class door control!\n")
794 extractedObjectsApp1.append("def "+metaData['name']+"\n")
795 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.doorControlObject\n")
797 extractedObjectsApp2.append("//Object for class door control!\n")
798 extractedObjectsApp2.append("def "+metaData['name']+"\n")
799 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.doorControlObject\n")
802 case "capability.energyMeter":
803 globalObjects.eachLine { line ->
804 if(line.contains("energyMeterObject")){
810 globalObjects.append("@Field def energyMeterObject = new EnergyMeters(sendEvent, 1, init)\n")
812 if (energyMeterObjects == 0) {
813 energyMeterObject0 = metaData['name']
814 this[energyMeterObject0] = new EnergyMeters({}, 1, true)
815 } else if (energyMeterObjects == 1) {
816 energyMeterObject1 = metaData['name']
817 this[energyMeterObject1] = new EnergyMeters({}, 1, true)
818 } else if (energyMeterObjects == 2) {
819 energyMeterObject2 = metaData['name']
820 this[energyMeterObject2] = new EnergyMeters({}, 1, true)
823 energyMeterObjects=energyMeterObjects+1
825 settings.put(metaData['name'], new EnergyMeters({}, 1, true))
828 extractedObjectsApp1.append("//Object for class energy meter!\n")
829 extractedObjectsApp1.append("def "+metaData['name']+"\n")
830 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.energyMeterObject\n")
832 extractedObjectsApp2.append("//Object for class energy meter!\n")
833 extractedObjectsApp2.append("def "+metaData['name']+"\n")
834 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.energyMeterObject\n")
837 case "capability.illuminanceMeasurement":
838 globalObjects.eachLine { line ->
839 if(line.contains("illuminanceMeasurementObject")){
845 globalObjects.append("@Field def illuminanceMeasurementObject = new IlluminanceMeasurements(sendEvent, 1, init)\n")
847 if (illuminanceMeasurementObjects == 0) {
848 illuminanceMeasurementObject0 = metaData['name']
849 this[illuminanceMeasurementObject0] = new IlluminanceMeasurements({}, 1, true)
850 } else if (illuminanceMeasurementObjects == 1) {
851 illuminanceMeasurementObject1 = metaData['name']
852 this[illuminanceMeasurementObject1] = new IlluminanceMeasurements({}, 1, true)
853 } else if (illuminanceMeasurementObjects == 2) {
854 illuminanceMeasurementObject2 = metaData['name']
855 this[illuminanceMeasurementObject2] = new IlluminanceMeasurements({}, 1, true)
858 illuminanceMeasurementObjects=illuminanceMeasurementObjects+1
860 settings.put(metaData['name'], new IlluminanceMeasurements({}, 1, true))
863 extractedObjectsApp1.append("//Object for class illuminance measurement!\n")
864 extractedObjectsApp1.append("def "+metaData['name']+"\n")
865 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.illuminanceMeasurementObject\n")
867 extractedObjectsApp2.append("//Object for class illuminance measurement!\n")
868 extractedObjectsApp2.append("def "+metaData['name']+"\n")
869 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.illuminanceMeasurementObject\n")
872 case "capability.accelerationSensor":
873 globalObjects.eachLine { line ->
874 if(line.contains("accelerationSensorObject")){
880 globalObjects.append("@Field def accelerationSensorObject = new AccelerationSensors(sendEvent, 1, init)\n")
882 if (accelerationSensorObjects == 0) {
883 accelerationSensorObject0 = metaData['name']
884 this[accelerationSensorObject0] = new AccelerationSensors({}, 1, true)
885 } else if (accelerationSensorObjects == 1) {
886 accelerationSensorObject1 = metaData['name']
887 this[accelerationSensorObject1] = new AccelerationSensors({}, 1, true)
888 } else if (accelerationSensorObjects == 2) {
889 accelerationSensorObject2 = metaData['name']
890 this[accelerationSensorObject2] = new AccelerationSensors({}, 1, true)
893 accelerationSensorObjects=accelerationSensorObjects+1
895 settings.put(metaData['name'], new AccelerationSensors({}, 1, true))
898 extractedObjectsApp1.append("//Object for class Acceleration Sensor!\n")
899 extractedObjectsApp1.append("def "+metaData['name']+"\n")
900 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.accelerationSensorObject\n")
902 extractedObjectsApp2.append("//Object for class Acceleration Sensor!\n")
903 extractedObjectsApp2.append("def "+metaData['name']+"\n")
904 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.accelerationSensorObject\n")
907 case "capability.momentary":
908 globalObjects.eachLine { line ->
909 if(line.contains("momentoryObject")){
915 globalObjects.append("@Field def momentaryObject = new Momentaries(sendEvent, 1)\n")
917 if (momentaryObjects == 0) {
918 momentaryObject0 = metaData['name']
919 this[momentaryObject0] = new Momentaries({}, 1)
920 } else if (momentaryObjects == 1) {
921 momentaryObject1 = metaData['name']
922 this[momentaryObject1] = new Momentaries({}, 1)
923 } else if (momentaryObjects == 2) {
924 momentaryObject2 = metaData['name']
925 this[momentaryObject2] = new Momentaries({}, 1)
928 momentaryObjects=momentaryObjects+1
930 settings.put(metaData['name'], new Momentaries({}, 1))
933 extractedObjectsApp1.append("//Object for class momentory switch class!\n")
934 extractedObjectsApp1.append("def "+metaData['name']+"\n")
935 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.momentaryObject\n")
937 extractedObjectsApp2.append("//Object for class momentory Sensor!\n")
938 extractedObjectsApp2.append("def "+metaData['name']+"\n")
939 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.momentaryObject\n")
942 case "capability.motionSensor":
943 globalObjects.eachLine { line ->
944 if(line.contains("motionSensorObject")){
950 globalObjects.append("@Field def motionSensorObject = new MotionSensors(sendEvent, 1, init)\n")
952 if (motionSensorObjects == 0) {
953 motionSensorObject0 = metaData['name']
954 this[motionSensorObject0] = new MotionSensors({}, 1, true)
955 } else if (motionSensorObjects == 1) {
956 motionSensorObject1 = metaData['name']
957 this[motionSensorObject1] = new MotionSensors({}, 1, true)
958 } else if (motionSensorObjects == 2) {
959 motionSensorObject2 = metaData['name']
960 this[motionSensorObject2] = new MotionSensors({}, 1, true)
963 motionSensorObjects=motionSensorObjects+1
965 settings.put(metaData['name'], new MotionSensors({}, 1, true))
968 extractedObjectsApp1.append("//Object for class Motion Sensor!\n")
969 extractedObjectsApp1.append("def "+metaData['name']+"\n")
970 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.motionSensorObject\n")
972 extractedObjectsApp2.append("//Object for class Motion Sensor!\n")
973 extractedObjectsApp2.append("def "+metaData['name']+"\n")
974 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.motionSensorObject\n")
977 case "capability.musicPlayer":
978 globalObjects.eachLine { line ->
979 if(line.contains("musicPlayerObject")){
985 globalObjects.append("@Field def musicPlayerObject = new MusicPlayers(sendEvent, 1, init)\n")
987 if (musicPlayerObjects == 0) {
988 musicPlayerObject0 = metaData['name']
989 this[musicPlayerObject0] = new MusicPlayers({}, 1, true)
990 } else if (musicPlayerObjects == 1) {
991 musicPlayerObject1 = metaData['name']
992 this[musicPlayerObject1] = new MusicPlayers({}, 1, true)
993 } else if (musicPlayerObjects == 2) {
994 musicPlayerObject2 = metaData['name']
995 this[musicPlayerObject2] = new MusicPlayers({}, 1, true)
998 musicPlayerObjects=musicPlayerObjects+1
1000 settings.put(metaData['name'], new MusicPlayers({}, 1, true))
1002 if (App == "App1") {
1003 extractedObjectsApp1.append("//Object for class music player!\n")
1004 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1005 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.musicPlayerObject\n")
1007 extractedObjectsApp2.append("//Object for class music player!\n")
1008 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1009 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.musicPlayerObject\n")
1012 case "capability.powerMeter":
1013 globalObjects.eachLine { line ->
1014 if(line.contains("powerMeterObject")){
1020 globalObjects.append("@Field def powerMeterObject = new PowerMeters(sendEvent, 1, init)\n")
1022 if (powerMeterObjects == 0) {
1023 powerMeterObject0 = metaData['name']
1024 this[powerMeterObject0] = new PowerMeters({}, 1, true)
1025 } else if (powerMeterObjects == 1) {
1026 powerMeterObject1 = metaData['name']
1027 this[powerMeterObject1] = new PowerMeters({}, 1, true)
1028 } else if (powerMeterObjects == 2) {
1029 powerMeterObject2 = metaData['name']
1030 this[powerMeterObject2] = new PowerMeters({}, 1, true)
1033 powerMeterObjects=powerMeterObjects+1
1035 settings.put(metaData['name'], new PowerMeters({}, 1, true))
1037 if (App == "App1") {
1038 extractedObjectsApp1.append("//Object for class power meter!\n")
1039 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1040 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.powerMeterObject\n")
1042 extractedObjectsApp2.append("//Object for class power meter!\n")
1043 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1044 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.powerMeterObject\n")
1047 case "capability.presenceSensor":
1048 globalObjects.eachLine { line ->
1049 if(line.contains("presenceSensorObject")){
1055 globalObjects.append("@Field def presenceSensorObject = new PresenceSensors(sendEvent, 1, init)\n")
1057 if (presenceSensorObjects == 0) {
1058 presenceSensorObject0 = metaData['name']
1059 this[presenceSensorObject0] = new PresenceSensors({}, 1, true)
1060 } else if (presenceSensorObjects == 1) {
1061 presenceSensorObject1 = metaData['name']
1062 this[presenceSensorObject1] = new PresenceSensors({}, 1, true)
1063 } else if (presenceSensorObjects == 2) {
1064 presenceSensorObject2 = metaData['name']
1065 this[presenceSensorObject2] = new PresenceSensors({}, 1, true)
1068 presenceSensorObjects=presenceSensorObjects+1
1070 settings.put(metaData['name'], new PresenceSensors({}, 1, true))
1072 if (App == "App1") {
1073 extractedObjectsApp1.append("//Object for class presence sensor!\n")
1074 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1075 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.presenceSensorObject\n")
1077 extractedObjectsApp2.append("//Object for class presence sensor!\n")
1078 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1079 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.presenceSensorObject\n")
1082 case "capability.relativeHumidityMeasurement":
1083 globalObjects.eachLine { line ->
1084 if(line.contains("humidityMeasurementObject")){
1090 globalObjects.append("@Field def humidityMeasurementObject = new RelativeHumidityMeasurements(sendEvent, 1, init)\n")
1092 if (humidityMeasurementObjects == 0) {
1093 humidityMeasurementObject0 = metaData['name']
1094 this[humidityMeasurementObject0] = new RelativeHumidityMeasurements({}, 1, true)
1095 } else if (humidityMeasurementObjects == 1) {
1096 humidityMeasurementObject1 = metaData['name']
1097 this[humidityMeasurementObject1] = new RelativeHumidityMeasurements({}, 1, true)
1098 } else if (humidityMeasurementObjects == 2) {
1099 humidityMeasurementObject2 = metaData['name']
1100 this[humidityMeasurementObject2] = new RelativeHumidityMeasurements({}, 1, true)
1103 humidityMeasurementObjects=humidityMeasurementObjects+1
1105 settings.put(metaData['name'], new RelativeHumidityMeasurements({}, 1, true))
1107 if (App == "App1") {
1108 extractedObjectsApp1.append("//Object for class humidity measurement!\n")
1109 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1110 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.humidityMeasurementObject\n")
1112 extractedObjectsApp2.append("//Object for class humidity measurement!\n")
1113 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1114 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.humidityMeasurementObject\n")
1117 case "capability.relaySwitch":
1118 globalObjects.eachLine { line ->
1119 if(line.contains("relaySwitchObject")){
1125 globalObjects.append("@Field def relaySwitchObject = new RelaySwitches(sendEvent, 1, init)\n")
1127 if (relaySwitchObjects == 0) {
1128 relaySwitchObject0 = metaData['name']
1129 this[relaySwitchObject0] = new RelaySwitches({}, 1, true)
1130 } else if (relaySwitchObjects == 1) {
1131 relaySwitchObject1 = metaData['name']
1132 this[relaySwitchObject1] = new RelaySwitches({}, 1, true)
1133 } else if (relaySwitchObjects == 2) {
1134 relaySwitchObject2 = metaData['name']
1135 this[relaySwitchObject2] = new RelaySwitches({}, 1, true)
1138 relaySwitchObjects=relaySwitchObjects+1
1140 settings.put(metaData['name'], new RelaySwitches({}, 1, true))
1142 if (App == "App1") {
1143 extractedObjectsApp1.append("//Object for class relay switch!\n")
1144 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1145 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.relaySwitchObject\n")
1147 extractedObjectsApp2.append("//Object for class relay switch!\n")
1148 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1149 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.relaySwitchObject\n")
1152 case "capability.sleepSensor":
1153 globalObjects.eachLine { line ->
1154 if(line.contains("sleepSensorObject")){
1160 globalObjects.append("@Field def sleepSensorObject = new SleepSensors(sendEvent, 1, init)\n")
1162 if (sleepSensorObjects == 0) {
1163 sleepSensorObject0 = metaData['name']
1164 this[sleepSensorObject0] = new SleepSensors({}, 1, true)
1165 } else if (sleepSensorObjects == 1) {
1166 sleepSensorObject1 = metaData['name']
1167 this[sleepSensorObject1] = new SleepSensors({}, 1, true)
1168 } else if (sleepSensorObjects == 2) {
1169 sleepSensorObject2 = metaData['name']
1170 this[sleepSensorObject2] = new SleepSensors({}, 1, true)
1173 sleepSensorObjects=sleepSensorObjects+1
1175 settings.put(metaData['name'], new SleepSensors({}, 1, true))
1177 if (App == "App1") {
1178 extractedObjectsApp1.append("//Object for class sleep sensor!\n")
1179 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1180 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.sleepSensorObject\n")
1182 extractedObjectsApp2.append("//Object for class sleep sensor!\n")
1183 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1184 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.sleepSensorObject\n")
1187 case "capability.smokeDetector":
1188 globalObjects.eachLine { line ->
1189 if(line.contains("smokeDetectorObject")){
1195 globalObjects.append("@Field def smokeDetectorObject = new SmokeDetectors(sendEvent, 1, init)\n")
1197 if (smokeDetectorObjects == 0) {
1198 smokeDetectorObject0 = metaData['name']
1199 this[smokeDetectorObject0] = new SmokeDetectors({}, 1, true)
1200 } else if (smokeDetectorObjects == 1) {
1201 smokeDetectorObject1 = metaData['name']
1202 this[smokeDetectorObject1] = new SmokeDetectors({}, 1, true)
1203 } else if (smokeDetectorObjects == 2) {
1204 smokeDetectorObject2 = metaData['name']
1205 this[smokeDetectorObject2] = new SmokeDetectors({}, 1, true)
1208 smokeDetectorObjects=smokeDetectorObjects+1
1210 settings.put(metaData['name'], new SmokeDetectors({}, 1, true))
1212 if (App == "App1") {
1213 extractedObjectsApp1.append("//Object for class smoke detector!\n")
1214 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1215 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.smokeDetectorObject\n")
1217 extractedObjectsApp2.append("//Object for class smoke detector!\n")
1218 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1219 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.smokeDetectorObject\n")
1222 case "capability.stepSensor":
1223 globalObjects.eachLine { line ->
1224 if(line.contains("stepSensorObject")){
1230 globalObjects.append("@Field def stepSensorObject = new StepSensors(sendEvent, 1, init)\n")
1232 if (stepSensorObjects == 0) {
1233 stepSensorObject0 = metaData['name']
1234 this[stepSensorObject0] = new StepSensors({}, 1, true)
1235 } else if (stepSensorObjects == 1) {
1236 stepSensorObject1 = metaData['name']
1237 this[stepSensorObject1] = new StepSensors({}, 1, true)
1238 } else if (stepSensorObjects == 2) {
1239 stepSensorObject2 = metaData['name']
1240 this[stepSensorObject2] = new StepSensors({}, 1, true)
1243 stepSensorObjects=stepSensorObjects+1
1245 settings.put(metaData['name'], new StepSensors({}, 1, true))
1247 if (App == "App1") {
1248 extractedObjectsApp1.append("//Object for class step sensor!\n")
1249 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1250 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.stepSensorObject\n")
1252 extractedObjectsApp2.append("//Object for class step sensor!\n")
1253 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1254 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.stepSensorObject\n")
1257 case "capability.switch":
1258 globalObjects.eachLine { line ->
1259 if(line.contains("switchObject")){
1265 globalObjects.append("@Field def switchObject = new Switches(sendEvent, 1, init)\n")
1267 if (switchObjects == 0) {
1268 switchObject0 = metaData['name']
1269 this[switchObject0] = new Switches({}, 1, true)
1270 } else if (switchObjects == 1) {
1271 switchObject1 = metaData['name']
1272 this[switchObject1] = new Switches({}, 1, true)
1273 } else if (switchObjects == 2) {
1274 switchObject2 = metaData['name']
1275 this[switchObject2] = new Switches({}, 1, true)
1278 switchObjects=switchObjects+1
1280 settings.put(metaData['name'], new Switches({}, 1, true))
1282 if (App == "App1") {
1283 extractedObjectsApp1.append("//Object for class switch!\n")
1284 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1285 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.switchObject\n")
1287 extractedObjectsApp2.append("//Object for class switch!\n")
1288 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1289 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.switchObject\n")
1292 case "capability.switchLevel":
1293 globalObjects.eachLine { line ->
1294 if(line.contains("switchLevelObject")){
1300 globalObjects.append("@Field def switchLevelObject = new SwitchLevels(sendEvent, 1, init)\n")
1302 if (switchLevelObjects == 0) {
1303 switchLevelObject0 = metaData['name']
1304 this[switchLevelObject0] = new SwitchLevels({}, 1, true)
1305 } else if (switchLevelObjects == 1) {
1306 switchLevelObject1 = metaData['name']
1307 this[switchLevelObject1] = new SwitchLevels({}, 1, true)
1308 } else if (switchLevelObjects == 2) {
1309 switchLevelObject2 = metaData['name']
1310 this[switchLevelObject2] = new SwitchLevels({}, 1, true)
1313 switchLevelObjects=switchLevelObjects+1
1315 settings.put(metaData['name'], new SwitchLevels({}, 1, true))
1317 if (App == "App1") {
1318 extractedObjectsApp1.append("//Object for class switch level!\n")
1319 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1320 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.switchLevelObject\n")
1322 extractedObjectsApp2.append("//Object for class switch level!\n")
1323 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1324 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.switchLevelObject\n")
1327 case "capability.temperatureMeasurement":
1328 globalObjects.eachLine { line ->
1329 if(line.contains("temperatureMeasurementObject")){
1335 globalObjects.append("@Field def temperatureMeasurementObject = new TemperatureMeasurements(sendEvent, 1, init)\n")
1337 if (temperatureMeasurementObjects == 0) {
1338 temperatureMeasurementObject0 = metaData['name']
1339 this[temperatureMeasurementObject0] = new TemperatureMeasurements({}, 1, true)
1340 } else if (temperatureMeasurementObjects == 1) {
1341 temperatureMeasurementObject1 = metaData['name']
1342 this[temperatureMeasurementObject1] = new TemperatureMeasurements({}, 1, true)
1343 } else if (temperatureMeasurementObjects == 2) {
1344 temperatureMeasurementObject2 = metaData['name']
1345 this[temperatureMeasurementObject2] = new TemperatureMeasurements({}, 1, true)
1348 temperatureMeasurementObjects=temperatureMeasurementObjects+1
1350 settings.put(metaData['name'], new TemperatureMeasurements({}, 1, true))
1352 if (App == "App1") {
1353 extractedObjectsApp1.append("//Object for class temperature measurement!\n")
1354 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1355 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.temperatureMeasurementObject\n")
1357 extractedObjectsApp2.append("//Object for class temperature measurement!\n")
1358 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1359 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.temperatureMeasurementObject\n")
1362 case "capability.thermostat":
1363 globalObjects.eachLine { line ->
1364 if(line.contains("thermostatObject")){
1370 globalObjects.append("@Field def thermostatObject = new Thermostats(sendEvent, 1, init)\n")
1372 if (thermostatObjects == 0) {
1373 thermostatObject0 = metaData['name']
1374 this[thermostatObject0] = new Thermostats({}, 1, true)
1375 } else if (thermostatObjects == 1) {
1376 thermostatObject1 = metaData['name']
1377 this[thermostatObject1] = new Thermostats({}, 1, true)
1378 } else if (thermostatObjects == 2) {
1379 thermostatObject2 = metaData['name']
1380 this[thermostatObject2] = new Thermostats({}, 1, true)
1383 thermostatObjects=thermostatObjects+1
1385 settings.put(metaData['name'], new Thermostats({}, 1, true))
1387 if (App == "App1") {
1388 extractedObjectsApp1.append("//Object for class thermostat!\n")
1389 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1390 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.thermostatObject\n")
1392 extractedObjectsApp2.append("//Object for class thermostat!\n")
1393 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1394 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.thermostatObject\n")
1397 case "capability.valve":
1398 globalObjects.eachLine { line ->
1399 if(line.contains("valveObject")){
1405 globalObjects.append("@Field def valveObject = new Valves(sendEvent, 1, init)\n")
1407 if (valveObjects == 0) {
1408 valveObject0 = metaData['name']
1409 this[valveObject0] = new Valves({}, 1, true)
1410 } else if (valveObjects == 1) {
1411 valveObject1 = metaData['name']
1412 this[valveObject1] = new Valves({}, 1, true)
1413 } else if (valveObjects == 2) {
1414 valveObject2 = metaData['name']
1415 this[valveObject2] = new Valves({}, 1, true)
1418 valveObjects=valveObjects+1
1420 settings.put(metaData['name'], new Valves({}, 1, true))
1422 if (App == "App1") {
1423 extractedObjectsApp1.append("//Object for class valve!\n")
1424 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1425 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.valveObject\n")
1427 extractedObjectsApp2.append("//Object for class valve!\n")
1428 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1429 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.valveObject\n")
1432 case "capability.speechSynthesis":
1433 globalObjects.eachLine { line ->
1434 if(line.contains("speechSynthesisObject")){
1440 globalObjects.append("@Field def speechSynthesisObject = new SpeechSynthesises(sendEvent, 1, init)\n")
1442 if (speechSynthesisObjects == 0) {
1443 speechSynthesisObject0 = metaData['name']
1444 this[speechSynthesisObject0] = new SpeechSynthesises({}, 1, true)
1445 } else if (speechSynthesisObjects == 1) {
1446 speechSynthesisObject1 = metaData['name']
1447 this[speechSynthesisObject1] = new SpeechSynthesises({}, 1, true)
1448 } else if (speechSynthesisObjects == 2) {
1449 speechSynthesisObject2 = metaData['name']
1450 this[speechSynthesisObject2] = new SpeechSynthesises({}, 1, true)
1453 speechSynthesisObjects=speechSynthesisObjects+1
1455 settings.put(metaData['name'], new SpeechSynthesises({}, 1, true))
1457 if (App == "App1") {
1458 extractedObjectsApp1.append("//Object for class speech synthesis!\n")
1459 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1460 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.speechSynthesisObject\n")
1462 extractedObjectsApp2.append("//Object for class speech synthesis!\n")
1463 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1464 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.speechSynthesisObject\n")
1467 case "capability.waterSensor":
1468 globalObjects.eachLine { line ->
1469 if(line.contains("waterSensorObject")){
1475 globalObjects.append("@Field def waterSensorObject = new WaterSensors(sendEvent, 1, init)\n")
1477 if (waterSensorObjects == 0) {
1478 waterSensorObject0 = metaData['name']
1479 this[waterSensorObject0] = new WaterSensors({}, 1, true)
1480 } else if (waterSensorObjects == 1) {
1481 waterSensorObject1 = metaData['name']
1482 this[waterSensorObject1] = new WaterSensors({}, 1, true)
1483 } else if (waterSensorObjects == 2) {
1484 waterSensorObject2 = metaData['name']
1485 this[waterSensorObject2] = new WaterSensors({}, 1, true)
1488 waterSensorObjects=waterSensorObjects+1
1490 settings.put(metaData['name'], new WaterSensors({}, 1, true))
1492 if (App == "App1") {
1493 extractedObjectsApp1.append("//Object for class water sensor!\n")
1494 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1495 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.waterSensorObject\n")
1497 extractedObjectsApp2.append("//Object for class water sensor!\n")
1498 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1499 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.waterSensorObject\n")
1502 case "capability.touchSensor":
1503 globalObjects.eachLine { line ->
1504 if(line.contains("touchSensorObject")){
1510 globalObjects.append("@Field def touchSensorObject = new NfcTouch(sendEvent, 1)\n")
1512 if (touchSensorObjects == 0) {
1513 touchSensorObject0 = metaData['name']
1514 this[touchSensorObject0] = new NfcTouch({}, 1)
1515 } else if (touchSensorObjects == 1) {
1516 touchSensorObject1 = metaData['name']
1517 this[touchSensorObject1] = new NfcTouch({}, 1)
1518 } else if (touchSensorObjects == 2) {
1519 touchSensorObject2 = metaData['name']
1520 this[touchSensorObject2] = new NfcTouch({}, 1)
1523 touchSensorObjects=touchSensorObjects+1
1525 settings.put(metaData['name'], new NfcTouch({}, 1))
1527 if (App == "App1") {
1528 extractedObjectsApp1.append("//Object for class Touch Sensor!\n")
1529 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1530 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.touchSensorObject\n")
1532 extractedObjectsApp2.append("//Object for class Touch Sensor!\n")
1533 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1534 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.touchSensorObject\n")
1537 case "capability.imageCapture":
1538 globalObjects.eachLine { line ->
1539 if(line.contains("imageCaptureObject")){
1545 globalObjects.append("@Field def imageCaptureObject = new ImageCaptures(sendEvent, 1, init)\n")
1547 if (imageCaptureObjects == 0) {
1548 imageCaptureObject0 = metaData['name']
1549 this[imageCaptureObject0] = new ImageCaptures({}, 1, true)
1550 } else if (imageCaptureObjects == 1) {
1551 imageCaptureObject1 = metaData['name']
1552 this[imageCaptureObject1] = new ImageCaptures({}, 1, true)
1553 } else if (imageCaptureObjects == 2) {
1554 imageCaptureObject2 = metaData['name']
1555 this[imageCaptureObject2] = new ImageCaptures({}, 1, true)
1558 imageCaptureObjects=imageCaptureObjects+1
1560 settings.put(metaData['name'], new ImageCaptures({}, 1, true))
1562 if (App == "App1") {
1563 extractedObjectsApp1.append("//Object for class Image Capture!\n")
1564 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1565 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.imageCaptureObject\n")
1567 extractedObjectsApp2.append("//Object for class Image Capture!\n")
1568 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1569 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.imageCaptureObject\n")
1572 case "device.mobilePresence":
1573 globalObjects.eachLine { line ->
1574 if(line.contains("mobilePresenceObject")){
1580 globalObjects.append("@Field def mobilePresenceObject = new MobilePresences(sendEvent, 1)\n")
1582 if (mobilePresenceObjects == 0) {
1583 mobilePresenceObject0 = metaData['name']
1584 this[mobilePresenceObject0] = new MobilePresences({}, 1)
1585 } else if (mobilePresenceObjects == 1) {
1586 mobilePresenceObject1 = metaData['name']
1587 this[mobilePresenceObject1] = new MobilePresences({}, 1)
1588 } else if (mobilePresenceObjects == 2) {
1589 mobilePresenceObject2 = metaData['name']
1590 this[mobilePresenceObject2] = new MobilePresences({}, 1)
1593 mobilePresenceObjects=mobilePresenceObjects+1
1595 settings.put(metaData['name'], new MobilePresences({}, 1))
1597 if (App == "App1") {
1598 extractedObjectsApp1.append("//Object for class mobile presence!\n")
1599 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1600 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.mobilePresenceObject\n")
1602 extractedObjectsApp2.append("//Object for class mobile presence!\n")
1603 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1604 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.mobilePresenceObject\n")
1607 case "device.aeonKeyFob":
1608 globalObjects.eachLine { line ->
1609 if(line.contains("aeonKeyFobObject")){
1614 globalObjects.append("@Field def aeonKeyFobObject = new AeonKeyFobs(sendEvent, 1)\n")
1616 if (aeonKeyFobObjects == 0) {
1617 aeonKeyFobObject0 = metaData['name']
1618 this[aeonKeyFobObject0] = new AeonKeyFobs({}, 1)
1619 } else if (aeonKeyFobObjects == 1) {
1620 aeonKeyFobObject1 = metaData['name']
1621 this[aeonKeyFobObject1] = new AeonKeyFobs({}, 1)
1622 } else if (aeonKeyFobObjects == 2) {
1623 aeonKeyFobObject2 = metaData['name']
1624 this[aeonKeyFobObject2] = new AeonKeyFobs({}, 1)
1627 aeonKeyFobObjects=aeonKeyFobObjects+1
1629 settings.put(metaData['name'], new AeonKeyFobs({}, 1))
1631 if (App == "App1") {
1632 extractedObjectsApp1.append("//Object for class aeon key fob!\n")
1633 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1634 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.aeonKeyFobObject\n")
1636 extractedObjectsApp2.append("//Object for class aeon key fob!\n")
1637 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1638 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.aeonKeyFobObject\n")
1642 //def randomVariable = Math.abs(new Random().nextInt() % 3)
1643 def modes = ["away", "home", "night"]
1644 // Always assign a different mode to each app
1645 //def userInput = modes[1]
1646 def userInput = modes[chooseMode]
1650 chooseMode = chooseMode%3
1652 if (modeVariables == 0) {
1653 mode0 = metaData['name']
1654 this[mode0] = userInput
1655 } else if (modeVariables == 1) {
1656 mode1 = metaData['name']
1657 this[mode1] = userInput
1658 } else if (modeVariables == 2) {
1659 mode2 = metaData['name']
1660 this[mode2] = userInput
1661 } else if (modeVariables == 3) {
1662 mode3 = metaData['name']
1663 this[mode3] = userInput
1664 } else if (modeVariables == 4) {
1665 mode4 = metaData['name']
1666 this[mode4] = userInput
1667 } else if (modeVariables == 5) {
1668 mode5 = metaData['name']
1669 this[mode5] = userInput
1672 if (modeVariables != 5)
1673 modeVariables=modeVariables+1
1678 settings.put(metaData['name'], metaData['name'])
1680 if (App == "App1") {
1681 extractedObjectsApp1.append("//Global variable for mode!\n")
1682 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1684 extractedObjectsApp2.append("//Global variable for mode!\n")
1685 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1689 //def userInput = Math.abs(new Random().nextInt() % 60) + 40
1692 if (decimalVariables == 0) {
1693 decimal0 = metaData['name']
1694 this[decimal0] = userInput
1695 } else if (decimalVariables == 1) {
1696 decimal1 = metaData['name']
1697 this[decimal1] = userInput
1698 } else if (decimalVariables == 2) {
1699 decimal2 = metaData['name']
1700 this[decimal2] = userInput
1701 } else if (decimalVariables == 3) {
1702 decimal3 = metaData['name']
1703 this[decimal3] = userInput
1704 } else if (decimalVariables == 4) {
1705 decimal4 = metaData['name']
1706 this[decimal4] = userInput
1707 } else if (decimalVariables == 5) {
1708 decimal5 = metaData['name']
1709 this[decimal5] = userInput
1712 if (decimalVariables != 5)
1713 decimalVariables=decimalVariables+1
1717 settings.put(metaData['name'], metaData['name'])
1719 if (App == "App1") {
1720 extractedObjectsApp1.append("//Global variable for decimal number!\n")
1721 extractedObjectsApp1.append("def "+metaData['name']+" = "+userInput+"\n")
1723 extractedObjectsApp2.append("//Global variable for decimal number!\n")
1724 extractedObjectsApp2.append("def "+metaData['name']+" = "+userInput+"\n")
1728 def userInput = "This is just a text!"
1730 if (textVariables == 0) {
1731 text0 = metaData['name']
1732 this[text0] = userInput
1733 } else if (textVariables == 1) {
1734 text1 = metaData['name']
1735 this[text1] = userInput
1736 } else if (textVariables == 2) {
1737 text2 = metaData['name']
1738 this[text2] = userInput
1739 } else if (textVariables == 3) {
1740 text3 = metaData['name']
1741 this[text3] = userInput
1742 } else if (textVariables == 4) {
1743 text4 = metaData['name']
1744 this[text4] = userInput
1745 } else if (textVariables == 5) {
1746 text5 = metaData['name']
1747 this[text5] = userInput
1750 if (textVariables != 5)
1751 textVariables=textVariables+1
1756 settings.put(metaData['name'], metaData['name'])
1758 if (App == "App1") {
1759 extractedObjectsApp1.append("//Global variable for text!\n")
1760 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1762 extractedObjectsApp2.append("//Global variable for text!\n")
1763 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1767 //def userInput = Math.abs(new Random().nextInt() % 60) + 40
1770 if (numberVariables == 0) {
1771 number0 = metaData['name']
1772 this[number0] = userInput
1773 } else if (numberVariables == 1) {
1774 number1 = metaData['name']
1775 this[number1] = userInput
1776 } else if (numberVariables == 2) {
1777 number2 = metaData['name']
1778 this[number2] = userInput
1779 } else if (numberVariables == 3) {
1780 number3 = metaData['name']
1781 this[number3] = userInput
1782 } else if (numberVariables == 4) {
1783 number4 = metaData['name']
1784 this[number4] = userInput
1785 } else if (numberVariables == 5) {
1786 number5 = metaData['name']
1787 this[number5] = userInput
1791 if (numberVariables != 5)
1792 numberVariables=numberVariables+1
1797 settings.put(metaData['name'], metaData['name'])
1799 if (App == "App1") {
1800 extractedObjectsApp1.append("//Global variable for number!\n")
1801 extractedObjectsApp1.append("def "+metaData['name']+" = "+userInput+"\n")
1803 extractedObjectsApp2.append("//Global variable for number!\n")
1804 extractedObjectsApp2.append("def "+metaData['name']+" = "+userInput+"\n")
1808 def userInput = "15:00"
1810 if (timeVariables == 0) {
1811 time0 = metaData['name']
1812 this[time0] = userInput
1813 } else if (timeVariables == 1) {
1814 time1 = metaData['name']
1815 this[time1] = userInput
1816 } else if (timeVariables == 2) {
1817 time2 = metaData['name']
1818 this[time2] = userInput
1819 } else if (timeVariables == 3) {
1820 time3 = metaData['name']
1821 this[time3] = userInput
1822 } else if (timeVariables == 4) {
1823 time4 = metaData['name']
1824 this[time4] = userInput
1825 } else if (timeVariables == 5) {
1826 time5 = metaData['name']
1827 this[time5] = userInput
1830 if (timeVariables != 5)
1831 timeVariables=timeVariables+1
1835 settings.put(metaData['name'], metaData['name'])
1837 if (App == "App1") {
1838 extractedObjectsApp1.append("//Global variable for time!\n")
1839 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1841 extractedObjectsApp2.append("//Global variable for time!\n")
1842 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1846 if (metaData['options'] != null)
1847 modes = metaData['options']
1848 else if (metaData['metadata'] != null) { // If it is not named 'options' then it is captured as 'metadata'
1849 modes = metaData['metadata']
1850 modes = modes['values']
1852 def userInput = modes[0]
1854 if (enumVariables == 0) {
1855 enum0 = metaData['name']
1856 this[enum0] = userInput
1857 } else if (enumVariables == 1) {
1858 enum1 = metaData['name']
1859 this[enum1] = userInput
1860 } else if (enumVariables == 2) {
1861 enum2 = metaData['name']
1862 this[enum2] = userInput
1863 } else if (enumVariables == 3) {
1864 enum3 = metaData['name']
1865 this[enum3] = userInput
1866 } else if (enumVariables == 4) {
1867 enum4 = metaData['name']
1868 this[enum4] = userInput
1869 } else if (enumVariables == 5) {
1870 enum5 = metaData['name']
1871 this[enum5] = userInput
1874 if (enumVariables != 5)
1875 enumVariables=enumVariables+1
1880 settings.put(metaData['name'], metaData['name'])
1882 if (App == "App1") {
1883 extractedObjectsApp1.append("//Global variable for enum!\n")
1884 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1886 extractedObjectsApp2.append("//Global variable for enum!\n")
1887 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1891 //def userInput = Math.abs(new Random().nextInt() % 2)
1892 def userInput = true
1894 if (boolVariables == 0) {
1895 bool0 = metaData['name']
1896 this[bool0] = userInput
1897 } else if (boolVariables == 1) {
1898 bool1 = metaData['name']
1899 this[bool1] = userInput
1900 } else if (boolVariables == 2) {
1901 bool2 = metaData['name']
1902 this[bool2] = userInput
1903 } else if (boolVariables == 3) {
1904 bool3 = metaData['name']
1905 this[bool3] = userInput
1906 } else if (boolVariables == 4) {
1907 bool4 = metaData['name']
1908 this[bool4] = userInput
1909 } else if (boolVariables == 5) {
1910 bool5 = metaData['name']
1911 this[bool5] = userInput
1914 if (boolVariables != 5)
1915 boolVariables=boolVariables+1
1920 settings.put(metaData['name'], metaData['name'])
1922 if (App == "App1") {
1923 extractedObjectsApp1.append("//Global variable for boolean!\n")
1924 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1926 extractedObjectsApp2.append("//Global variable for boolean!\n")
1927 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1931 //def userInput = Math.abs(new Random().nextInt() % 2)
1932 def userInput = true
1934 if (boolVariables == 0) {
1935 bool0 = metaData['name']
1936 this[bool0] = userInput
1937 } else if (boolVariables == 1) {
1938 bool1 = metaData['name']
1939 this[bool1] = userInput
1940 } else if (boolVariables == 2) {
1941 bool2 = metaData['name']
1942 this[bool2] = userInput
1943 } else if (boolVariables == 3) {
1944 bool3 = metaData['name']
1945 this[bool3] = userInput
1946 } else if (boolVariables == 4) {
1947 bool4 = metaData['name']
1948 this[bool4] = userInput
1949 } else if (boolVariables == 5) {
1950 bool5 = metaData['name']
1951 this[bool5] = userInput
1954 if (boolVariables != 5)
1955 boolVariables=boolVariables+1
1960 settings.put(metaData['name'], metaData['name'])
1962 if (App == "App1") {
1963 extractedObjectsApp1.append("//Global variable for boolean!\n")
1964 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1966 extractedObjectsApp2.append("//Global variable for boolean!\n")
1967 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1971 def userInput = 9495379373
1973 if (phoneVariables == 0) {
1974 phone0 = metaData['name']
1975 this[phone0] = userInput
1976 } else if (phoneVariables == 1) {
1977 phone1 = metaData['name']
1978 this[phone1] = userInput
1979 } else if (phoneVariables == 2) {
1980 phone2 = metaData['name']
1981 this[phone2] = userInput
1982 } else if (phoneVariables == 3) {
1983 phone3 = metaData['name']
1984 this[phone3] = userInput
1985 } else if (phoneVariables == 4) {
1986 phone4 = metaData['name']
1987 this[phone4] = userInput
1988 } else if (phoneVariables == 5) {
1989 phone5 = metaData['name']
1990 this[phone5] = userInput
1993 if (phoneVariables != 5)
1994 phoneVariables=phoneVariables+1
1998 settings.put(metaData['name'], metaData['name'])
2000 if (App == "App1") {
2001 extractedObjectsApp1.append("//Global variable for phone!\n")
2002 extractedObjectsApp1.append("def "+metaData['name']+" = "+userInput+"\n")
2004 extractedObjectsApp2.append("//Global variable for phone!\n")
2005 extractedObjectsApp2.append("def "+metaData['name']+" = "+userInput+"\n")
2009 def userInput = "AJ"
2011 if (contactVariables == 0) {
2012 contact0 = metaData['name']
2013 this[contact0] = userInput
2014 } else if (contactVariables == 1) {
2015 contact1 = metaData['name']
2016 this[contact1] = userInput
2017 } else if (contactVariables == 2) {
2018 contact2 = metaData['name']
2019 this[contact2] = userInput
2020 } else if (contactVariables == 3) {
2021 contact3 = metaData['name']
2022 this[contact3] = userInput
2023 } else if (contactVariables == 4) {
2024 contact4 = metaData['name']
2025 this[contact4] = userInput
2026 } else if (contactVariables == 5) {
2027 contact5 = metaData['name']
2028 this[contact5] = userInput
2031 if (contactVariables != 5)
2032 contactVariables=contactVariables+1
2036 settings.put(metaData['name'], metaData['name'])
2038 if (App == "App1") {
2039 extractedObjectsApp1.append("//Global variable for contact!\n")
2040 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
2042 extractedObjectsApp2.append("//Global variable for contact!\n")
2043 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
2051 def label(LinkedHashMap metaData) {
2052 if (metaData.containsKey('title')) {
2053 println metaData['title']
2055 if (metaData.containsKey('options')) {
2056 println "Options: "+metaData['options']
2059 println("//IGNORE--ForMobileUse//")
2062 def mode(LinkedHashMap metaData) {
2063 if (metaData.containsKey('title')) {
2064 println metaData['title']
2066 if (metaData.containsKey('options')) {
2067 println "Options: "+metaData['options']
2070 println("//IGNORE--ForMobileUse//")
2073 def href(LinkedHashMap metaData) {
2074 println("//IGNORE--some data//")
2077 def href(LinkedHashMap metaData, String name) {
2078 println("//IGNORE--some data//")
2080 /////Input Methods/////
2083 /////MethodsForExtraction/////
2084 def definition(LinkedHashMap metaData) {
2085 println("///Just some information///")
2088 def preferences(Closure inputData) {
2089 find(inputData) //Run the closure to extract pages/sections/inputMethods
2090 settings.put("END", "END")
2091 if (App == "App1") {
2092 extractedObjectsConstructorApp1.append("//Global variable for settings!\n")
2093 extractedObjectsConstructorApp1.append("settings = [")
2097 extractedObjectsConstructorApp1.append("$key: $key, ")
2099 extractedObjectsConstructorApp1.append("END: \"END\"]\n")
2102 extractedObjectsConstructorApp2.append("//Global variable for settings!\n")
2103 extractedObjectsConstructorApp2.append("settings = [")
2107 extractedObjectsConstructorApp2.append("$key: $key, ")
2109 extractedObjectsConstructorApp2.append("END: \"END\"]\n")
2112 File GlobalVariablesBothApps = new File("GlobalVariables/GlobalVariablesBothApps.groovy")
2113 GlobalVariablesBothApps.write("")
2114 GlobalVariablesBothApps.append("//Creating Global variables for both apps\n")
2115 GlobalVariablesBothApps.append("@Field def sendEvent = {eventDataMap -> eventHandler(eventDataMap)}\n")
2116 GlobalVariablesBothApps.append("@Field def locationObject = new LocationVar(sendEvent, init)\n")
2117 GlobalVariablesBothApps.append("@Field def appObject = new Touched(sendEvent, 0)\n")
2119 globalObjects.withReader { reader ->
2120 while ((line = reader.readLine()) != null) {
2121 GlobalVariablesBothApps.append(line)
2122 GlobalVariablesBothApps.append("\n")
2128 def image(String data) {
2129 println("//IGNORE--some image//")
2132 def page(LinkedHashMap metaData, Closure inputData) {
2133 if (metaData.containsKey('name'))
2134 println(metaData['name'])
2135 if (metaData.containsKey('title'))
2136 println(metaData['title'])
2138 find(inputData) //Run the closure to extract sections/inputMethods
2141 def page(LinkedHashMap metaData) {
2142 def nameOfFunction = metaData['name']
2143 "$nameOfFunction"() //Call the page
2146 def dynamicPage(LinkedHashMap metaData, Closure inputData) {
2147 if (metaData.containsKey('name'))
2148 println(metaData['name'])
2149 if (metaData.containsKey('title'))
2150 println(metaData['title'])
2152 find(inputData) //Run the closure to extract sections/inputMethods
2155 def paragraph(String paragraphText) {
2156 println(paragraphText)
2159 def paragraph(LinkedHashMap metaData, String paragraphText) {
2160 println(paragraphText)
2163 def section(String title, Closure inputData) {
2165 find(inputData) //Run the closure to extract inputMethods
2168 def section(Closure inputData) {
2169 find(inputData) //Run the closure to extract inputMethods
2172 def section(LinkedHashMap metaData, Closure inputData) {
2173 find(inputData) //Run the closure to extract inputMethods
2176 def section(LinkedHashMap metaData, String data, Closure inputData) {
2180 def mappings(Closure inputData) {
2181 println("//IGNORE--some data//")
2183 /////MethodsForExtraction/////