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 Timer.SimulatedTimer
76 @Field def location = new LocationVar()
77 //Settings variable defined to settings on purpose
78 @Field def settings = [app: "app"]
79 //Global variable for state[mode]
80 @Field def state = [home:[],away:[],night:[]]
81 //Create a global logger object for methods
82 @Field def log = new Logger()
83 //Create a global variable for optional property
84 @Field def optional = false //by default for now
87 //Global variables for files
88 @Field File extractedObjectsApp1 = new File("Extractor/App1/extractedObjectsApp1.groovy")
89 @Field File extractedObjectsApp2 = new File("Extractor/App2/extractedObjectsApp2.groovy")
90 @Field File extractedObjectsConstructorApp1 = new File("Extractor/App1/extractedObjectsConstructorApp1.groovy")
91 @Field File extractedObjectsConstructorApp2 = new File("Extractor/App2/extractedObjectsConstructorApp2.groovy")
96 extractedObjectsApp1.write("")
97 extractedObjectsConstructorApp1.write("")
98 } else if (App == "App2") {
99 extractedObjectsApp2.write("")
100 extractedObjectsConstructorApp2.write("")
105 //Some of methods-May be needed even in install
106 /////////////////////////////////////////////////////////////////////
107 def timeToday(String time, Object timeZone) {
108 def timeOfDay = new Date()
109 def _inputTime = time.split(':')
110 def inputTime = Integer.parseInt(_inputTime[0])*3600+Integer.parseInt(_inputTime[1])*60+1564191100415
111 timeOfDay.time = inputTime
118 //Global Object for class Touch Sensor!
119 @Field touchSensorObjects = 0
120 @Field def touchSensorObject0
121 @Field def touchSensorObject1
122 @Field def touchSensorObject2
123 //Global Object for class switch!
124 @Field switchObjects = 0
125 @Field def switchObject0
126 @Field def switchObject1
127 @Field def switchObject2
128 //Global Object for class lock!
129 @Field lockObjects = 0
130 @Field def lockObject0
131 @Field def lockObject1
132 @Field def lockObject2
133 //Global Object for class door control!
134 @Field doorControlObjects = 0
135 @Field def doorControlObject0
136 @Field def doorControlObject1
137 @Field def doorControlObject2
138 //Global Object for class contact sensor!
139 @Field contactObjects = 0
140 @Field def contactObject0
141 @Field def contactObject1
142 @Field def contactObject2
143 //Global Object for class presence sensor!
144 @Field presenceSensorObjects = 0
145 @Field def presenceSensorObject0
146 @Field def presenceSensorObject1
147 @Field def presenceSensorObject2
148 //Global Object for class thermostat!
149 @Field thermostatObjects = 0
150 @Field def thermostatObject0
151 @Field def thermostatObject1
152 @Field def thermostatObject2
153 //Global Object for class music player!
154 @Field musicPlayerObjects = 0
155 @Field def musicPlayerObject0
156 @Field def musicPlayerObject1
157 @Field def musicPlayerObject2
158 //Global Object for class aeon key fob!
159 @Field aeonKeyFobObjects = 0
160 @Field def aeonKeyFobObject0
161 @Field def aeonKeyFobObject1
162 @Field def aeonKeyFobObject2
163 //Global Object for class motion sensor!
164 @Field motionSensorObjects = 0
165 @Field def motionSensorObject0
166 @Field def motionSensorObject1
167 @Field def motionSensorObject2
168 //Global Object for class image capture!
169 @Field imageCaptureObjects = 0
170 @Field def imageCaptureObject0
171 @Field def imageCaptureObject1
172 @Field def imageCaptureObject2
173 //Global Object for class smoke detector!
174 @Field smokeDetectorObjects = 0
175 @Field def smokeDetectorObject0
176 @Field def smokeDetectorObject1
177 @Field def smokeDetectorObject2
178 //Global Object for class alarm!
179 @Field alarmObjects = 0
180 @Field def alarmObject0
181 @Field def alarmObject1
182 @Field def alarmObject2
183 //Global Object for class speech synthesis!
184 @Field speechSynthesisObjects = 0
185 @Field def speechSynthesisObject0
186 @Field def speechSynthesisObject1
187 @Field def speechSynthesisObject2
188 //Global Object for class acceleration sensor!
189 @Field accelerationSensorObjects = 0
190 @Field def accelerationSensorObject0
191 @Field def accelerationSensorObject1
192 @Field def accelerationSensorObject2
193 //Global Object for class battery!
194 @Field batteryObjects = 0
195 @Field def batteryObject0
196 @Field def batteryObject1
197 @Field def batteryObject2
198 //Global Object for class beacon sensor!
199 @Field beaconSensorObjects = 0
200 @Field def beaconSensorObject0
201 @Field def beaconSensorObject1
202 @Field def beaconSensorObject2
203 //Global Object for class carbon monoxide detector!
204 @Field carbonMonoxideDetectorObjects = 0
205 @Field def carbonMonoxideDetectorObject0
206 @Field def carbonMonoxideDetectorObject1
207 @Field def carbonMonoxideDetectorObject2
208 //Global Object for class color control!
209 @Field colorControlObjects = 0
210 @Field def colorControlObject0
211 @Field def colorControlObject1
212 @Field def colorControlObject2
213 //Global Object for class energy meter!
214 @Field energyMeterObjects = 0
215 @Field def energyMeterObject0
216 @Field def energyMeterObject1
217 @Field def energyMeterObject2
218 //Global Object for class energy meter!
219 @Field illuminanceMeasurementObjects = 0
220 @Field def illuminanceMeasurementObject0
221 @Field def illuminanceMeasurementObject1
222 @Field def illuminanceMeasurementObject2
223 //Global Object for class power meter!
224 @Field powerMeterObjects = 0
225 @Field def powerMeterObject0
226 @Field def powerMeterObject1
227 @Field def powerMeterObject2
228 //Global Object for class power meter!
229 @Field humidityMeasurementObjects = 0
230 @Field def humidityMeasurementObject0
231 @Field def humidityMeasurementObject1
232 @Field def humidityMeasurementObject2
233 //Global Object for class relay switch!
234 @Field relaySwitchObjects = 0
235 @Field def relaySwitchObject0
236 @Field def relaySwitchObject1
237 @Field def relaySwitchObject2
238 //Global Object for class sleep sensor!
239 @Field sleepSensorObjects = 0
240 @Field def sleepSensorObject0
241 @Field def sleepSensorObject1
242 @Field def sleepSensorObject2
243 //Global Object for class sleep sensor!
244 @Field stepSensorObjects = 0
245 @Field def stepSensorObject0
246 @Field def stepSensorObject1
247 @Field def stepSensorObject2
248 //Global Object for class switch level!
249 @Field switchLevelObjects = 0
250 @Field def switchLevelObject0
251 @Field def switchLevelObject1
252 @Field def switchLevelObject2
253 //Global Object for class temperature measurement!
254 @Field temperatureMeasurementObjects = 0
255 @Field def temperatureMeasurementObject0
256 @Field def temperatureMeasurementObject1
257 @Field def temperatureMeasurementObject2
258 //Global Object for class temperature measurement!
259 @Field waterSensorObjects = 0
260 @Field def waterSensorObject0
261 @Field def waterSensorObject1
262 @Field def waterSensorObject2
263 //Global Object for class valve!
264 @Field valveObjects = 0
265 @Field def valveObject0
266 @Field def valveObject1
267 @Field def valveObject2
268 //Global Object for class valve!
269 @Field mobilePresenceObjects = 0
270 @Field def mobilePresenceObject0
271 @Field def mobilePresenceObject1
272 @Field def mobilePresenceObject2
278 @Field modeVariables = 0
286 @Field numberVariables = 0
294 @Field decimalVariables = 0
302 @Field timeVariables = 0
310 @Field enumVariables = 0
318 @Field phoneVariables = 0
326 @Field contactVariables = 0
334 @Field textVariables = 0
342 @Field boolVariables = 0
351 /////Input Methods/////
353 def input(String name, String type) {
354 LinkedHashMap metaData = []
355 metaData.put('name',name)
356 metaData.put('type',type)
360 //input "","",linkedHashMap
361 def input(LinkedHashMap metaData, String name, String type) {
362 metaData.put('name',name)
363 metaData.put('type',type)
367 //input "", "", linkedHashMap, Closure
368 def input(LinkedHashMap metaData, String name, String type, Closure Input) {
369 metaData.put('name',name)
370 metaData.put('type',type)
375 //input linkedHashMap
376 def input(LinkedHashMap metaData) {
377 if (metaData.containsKey('title')) {
378 println metaData['title']
380 if (metaData.containsKey('options')) {
381 println "Options: "+metaData['options']
383 switch(metaData['type']) {
384 case "capability.lock":
385 if (lockObjects == 0) {
386 lockObject0 = metaData['name']
387 this[lockObject0] = new Locks({}, 1)
388 } else if (lockObjects == 1) {
389 lockObject1 = metaData['name']
390 this[lockObject1] = new Locks({}, 1)
391 } else if (lockObjects == 2) {
392 lockObject2 = metaData['name']
393 this[lockObject2] = new Locks({}, 1)
396 lockObjects=lockObjects+1
398 settings.put(metaData['name'], metaData['name'])
401 extractedObjectsApp1.append("//Object for class lock!\n")
402 extractedObjectsApp1.append("def "+metaData['name']+"\n")
403 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.lockObject\n")
405 extractedObjectsApp2.append("//Object for class lock!\n")
406 extractedObjectsApp2.append("def "+metaData['name']+"\n")
407 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.lockObject\n")
410 case "capability.alarm":
411 if (alarmObjects == 0) {
412 alarmObject0 = metaData['name']
413 this[alarmObject0] = new Alarms({}, 1)
414 } else if (alarmObjects == 1) {
415 alarmObject1 = metaData['name']
416 this[alarmObject1] = new Alarms({}, 1)
417 } else if (alarmObjects == 2) {
418 alarmObject2 = metaData['name']
419 this[alarmObject2] = new Alarms({}, 1)
422 alarmObjects=alarmObjects+1
424 settings.put(metaData['name'], metaData['name'])
427 extractedObjectsApp1.append("//Object for class alarm!\n")
428 extractedObjectsApp1.append("def "+metaData['name']+"\n")
429 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.alarmObject\n")
431 extractedObjectsApp2.append("//Object for class alarm!\n")
432 extractedObjectsApp2.append("def "+metaData['name']+"\n")
433 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.alarmObject\n")
436 case "capability.battery":
437 if (batteryObjects == 0) {
438 batteryObject0 = metaData['name']
439 this[batteryObject0] = new Batteries({}, 1)
440 } else if (batteryObjects == 1) {
441 batteryObject1 = metaData['name']
442 this[batteryObject1] = new Batteries({}, 1)
443 } else if (batteryObjects == 2) {
444 batteryObject2 = metaData['name']
445 this[batteryObject2] = new Batteries({}, 1)
448 batteryObjects=batteryObjects+1
450 settings.put(metaData['name'], metaData['name'])
453 extractedObjectsApp1.append("//Object for class Battery!\n")
454 extractedObjectsApp1.append("def "+metaData['name']+"\n")
455 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.batteryObject\n")
457 extractedObjectsApp2.append("//Object for class Battery!\n")
458 extractedObjectsApp2.append("def "+metaData['name']+"\n")
459 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.batteryObject\n")
462 case "capability.beacon":
463 if (beaconSensorObjects == 0) {
464 beaconSensorObject0 = metaData['name']
465 this[beaconSensorObject0] = new BeaconSensors({}, 1)
466 } else if (beaconSensorObjects == 1) {
467 beaconSensorObject1 = metaData['name']
468 this[beaconSensorObject1] = new BeaconSensors({}, 1)
469 } else if (beaconSensorObjects == 2) {
470 beaconSensorObject2 = metaData['name']
471 this[beaconSensorObject2] = new BeaconSensors({}, 1)
474 beaconSensorObjects=beaconSensorObjects+1
476 settings.put(metaData['name'], metaData['name'])
479 extractedObjectsApp1.append("//Object for class beacon sensor!\n")
480 extractedObjectsApp1.append("def "+metaData['name']+"\n")
481 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.beaconSensorObject\n")
483 extractedObjectsApp2.append("//Object for class beacon sensor!\n")
484 extractedObjectsApp2.append("def "+metaData['name']+"\n")
485 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.beaconSensorObject\n")
488 case "capability.carbonMonoxideDetector":
489 if (carbonMonoxideDetectorObjects == 0) {
490 carbonMonoxideDetectorObject0 = metaData['name']
491 this[carbonMonoxideDetectorObject0] = new CarbonMonoxideDetectors({}, 1)
492 } else if (carbonMonoxideDetectorObjects == 1) {
493 carbonMonoxideDetectorObject1 = metaData['name']
494 this[carbonMonoxideDetectorObject1] = new CarbonMonoxideDetectors({}, 1)
495 } else if (carbonMonoxideDetectorObjects == 2) {
496 carbonMonoxideDetectorObject2 = metaData['name']
497 this[carbonMonoxideDetectorObject2] = new CarbonMonoxideDetectors({}, 1)
500 carbonMonoxideDetectorObjects=carbonMonoxideDetectorObjects+1
502 settings.put(metaData['name'], metaData['name'])
505 extractedObjectsApp1.append("//Object for class carbon monoxide detector!\n")
506 extractedObjectsApp1.append("def "+metaData['name']+"\n")
507 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.carbonMonoxideDetectorObject\n")
509 extractedObjectsApp2.append("//Object for class carbon monoxide detector!\n")
510 extractedObjectsApp2.append("def "+metaData['name']+"\n")
511 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.carbonMonoxideDetectorObject\n")
514 case "capability.colorControl":
515 if (colorControlObjects == 0) {
516 colorControlObject0 = metaData['name']
517 this[colorControlObject0] = new ColorControls({}, 1)
518 } else if (colorControlObjects == 1) {
519 colorControlObject1 = metaData['name']
520 this[colorControlObject1] = new ColorControls({}, 1)
521 } else if (colorControlObjects == 2) {
522 colorControlObject2 = metaData['name']
523 this[colorControlObject2] = new ColorControls({}, 1)
526 colorControlObjects=colorControlObjects+1
528 settings.put(metaData['name'], metaData['name'])
531 extractedObjectsApp1.append("//Object for class color control!\n")
532 extractedObjectsApp1.append("def "+metaData['name']+"\n")
533 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.colorControlObject\n")
535 extractedObjectsApp2.append("//Object for class color control!\n")
536 extractedObjectsApp2.append("def "+metaData['name']+"\n")
537 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.colorControlObject\n")
540 case "capability.contactSensor":
541 if (contactObjects == 0) {
542 contactObject0 = metaData['name']
543 this[contactObject0] = new ContactSensors({}, 1)
544 } else if (contactObjects == 1) {
545 contactObject1 = metaData['name']
546 this[contactObject1] = new ContactSensors({}, 1)
547 } else if (contactObjects == 2) {
548 contactObject2 = metaData['name']
549 this[contactObject2] = new ContactSensors({}, 1)
552 contactObjects=contactObjects+1
554 settings.put(metaData['name'], metaData['name'])
557 extractedObjectsApp1.append("//Object for class contactSensor!\n")
558 extractedObjectsApp1.append("def "+metaData['name']+"\n")
559 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.contactObject\n")
561 extractedObjectsApp2.append("//Object for class contactSensor!\n")
562 extractedObjectsApp2.append("def "+metaData['name']+"\n")
563 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.contactObject\n")
566 case "capability.doorControl":
567 if (doorControlObjects == 0) {
568 doorControlObject0 = metaData['name']
569 this[doorControlObject0] = new DoorControls({}, 1)
570 } else if (doorControlObjects == 1) {
571 doorControlObject1 = metaData['name']
572 this[doorControlObject1] = new DoorControls({}, 1)
573 } else if (doorControlObjects == 2) {
574 doorControlObject2 = metaData['name']
575 this[doorControlObject2] = new DoorControls({}, 1)
578 doorControlObjects=doorControlObjects+1
580 settings.put(metaData['name'], metaData['name'])
583 extractedObjectsApp1.append("//Object for class door control!\n")
584 extractedObjectsApp1.append("def "+metaData['name']+"\n")
585 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.doorControlObject\n")
587 extractedObjectsApp2.append("//Object for class door control!\n")
588 extractedObjectsApp2.append("def "+metaData['name']+"\n")
589 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.doorControlObject\n")
592 case "capability.energyMeter":
593 if (energyMeterObjects == 0) {
594 energyMeterObject0 = metaData['name']
595 this[energyMeterObject0] = new EnergyMeters({}, 1)
596 } else if (energyMeterObjects == 1) {
597 energyMeterObject1 = metaData['name']
598 this[energyMeterObject1] = new EnergyMeters({}, 1)
599 } else if (energyMeterObjects == 2) {
600 energyMeterObject2 = metaData['name']
601 this[energyMeterObject2] = new EnergyMeters({}, 1)
604 energyMeterObjects=energyMeterObjects+1
606 settings.put(metaData['name'], metaData['name'])
609 extractedObjectsApp1.append("//Object for class energy meter!\n")
610 extractedObjectsApp1.append("def "+metaData['name']+"\n")
611 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.energyMeterObject\n")
613 extractedObjectsApp2.append("//Object for class energy meter!\n")
614 extractedObjectsApp2.append("def "+metaData['name']+"\n")
615 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.energyMeterObject\n")
618 case "capability.illuminanceMeasurement":
619 if (illuminanceMeasurementObjects == 0) {
620 illuminanceMeasurementObject0 = metaData['name']
621 this[illuminanceMeasurementObject0] = new IlluminanceMeasurements({}, 1)
622 } else if (illuminanceMeasurementObjects == 1) {
623 illuminanceMeasurementObject1 = metaData['name']
624 this[illuminanceMeasurementObject1] = new IlluminanceMeasurements({}, 1)
625 } else if (illuminanceMeasurementObjects == 2) {
626 illuminanceMeasurementObject2 = metaData['name']
627 this[illuminanceMeasurementObject2] = new IlluminanceMeasurements({}, 1)
630 illuminanceMeasurementObjects=illuminanceMeasurementObjects+1
632 settings.put(metaData['name'], metaData['name'])
635 extractedObjectsApp1.append("//Object for class illuminance measurement!\n")
636 extractedObjectsApp1.append("def "+metaData['name']+"\n")
637 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.illuminanceMeasurementObject\n")
639 extractedObjectsApp2.append("//Object for class illuminance measurement!\n")
640 extractedObjectsApp2.append("def "+metaData['name']+"\n")
641 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.illuminanceMeasurementObject\n")
644 case "capability.accelerationSensor":
645 if (accelerationSensorObjects == 0) {
646 accelerationSensorObject0 = metaData['name']
647 this[accelerationSensorObject0] = new AccelerationSensors({}, 1)
648 } else if (accelerationSensorObjects == 1) {
649 accelerationSensorObject1 = metaData['name']
650 this[accelerationSensorObject1] = new AccelerationSensors({}, 1)
651 } else if (accelerationSensorObjects == 2) {
652 accelerationSensorObject2 = metaData['name']
653 this[accelerationSensorObject2] = new AccelerationSensors({}, 1)
656 accelerationSensorObjects=accelerationSensorObjects+1
658 settings.put(metaData['name'], metaData['name'])
661 extractedObjectsApp1.append("//Object for class Acceleration Sensor!\n")
662 extractedObjectsApp1.append("def "+metaData['name']+"\n")
663 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.accelerationSensorObject\n")
665 extractedObjectsApp2.append("//Object for class Acceleration Sensor!\n")
666 extractedObjectsApp2.append("def "+metaData['name']+"\n")
667 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.accelerationSensorObject\n")
670 case "capability.motionSensor":
671 if (motionSensorObjects == 0) {
672 motionSensorObject0 = metaData['name']
673 this[motionSensorObject0] = new MotionSensors({}, 1)
674 } else if (motionSensorObjects == 1) {
675 motionSensorObject1 = metaData['name']
676 this[motionSensorObject1] = new MotionSensors({}, 1)
677 } else if (motionSensorObjects == 2) {
678 motionSensorObject2 = metaData['name']
679 this[motionSensorObject2] = new MotionSensors({}, 1)
682 motionSensorObjects=motionSensorObjects+1
684 settings.put(metaData['name'], metaData['name'])
687 extractedObjectsApp1.append("//Object for class Motion Sensor!\n")
688 extractedObjectsApp1.append("def "+metaData['name']+"\n")
689 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.motionSensorObject\n")
691 extractedObjectsApp2.append("//Object for class Motion Sensor!\n")
692 extractedObjectsApp2.append("def "+metaData['name']+"\n")
693 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.motionSensorObject\n")
696 case "capability.musicPlayer":
697 if (musicPlayerObjects == 0) {
698 musicPlayerObject0 = metaData['name']
699 this[musicPlayerObject0] = new MusicPlayers({}, 1)
700 } else if (musicPlayerObjects == 1) {
701 musicPlayerObject1 = metaData['name']
702 this[musicPlayerObject1] = new MusicPlayers({}, 1)
703 } else if (musicPlayerObjects == 2) {
704 musicPlayerObject2 = metaData['name']
705 this[musicPlayerObject2] = new MusicPlayers({}, 1)
708 musicPlayerObjects=musicPlayerObjects+1
710 settings.put(metaData['name'], metaData['name'])
713 extractedObjectsApp1.append("//Object for class music player!\n")
714 extractedObjectsApp1.append("def "+metaData['name']+"\n")
715 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.musicPlayerObject\n")
717 extractedObjectsApp2.append("//Object for class music player!\n")
718 extractedObjectsApp2.append("def "+metaData['name']+"\n")
719 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.musicPlayerObject\n")
722 case "capability.powerMeter":
723 if (powerMeterObjects == 0) {
724 powerMeterObject0 = metaData['name']
725 this[powerMeterObject0] = new PowerMeters({}, 1)
726 } else if (powerMeterObjects == 1) {
727 powerMeterObject1 = metaData['name']
728 this[powerMeterObject1] = new PowerMeters({}, 1)
729 } else if (powerMeterObjects == 2) {
730 powerMeterObject2 = metaData['name']
731 this[powerMeterObject2] = new PowerMeters({}, 1)
734 powerMeterObjects=powerMeterObjects+1
736 settings.put(metaData['name'], metaData['name'])
739 extractedObjectsApp1.append("//Object for class power meter!\n")
740 extractedObjectsApp1.append("def "+metaData['name']+"\n")
741 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.powerMeterObject\n")
743 extractedObjectsApp2.append("//Object for class power meter!\n")
744 extractedObjectsApp2.append("def "+metaData['name']+"\n")
745 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.powerMeterObject\n")
748 case "capability.presenceSensor":
749 if (presenceSensorObjects == 0) {
750 presenceSensorObject0 = metaData['name']
751 this[presenceSensorObject0] = new PresenceSensors({}, 1)
752 } else if (presenceSensorObjects == 1) {
753 presenceSensorObject1 = metaData['name']
754 this[presenceSensorObject1] = new PresenceSensors({}, 1)
755 } else if (presenceSensorObjects == 2) {
756 presenceSensorObject2 = metaData['name']
757 this[presenceSensorObject2] = new PresenceSensors({}, 1)
760 presenceSensorObjects=presenceSensorObjects+1
762 settings.put(metaData['name'], metaData['name'])
765 extractedObjectsApp1.append("//Object for class presence sensor!\n")
766 extractedObjectsApp1.append("def "+metaData['name']+"\n")
767 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.presenceSensorObject\n")
769 extractedObjectsApp2.append("//Object for class presence sensor!\n")
770 extractedObjectsApp2.append("def "+metaData['name']+"\n")
771 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.presenceSensorObject\n")
774 case "capability.relativeHumidityMeasurement":
775 if (humidityMeasurementObjects == 0) {
776 humidityMeasurementObject0 = metaData['name']
777 this[humidityMeasurementObject0] = new RelativeHumidityMeasurements({}, 1)
778 } else if (humidityMeasurementObjects == 1) {
779 humidityMeasurementObject1 = metaData['name']
780 this[humidityMeasurementObject1] = new RelativeHumidityMeasurements({}, 1)
781 } else if (humidityMeasurementObjects == 2) {
782 humidityMeasurementObject2 = metaData['name']
783 this[humidityMeasurementObject2] = new RelativeHumidityMeasurements({}, 1)
786 humidityMeasurementObjects=humidityMeasurementObjects+1
788 settings.put(metaData['name'], metaData['name'])
791 extractedObjectsApp1.append("//Object for class humidity measurement!\n")
792 extractedObjectsApp1.append("def "+metaData['name']+"\n")
793 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.humidityMeasurementObject\n")
795 extractedObjectsApp2.append("//Object for class humidity measurement!\n")
796 extractedObjectsApp2.append("def "+metaData['name']+"\n")
797 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.humidityMeasurementObject\n")
800 case "capability.relaySwitch":
801 if (relaySwitchObjects == 0) {
802 relaySwitchObject0 = metaData['name']
803 this[relaySwitchObject0] = new RelaySwitches({}, 1)
804 } else if (relaySwitchObjects == 1) {
805 relaySwitchObject1 = metaData['name']
806 this[relaySwitchObject1] = new RelaySwitches({}, 1)
807 } else if (relaySwitchObjects == 2) {
808 relaySwitchObject2 = metaData['name']
809 this[relaySwitchObject2] = new RelaySwitches({}, 1)
812 relaySwitchObjects=relaySwitchObjects+1
814 settings.put(metaData['name'], metaData['name'])
817 extractedObjectsApp1.append("//Object for class relay switch!\n")
818 extractedObjectsApp1.append("def "+metaData['name']+"\n")
819 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.relaySwitchObject\n")
821 extractedObjectsApp2.append("//Object for class relay switch!\n")
822 extractedObjectsApp2.append("def "+metaData['name']+"\n")
823 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.relaySwitchObject\n")
826 case "capability.sleepSensor":
827 if (sleepSensorObjects == 0) {
828 sleepSensorObject0 = metaData['name']
829 this[sleepSensorObject0] = new SleepSensors({}, 1)
830 } else if (sleepSensorObjects == 1) {
831 sleepSensorObject1 = metaData['name']
832 this[sleepSensorObject1] = new SleepSensors({}, 1)
833 } else if (sleepSensorObjects == 2) {
834 sleepSensorObject2 = metaData['name']
835 this[sleepSensorObject2] = new SleepSensors({}, 1)
838 sleepSensorObjects=sleepSensorObjects+1
840 settings.put(metaData['name'], metaData['name'])
843 extractedObjectsApp1.append("//Object for class sleep sensor!\n")
844 extractedObjectsApp1.append("def "+metaData['name']+"\n")
845 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.sleepSensorObject\n")
847 extractedObjectsApp2.append("//Object for class sleep sensor!\n")
848 extractedObjectsApp2.append("def "+metaData['name']+"\n")
849 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.sleepSensorObject\n")
852 case "capability.smokeDetector":
853 if (smokeDetectorObjects == 0) {
854 smokeDetectorObject0 = metaData['name']
855 this[smokeDetectorObject0] = new SmokeDetectors({}, 1)
856 } else if (smokeDetectorObjects == 1) {
857 smokeDetectorObject1 = metaData['name']
858 this[smokeDetectorObject1] = new SmokeDetectors({}, 1)
859 } else if (smokeDetectorObjects == 2) {
860 smokeDetectorObject2 = metaData['name']
861 this[smokeDetectorObject2] = new SmokeDetectors({}, 1)
864 smokeDetectorObjects=smokeDetectorObjects+1
866 settings.put(metaData['name'], metaData['name'])
869 extractedObjectsApp1.append("//Object for class smoke detector!\n")
870 extractedObjectsApp1.append("def "+metaData['name']+"\n")
871 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.smokeDetectorObject\n")
873 extractedObjectsApp2.append("//Object for class smoke detector!\n")
874 extractedObjectsApp2.append("def "+metaData['name']+"\n")
875 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.smokeDetectorObject\n")
878 case "capability.stepSensor":
879 if (stepSensorObjects == 0) {
880 stepSensorObject0 = metaData['name']
881 this[stepSensorObject0] = new StepSensors({}, 1)
882 } else if (stepSensorObjects == 1) {
883 stepSensorObject1 = metaData['name']
884 this[stepSensorObject1] = new StepSensors({}, 1)
885 } else if (stepSensorObjects == 2) {
886 stepSensorObject2 = metaData['name']
887 this[stepSensorObject2] = new StepSensors({}, 1)
890 stepSensorObjects=stepSensorObjects+1
892 settings.put(metaData['name'], metaData['name'])
895 extractedObjectsApp1.append("//Object for class step sensor!\n")
896 extractedObjectsApp1.append("def "+metaData['name']+"\n")
897 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.stepSensorObject\n")
899 extractedObjectsApp2.append("//Object for class step sensor!\n")
900 extractedObjectsApp2.append("def "+metaData['name']+"\n")
901 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.stepSensorObject\n")
904 case "capability.switch":
905 if (switchObjects == 0) {
906 switchObject0 = metaData['name']
907 this[switchObject0] = new Switches({}, 1)
908 } else if (switchObjects == 1) {
909 switchObject1 = metaData['name']
910 this[switchObject1] = new Switches({}, 1)
911 } else if (switchObjects == 2) {
912 switchObject2 = metaData['name']
913 this[switchObject2] = new Switches({}, 1)
916 switchObjects=switchObjects+1
918 settings.put(metaData['name'], metaData['name'])
921 extractedObjectsApp1.append("//Object for class switch!\n")
922 extractedObjectsApp1.append("def "+metaData['name']+"\n")
923 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.switchObject\n")
925 extractedObjectsApp2.append("//Object for class switch!\n")
926 extractedObjectsApp2.append("def "+metaData['name']+"\n")
927 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.switchObject\n")
930 case "capability.switchLevel":
931 if (switchLevelObjects == 0) {
932 switchLevelObject0 = metaData['name']
933 this[switchLevelObject0] = new SwitchLevels({}, 1)
934 } else if (switchLevelObjects == 1) {
935 switchLevelObject1 = metaData['name']
936 this[switchLevelObject1] = new SwitchLevels({}, 1)
937 } else if (switchLevelObjects == 2) {
938 switchLevelObject2 = metaData['name']
939 this[switchLevelObject2] = new SwitchLevels({}, 1)
942 switchLevelObjects=switchLevelObjects+1
944 settings.put(metaData['name'], metaData['name'])
947 extractedObjectsApp1.append("//Object for class switch level!\n")
948 extractedObjectsApp1.append("def "+metaData['name']+"\n")
949 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.switchLevelObject\n")
951 extractedObjectsApp2.append("//Object for class switch level!\n")
952 extractedObjectsApp2.append("def "+metaData['name']+"\n")
953 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.switchLevelObject\n")
956 case "capability.temperatureMeasurement":
957 if (temperatureMeasurementObjects == 0) {
958 temperatureMeasurementObject0 = metaData['name']
959 this[temperatureMeasurementObject0] = new TemperatureMeasurements({}, 1)
960 } else if (temperatureMeasurementObjects == 1) {
961 temperatureMeasurementObject1 = metaData['name']
962 this[temperatureMeasurementObject1] = new TemperatureMeasurements({}, 1)
963 } else if (temperatureMeasurementObjects == 2) {
964 temperatureMeasurementObject2 = metaData['name']
965 this[temperatureMeasurementObject2] = new TemperatureMeasurements({}, 1)
968 temperatureMeasurementObjects=temperatureMeasurementObjects+1
970 settings.put(metaData['name'], metaData['name'])
973 extractedObjectsApp1.append("//Object for class temperature measurement!\n")
974 extractedObjectsApp1.append("def "+metaData['name']+"\n")
975 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.temperatureMeasurementObject\n")
977 extractedObjectsApp2.append("//Object for class temperature measurement!\n")
978 extractedObjectsApp2.append("def "+metaData['name']+"\n")
979 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.temperatureMeasurementObject\n")
982 case "capability.thermostat":
983 if (thermostatObjects == 0) {
984 thermostatObject0 = metaData['name']
985 this[thermostatObject0] = new Thermostats({}, 1)
986 } else if (thermostatObjects == 1) {
987 thermostatObject1 = metaData['name']
988 this[thermostatObject1] = new Thermostats({}, 1)
989 } else if (thermostatObjects == 2) {
990 thermostatObject2 = metaData['name']
991 this[thermostatObject2] = new Thermostats({}, 1)
994 thermostatObjects=thermostatObjects+1
996 settings.put(metaData['name'], metaData['name'])
999 extractedObjectsApp1.append("//Object for class thermostat!\n")
1000 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1001 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.thermostatObject\n")
1003 extractedObjectsApp2.append("//Object for class thermostat!\n")
1004 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1005 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.thermostatObject\n")
1008 case "capability.valve":
1009 if (valveObjects == 0) {
1010 valveObject0 = metaData['name']
1011 this[valveObject0] = new Valves({}, 1)
1012 } else if (valveObjects == 1) {
1013 valveObject1 = metaData['name']
1014 this[valveObject1] = new Valves({}, 1)
1015 } else if (valveObjects == 2) {
1016 valveObject2 = metaData['name']
1017 this[valveObject2] = new Valves({}, 1)
1020 valveObjects=valveObjects+1
1022 settings.put(metaData['name'], metaData['name'])
1024 if (App == "App1") {
1025 extractedObjectsApp1.append("//Object for class valve!\n")
1026 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1027 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.valveObject\n")
1029 extractedObjectsApp2.append("//Object for class valve!\n")
1030 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1031 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.valveObject\n")
1034 case "capability.speechSynthesis":
1035 if (speechSynthesisObjects == 0) {
1036 speechSynthesisObject0 = metaData['name']
1037 this[speechSynthesisObject0] = new SpeechSynthesises({}, 1)
1038 } else if (speechSynthesisObjects == 1) {
1039 speechSynthesisObject1 = metaData['name']
1040 this[speechSynthesisObject1] = new SpeechSynthesises({}, 1)
1041 } else if (speechSynthesisObjects == 2) {
1042 speechSynthesisObject2 = metaData['name']
1043 this[speechSynthesisObject2] = new SpeechSynthesises({}, 1)
1046 speechSynthesisObjects=speechSynthesisObjects+1
1048 settings.put(metaData['name'], metaData['name'])
1050 if (App == "App1") {
1051 extractedObjectsApp1.append("//Object for class speech synthesis!\n")
1052 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1053 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.speechSynthesisObject\n")
1055 extractedObjectsApp2.append("//Object for class speech synthesis!\n")
1056 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1057 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.speechSynthesisObject\n")
1060 case "capability.waterSensor":
1061 if (waterSensorObjects == 0) {
1062 waterSensorObject0 = metaData['name']
1063 this[waterSensorObject0] = new WaterSensors({}, 1)
1064 } else if (waterSensorObjects == 1) {
1065 waterSensorObject1 = metaData['name']
1066 this[waterSensorObject1] = new WaterSensors({}, 1)
1067 } else if (waterSensorObjects == 2) {
1068 waterSensorObject2 = metaData['name']
1069 this[waterSensorObject2] = new WaterSensors({}, 1)
1072 waterSensorObjects=waterSensorObjects+1
1074 settings.put(metaData['name'], metaData['name'])
1076 if (App == "App1") {
1077 extractedObjectsApp1.append("//Object for class water sensor!\n")
1078 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1079 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.waterSensorObject\n")
1081 extractedObjectsApp2.append("//Object for class water sensor!\n")
1082 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1083 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.waterSensorObject\n")
1086 case "capability.touchSensor":
1087 if (touchSensorObjects == 0) {
1088 touchSensorObject0 = metaData['name']
1089 this[touchSensorObject0] = new NfcTouch({}, 1)
1090 } else if (touchSensorObjects == 1) {
1091 touchSensorObject1 = metaData['name']
1092 this[touchSensorObject1] = new NfcTouch({}, 1)
1093 } else if (touchSensorObjects == 2) {
1094 touchSensorObject2 = metaData['name']
1095 this[touchSensorObject2] = new NfcTouch({}, 1)
1098 touchSensorObjects=touchSensorObjects+1
1100 settings.put(metaData['name'], metaData['name'])
1102 if (App == "App1") {
1103 extractedObjectsApp1.append("//Object for class Touch Sensor!\n")
1104 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1105 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.touchSensorObject\n")
1107 extractedObjectsApp2.append("//Object for class Touch Sensor!\n")
1108 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1109 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.touchSensorObject\n")
1112 case "capability.imageCapture":
1113 if (imageCaptureObjects == 0) {
1114 imageCaptureObject0 = metaData['name']
1115 this[imageCaptureObject0] = new ImageCaptures({}, 1)
1116 } else if (imageCaptureObjects == 1) {
1117 imageCaptureObject1 = metaData['name']
1118 this[imageCaptureObject1] = new ImageCaptures({}, 1)
1119 } else if (imageCaptureObjects == 2) {
1120 imageCaptureObject2 = metaData['name']
1121 this[imageCaptureObject2] = new ImageCaptures({}, 1)
1124 imageCaptureObjects=imageCaptureObjects+1
1126 settings.put(metaData['name'], metaData['name'])
1128 if (App == "App1") {
1129 extractedObjectsApp1.append("//Object for class Image Capture!\n")
1130 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1131 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.imageCaptureObject\n")
1133 extractedObjectsApp2.append("//Object for class Image Capture!\n")
1134 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1135 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.imageCaptureObject\n")
1138 case "device.mobilePresence":
1139 if (mobilePresenceObjects == 0) {
1140 mobilePresenceObject0 = metaData['name']
1141 this[mobilePresenceObject0] = new MobilePresences({}, 1)
1142 } else if (mobilePresenceObjects == 1) {
1143 mobilePresenceObject1 = metaData['name']
1144 this[mobilePresenceObject1] = new MobilePresences({}, 1)
1145 } else if (mobilePresenceObjects == 2) {
1146 mobilePresenceObject2 = metaData['name']
1147 this[mobilePresenceObject2] = new MobilePresences({}, 1)
1150 mobilePresenceObjects=mobilePresenceObjects+1
1152 settings.put(metaData['name'], metaData['name'])
1154 if (App == "App1") {
1155 extractedObjectsApp1.append("//Object for class mobile presence!\n")
1156 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1157 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.mobilePresenceObject\n")
1159 extractedObjectsApp2.append("//Object for class mobile presence!\n")
1160 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1161 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.mobilePresenceObject\n")
1164 case "device.aeonKeyFob":
1165 if (aeonKeyFobObjects == 0) {
1166 aeonKeyFobObject0 = metaData['name']
1167 this[aeonKeyFobObject0] = new AeonKeyFobs({}, 1)
1168 } else if (aeonKeyFobObjects == 1) {
1169 aeonKeyFobObject1 = metaData['name']
1170 this[aeonKeyFobObject1] = new AeonKeyFobs({}, 1)
1171 } else if (aeonKeyFobObjects == 2) {
1172 aeonKeyFobObject2 = metaData['name']
1173 this[aeonKeyFobObject2] = new AeonKeyFobs({}, 1)
1176 aeonKeyFobObjects=aeonKeyFobObjects+1
1178 settings.put(metaData['name'], metaData['name'])
1180 if (App == "App1") {
1181 extractedObjectsApp1.append("//Object for class aeon key fob!\n")
1182 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1183 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.aeonKeyFobObject\n")
1185 extractedObjectsApp2.append("//Object for class aeon key fob!\n")
1186 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1187 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.aeonKeyFobObject\n")
1191 def randomVariable = Math.abs(new Random().nextInt() % 3)
1192 def modes = ["away", "home", "night"]
1193 def userInput = modes[randomVariable]
1195 if (modeVariables == 0) {
1196 mode0 = metaData['name']
1197 this[mode0] = userInput
1198 } else if (modeVariables == 1) {
1199 mode1 = metaData['name']
1200 this[mode1] = userInput
1201 } else if (modeVariables == 2) {
1202 mode2 = metaData['name']
1203 this[mode2] = userInput
1204 } else if (modeVariables == 3) {
1205 mode3 = metaData['name']
1206 this[mode3] = userInput
1207 } else if (modeVariables == 4) {
1208 mode4 = metaData['name']
1209 this[mode4] = userInput
1210 } else if (modeVariables == 5) {
1211 mode5 = metaData['name']
1212 this[mode5] = userInput
1215 modeVariables=modeVariables+1
1217 settings.put(metaData['name'], metaData['name'])
1219 if (App == "App1") {
1220 extractedObjectsApp1.append("//Global variable for mode!\n")
1221 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1223 extractedObjectsApp2.append("//Global variable for mode!\n")
1224 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1228 def userInput = Math.abs(new Random().nextInt() % 60) + 40
1230 if (decimalVariables == 0) {
1231 decimal0 = metaData['name']
1232 this[decimal0] = userInput
1233 } else if (decimalVariables == 1) {
1234 decimal1 = metaData['name']
1235 this[decimal1] = userInput
1236 } else if (decimalVariables == 2) {
1237 decimal2 = metaData['name']
1238 this[decimal2] = userInput
1239 } else if (decimalVariables == 3) {
1240 decimal3 = metaData['name']
1241 this[decimal3] = userInput
1242 } else if (decimalVariables == 4) {
1243 decimal4 = metaData['name']
1244 this[decimal4] = userInput
1245 } else if (decimalVariables == 5) {
1246 decimal5 = metaData['name']
1247 this[decimal5] = userInput
1250 decimalVariables=decimalVariables+1
1252 settings.put(metaData['name'], metaData['name'])
1254 if (App == "App1") {
1255 extractedObjectsApp1.append("//Global variable for decimal number!\n")
1256 extractedObjectsApp1.append("def "+metaData['name']+" = "+userInput+"\n")
1258 extractedObjectsApp2.append("//Global variable for decimal number!\n")
1259 extractedObjectsApp2.append("def "+metaData['name']+" = "+userInput+"\n")
1263 def userInput = "This is just a text!"
1265 if (textVariables == 0) {
1266 text0 = metaData['name']
1267 this[text0] = userInput
1268 } else if (textVariables == 1) {
1269 text1 = metaData['name']
1270 this[text1] = userInput
1271 } else if (textVariables == 2) {
1272 text2 = metaData['name']
1273 this[text2] = userInput
1274 } else if (textVariables == 3) {
1275 text3 = metaData['name']
1276 this[text3] = userInput
1277 } else if (textVariables == 4) {
1278 text4 = metaData['name']
1279 this[text4] = userInput
1280 } else if (textVariables == 5) {
1281 text5 = metaData['name']
1282 this[text5] = userInput
1285 textVariables=textVariables+1
1287 settings.put(metaData['name'], metaData['name'])
1289 if (App == "App1") {
1290 extractedObjectsApp1.append("//Global variable for text!\n")
1291 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1293 extractedObjectsApp2.append("//Global variable for text!\n")
1294 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1298 def userInput = Math.abs(new Random().nextInt() % 60) + 40
1300 if (numberVariables == 0) {
1301 number0 = metaData['name']
1302 this[number0] = userInput
1303 } else if (numberVariables == 1) {
1304 number1 = metaData['name']
1305 this[number1] = userInput
1306 } else if (numberVariables == 2) {
1307 number2 = metaData['name']
1308 this[number2] = userInput
1309 } else if (numberVariables == 3) {
1310 number3 = metaData['name']
1311 this[number3] = userInput
1312 } else if (numberVariables == 4) {
1313 number4 = metaData['name']
1314 this[number4] = userInput
1315 } else if (numberVariables == 5) {
1316 number5 = metaData['name']
1317 this[number5] = userInput
1320 numberVariables=numberVariables+1
1322 settings.put(metaData['name'], metaData['name'])
1324 if (App == "App1") {
1325 extractedObjectsApp1.append("//Global variable for number!\n")
1326 extractedObjectsApp1.append("def "+metaData['name']+" = "+userInput+"\n")
1328 extractedObjectsApp2.append("//Global variable for number!\n")
1329 extractedObjectsApp2.append("def "+metaData['name']+" = "+userInput+"\n")
1333 def userInput = "15:00"
1335 if (timeVariables == 0) {
1336 time0 = metaData['name']
1337 this[time0] = userInput
1338 } else if (timeVariables == 1) {
1339 time1 = metaData['name']
1340 this[time1] = userInput
1341 } else if (timeVariables == 2) {
1342 time2 = metaData['name']
1343 this[time2] = userInput
1344 } else if (timeVariables == 3) {
1345 time3 = metaData['name']
1346 this[time3] = userInput
1347 } else if (timeVariables == 4) {
1348 time4 = metaData['name']
1349 this[time4] = userInput
1350 } else if (timeVariables == 5) {
1351 time5 = metaData['name']
1352 this[time5] = userInput
1355 timeVariables=timeVariables+1
1357 settings.put(metaData['name'], metaData['name'])
1359 if (App == "App1") {
1360 extractedObjectsApp1.append("//Global variable for time!\n")
1361 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1363 extractedObjectsApp2.append("//Global variable for time!\n")
1364 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1368 if (metaData['options'] != null)
1369 modes = metaData['options']
1370 else // If it is not named 'options' then it is captured as 'metadata'
1371 modes = metaData['metadata']
1372 def userInput = modes[0]
1374 if (enumVariables == 0) {
1375 enum0 = metaData['name']
1376 this[enum0] = userInput
1377 } else if (enumVariables == 1) {
1378 enum1 = metaData['name']
1379 this[enum1] = userInput
1380 } else if (enumVariables == 2) {
1381 enum2 = metaData['name']
1382 this[enum2] = userInput
1383 } else if (enumVariables == 3) {
1384 enum3 = metaData['name']
1385 this[enum3] = userInput
1386 } else if (enumVariables == 4) {
1387 enum4 = metaData['name']
1388 this[enum4] = userInput
1389 } else if (enumVariables == 5) {
1390 enum5 = metaData['name']
1391 this[enum5] = userInput
1394 enumVariables=enumVariables+1
1396 settings.put(metaData['name'], metaData['name'])
1398 if (App == "App1") {
1399 extractedObjectsApp1.append("//Global variable for enum!\n")
1400 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1402 extractedObjectsApp2.append("//Global variable for enum!\n")
1403 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1407 def userInput = Math.abs(new Random().nextInt() % 2)
1409 if (boolVariables == 0) {
1410 bool0 = metaData['name']
1411 this[bool0] = userInput
1412 } else if (boolVariables == 1) {
1413 bool1 = metaData['name']
1414 this[bool1] = userInput
1415 } else if (boolVariables == 2) {
1416 bool2 = metaData['name']
1417 this[bool2] = userInput
1418 } else if (boolVariables == 3) {
1419 bool3 = metaData['name']
1420 this[bool3] = userInput
1421 } else if (boolVariables == 4) {
1422 bool4 = metaData['name']
1423 this[bool4] = userInput
1424 } else if (boolVariables == 5) {
1425 bool5 = metaData['name']
1426 this[bool5] = userInput
1429 boolVariables=boolVariables+1
1431 settings.put(metaData['name'], metaData['name'])
1433 if (App == "App1") {
1434 extractedObjectsApp1.append("//Global variable for boolean!\n")
1435 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1437 extractedObjectsApp2.append("//Global variable for boolean!\n")
1438 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1442 def userInput = 9495379373
1444 if (phoneVariables == 0) {
1445 phone0 = metaData['name']
1446 this[phone0] = userInput
1447 } else if (phoneVariables == 1) {
1448 phone1 = metaData['name']
1449 this[phone1] = userInput
1450 } else if (phoneVariables == 2) {
1451 phone2 = metaData['name']
1452 this[phone2] = userInput
1453 } else if (phoneVariables == 3) {
1454 phone3 = metaData['name']
1455 this[phone3] = userInput
1456 } else if (phoneVariables == 4) {
1457 phone4 = metaData['name']
1458 this[phone4] = userInput
1459 } else if (phoneVariables == 5) {
1460 phone5 = metaData['name']
1461 this[phone5] = userInput
1464 phoneVariables=phoneVariables+1
1466 settings.put(metaData['name'], metaData['name'])
1468 if (App == "App1") {
1469 extractedObjectsApp1.append("//Global variable for phone!\n")
1470 extractedObjectsApp1.append("def "+metaData['name']+" = "+userInput+"\n")
1472 extractedObjectsApp2.append("//Global variable for phone!\n")
1473 extractedObjectsApp2.append("def "+metaData['name']+" = "+userInput+"\n")
1477 def userInput = "AJ"
1479 if (contactVariables == 0) {
1480 contact0 = metaData['name']
1481 this[contact0] = userInput
1482 } else if (contactVariables == 1) {
1483 contact1 = metaData['name']
1484 this[contact1] = userInput
1485 } else if (contactVariables == 2) {
1486 contact2 = metaData['name']
1487 this[contact2] = userInput
1488 } else if (contactVariables == 3) {
1489 contact3 = metaData['name']
1490 this[contact3] = userInput
1491 } else if (contactVariables == 4) {
1492 contact4 = metaData['name']
1493 this[contact4] = userInput
1494 } else if (contactVariables == 5) {
1495 contact5 = metaData['name']
1496 this[contact5] = userInput
1499 contactVariables=contactVariables+1
1501 settings.put(metaData['name'], metaData['name'])
1503 if (App == "App1") {
1504 extractedObjectsApp1.append("//Global variable for contact!\n")
1505 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1507 extractedObjectsApp2.append("//Global variable for contact!\n")
1508 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1516 def label(LinkedHashMap metaData) {
1517 if (metaData.containsKey('title')) {
1518 println metaData['title']
1520 if (metaData.containsKey('options')) {
1521 println "Options: "+metaData['options']
1524 println("//IGNORE--ForMobileUse//")
1527 def mode(LinkedHashMap metaData) {
1528 if (metaData.containsKey('title')) {
1529 println metaData['title']
1531 if (metaData.containsKey('options')) {
1532 println "Options: "+metaData['options']
1535 println("//IGNORE--ForMobileUse//")
1538 def href(LinkedHashMap metaData) {
1539 println("//IGNORE--some data//")
1542 def href(LinkedHashMap metaData, String name) {
1543 println("//IGNORE--some data//")
1545 /////Input Methods/////
1548 /////MethodsForExtraction/////
1549 def definition(LinkedHashMap metaData) {
1550 println("///Just some information///")
1553 def preferences(Closure inputData) {
1554 find(inputData) //Run the closure to extract pages/sections/inputMethods
1555 if (App == "App1") {
1556 extractedObjectsConstructorApp1.append("//Global variable for settings!\n")
1557 extractedObjectsConstructorApp1.append("settings = $settings\n")
1559 extractedObjectsConstructorApp2.append("//Global variable for settings!\n")
1560 extractedObjectsConstructorApp2.append("settings = $settings\n")
1564 def page(LinkedHashMap metaData, Closure inputData) {
1565 if (metaData.containsKey('name'))
1566 println(metaData['name'])
1567 if (metaData.containsKey('title'))
1568 println(metaData['title'])
1570 find(inputData) //Run the closure to extract sections/inputMethods
1573 def page(LinkedHashMap metaData) {
1574 def nameOfFunction = metaData['name']
1575 "$nameOfFunction"() //Call the page
1578 def dynamicPage(LinkedHashMap metaData, Closure inputData) {
1579 if (metaData.containsKey('name'))
1580 println(metaData['name'])
1581 if (metaData.containsKey('title'))
1582 println(metaData['title'])
1584 find(inputData) //Run the closure to extract sections/inputMethods
1587 def paragraph(String paragraphText) {
1588 println(paragraphText)
1591 def section(String title, Closure inputData) {
1593 find(inputData) //Run the closure to extract inputMethods
1596 def section(Closure inputData) {
1597 find(inputData) //Run the closure to extract inputMethods
1600 def section(LinkedHashMap metaData, Closure inputData) {
1601 find(inputData) //Run the closure to extract inputMethods
1604 def mappings(Closure inputData) {
1605 println("//IGNORE--some data//")
1607 /////MethodsForExtraction/////