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
85 //Global Object for class AtomicState!
86 @Field def atomicState = [history: "15:00"]
89 //Global variables for files
90 @Field File extractedObjectsApp1 = new File("Extractor/App1/extractedObjectsApp1.groovy")
91 @Field File extractedObjectsApp2 = new File("Extractor/App2/extractedObjectsApp2.groovy")
92 @Field File extractedObjectsConstructorApp1 = new File("Extractor/App1/extractedObjectsConstructorApp1.groovy")
93 @Field File extractedObjectsConstructorApp2 = new File("Extractor/App2/extractedObjectsConstructorApp2.groovy")
98 extractedObjectsApp1.write("")
99 extractedObjectsConstructorApp1.write("")
100 } else if (App == "App2") {
101 extractedObjectsApp2.write("")
102 extractedObjectsConstructorApp2.write("")
107 //Some of methods-May be needed even in install
108 /////////////////////////////////////////////////////////////////////
109 def timeToday(String time, Object timeZone) {
110 def timeOfDay = new Date()
111 def _inputTime = time.split(':')
112 def inputTime = Integer.parseInt(_inputTime[0])*3600+Integer.parseInt(_inputTime[1])*60+1564191100415
113 timeOfDay.time = inputTime
120 //Global Object for class Touch Sensor!
121 @Field touchSensorObjects = 0
122 @Field def touchSensorObject0
123 @Field def touchSensorObject1
124 @Field def touchSensorObject2
125 //Global Object for class switch!
126 @Field switchObjects = 0
127 @Field def switchObject0
128 @Field def switchObject1
129 @Field def switchObject2
130 //Global Object for class lock!
131 @Field lockObjects = 0
132 @Field def lockObject0
133 @Field def lockObject1
134 @Field def lockObject2
135 //Global Object for class door control!
136 @Field doorControlObjects = 0
137 @Field def doorControlObject0
138 @Field def doorControlObject1
139 @Field def doorControlObject2
140 //Global Object for class contact sensor!
141 @Field contactObjects = 0
142 @Field def contactObject0
143 @Field def contactObject1
144 @Field def contactObject2
145 //Global Object for class presence sensor!
146 @Field presenceSensorObjects = 0
147 @Field def presenceSensorObject0
148 @Field def presenceSensorObject1
149 @Field def presenceSensorObject2
150 //Global Object for class thermostat!
151 @Field thermostatObjects = 0
152 @Field def thermostatObject0
153 @Field def thermostatObject1
154 @Field def thermostatObject2
155 //Global Object for class music player!
156 @Field musicPlayerObjects = 0
157 @Field def musicPlayerObject0
158 @Field def musicPlayerObject1
159 @Field def musicPlayerObject2
160 //Global Object for class aeon key fob!
161 @Field aeonKeyFobObjects = 0
162 @Field def aeonKeyFobObject0
163 @Field def aeonKeyFobObject1
164 @Field def aeonKeyFobObject2
165 //Global Object for class motion sensor!
166 @Field motionSensorObjects = 0
167 @Field def motionSensorObject0
168 @Field def motionSensorObject1
169 @Field def motionSensorObject2
170 //Global Object for class image capture!
171 @Field imageCaptureObjects = 0
172 @Field def imageCaptureObject0
173 @Field def imageCaptureObject1
174 @Field def imageCaptureObject2
175 //Global Object for class smoke detector!
176 @Field smokeDetectorObjects = 0
177 @Field def smokeDetectorObject0
178 @Field def smokeDetectorObject1
179 @Field def smokeDetectorObject2
180 //Global Object for class alarm!
181 @Field alarmObjects = 0
182 @Field def alarmObject0
183 @Field def alarmObject1
184 @Field def alarmObject2
185 //Global Object for class speech synthesis!
186 @Field speechSynthesisObjects = 0
187 @Field def speechSynthesisObject0
188 @Field def speechSynthesisObject1
189 @Field def speechSynthesisObject2
190 //Global Object for class acceleration sensor!
191 @Field accelerationSensorObjects = 0
192 @Field def accelerationSensorObject0
193 @Field def accelerationSensorObject1
194 @Field def accelerationSensorObject2
195 //Global Object for class battery!
196 @Field batteryObjects = 0
197 @Field def batteryObject0
198 @Field def batteryObject1
199 @Field def batteryObject2
200 //Global Object for class beacon sensor!
201 @Field beaconSensorObjects = 0
202 @Field def beaconSensorObject0
203 @Field def beaconSensorObject1
204 @Field def beaconSensorObject2
205 //Global Object for class carbon monoxide detector!
206 @Field carbonMonoxideDetectorObjects = 0
207 @Field def carbonMonoxideDetectorObject0
208 @Field def carbonMonoxideDetectorObject1
209 @Field def carbonMonoxideDetectorObject2
210 //Global Object for class color control!
211 @Field colorControlObjects = 0
212 @Field def colorControlObject0
213 @Field def colorControlObject1
214 @Field def colorControlObject2
215 //Global Object for class energy meter!
216 @Field energyMeterObjects = 0
217 @Field def energyMeterObject0
218 @Field def energyMeterObject1
219 @Field def energyMeterObject2
220 //Global Object for class energy meter!
221 @Field illuminanceMeasurementObjects = 0
222 @Field def illuminanceMeasurementObject0
223 @Field def illuminanceMeasurementObject1
224 @Field def illuminanceMeasurementObject2
225 //Global Object for class power meter!
226 @Field powerMeterObjects = 0
227 @Field def powerMeterObject0
228 @Field def powerMeterObject1
229 @Field def powerMeterObject2
230 //Global Object for class power meter!
231 @Field humidityMeasurementObjects = 0
232 @Field def humidityMeasurementObject0
233 @Field def humidityMeasurementObject1
234 @Field def humidityMeasurementObject2
235 //Global Object for class relay switch!
236 @Field relaySwitchObjects = 0
237 @Field def relaySwitchObject0
238 @Field def relaySwitchObject1
239 @Field def relaySwitchObject2
240 //Global Object for class sleep sensor!
241 @Field sleepSensorObjects = 0
242 @Field def sleepSensorObject0
243 @Field def sleepSensorObject1
244 @Field def sleepSensorObject2
245 //Global Object for class sleep sensor!
246 @Field stepSensorObjects = 0
247 @Field def stepSensorObject0
248 @Field def stepSensorObject1
249 @Field def stepSensorObject2
250 //Global Object for class switch level!
251 @Field switchLevelObjects = 0
252 @Field def switchLevelObject0
253 @Field def switchLevelObject1
254 @Field def switchLevelObject2
255 //Global Object for class temperature measurement!
256 @Field temperatureMeasurementObjects = 0
257 @Field def temperatureMeasurementObject0
258 @Field def temperatureMeasurementObject1
259 @Field def temperatureMeasurementObject2
260 //Global Object for class temperature measurement!
261 @Field waterSensorObjects = 0
262 @Field def waterSensorObject0
263 @Field def waterSensorObject1
264 @Field def waterSensorObject2
265 //Global Object for class valve!
266 @Field valveObjects = 0
267 @Field def valveObject0
268 @Field def valveObject1
269 @Field def valveObject2
270 //Global Object for class valve!
271 @Field mobilePresenceObjects = 0
272 @Field def mobilePresenceObject0
273 @Field def mobilePresenceObject1
274 @Field def mobilePresenceObject2
280 @Field modeVariables = 0
288 @Field numberVariables = 0
296 @Field decimalVariables = 0
304 @Field timeVariables = 0
312 @Field enumVariables = 0
320 @Field phoneVariables = 0
328 @Field contactVariables = 0
336 @Field textVariables = 0
344 @Field boolVariables = 0
354 /////Input Methods/////
356 def input(String name, String type) {
357 LinkedHashMap metaData = []
358 metaData.put('name',name)
359 metaData.put('type',type)
363 //input "","",linkedHashMap
364 def input(LinkedHashMap metaData, String name, String type) {
365 metaData.put('name',name)
366 metaData.put('type',type)
370 //input "", "", linkedHashMap, Closure
371 def input(LinkedHashMap metaData, String name, String type, Closure Input) {
372 metaData.put('name',name)
373 metaData.put('type',type)
378 //input linkedHashMap
379 def input(LinkedHashMap metaData) {
380 if (metaData.containsKey('title')) {
381 println metaData['title']
383 if (metaData.containsKey('options')) {
384 println "Options: "+metaData['options']
386 switch(metaData['type']) {
387 case "capability.lock":
388 if (lockObjects == 0) {
389 lockObject0 = metaData['name']
390 this[lockObject0] = new Locks({}, 1)
391 } else if (lockObjects == 1) {
392 lockObject1 = metaData['name']
393 this[lockObject1] = new Locks({}, 1)
394 } else if (lockObjects == 2) {
395 lockObject2 = metaData['name']
396 this[lockObject2] = new Locks({}, 1)
399 lockObjects=lockObjects+1
401 settings.put(metaData['name'], new Locks({}, 1))
404 extractedObjectsApp1.append("//Object for class lock!\n")
405 extractedObjectsApp1.append("def "+metaData['name']+"\n")
406 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.lockObject\n")
408 extractedObjectsApp2.append("//Object for class lock!\n")
409 extractedObjectsApp2.append("def "+metaData['name']+"\n")
410 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.lockObject\n")
413 case "capability.alarm":
414 if (alarmObjects == 0) {
415 alarmObject0 = metaData['name']
416 this[alarmObject0] = new Alarms({}, 1)
417 } else if (alarmObjects == 1) {
418 alarmObject1 = metaData['name']
419 this[alarmObject1] = new Alarms({}, 1)
420 } else if (alarmObjects == 2) {
421 alarmObject2 = metaData['name']
422 this[alarmObject2] = new Alarms({}, 1)
425 alarmObjects=alarmObjects+1
427 settings.put(metaData['name'], new Alarms({}, 1))
430 extractedObjectsApp1.append("//Object for class alarm!\n")
431 extractedObjectsApp1.append("def "+metaData['name']+"\n")
432 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.alarmObject\n")
434 extractedObjectsApp2.append("//Object for class alarm!\n")
435 extractedObjectsApp2.append("def "+metaData['name']+"\n")
436 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.alarmObject\n")
439 case "capability.battery":
440 if (batteryObjects == 0) {
441 batteryObject0 = metaData['name']
442 this[batteryObject0] = new Batteries({}, 1)
443 } else if (batteryObjects == 1) {
444 batteryObject1 = metaData['name']
445 this[batteryObject1] = new Batteries({}, 1)
446 } else if (batteryObjects == 2) {
447 batteryObject2 = metaData['name']
448 this[batteryObject2] = new Batteries({}, 1)
451 batteryObjects=batteryObjects+1
453 settings.put(metaData['name'], new Batteries({}, 1))
456 extractedObjectsApp1.append("//Object for class Battery!\n")
457 extractedObjectsApp1.append("def "+metaData['name']+"\n")
458 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.batteryObject\n")
460 extractedObjectsApp2.append("//Object for class Battery!\n")
461 extractedObjectsApp2.append("def "+metaData['name']+"\n")
462 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.batteryObject\n")
465 case "capability.beacon":
466 if (beaconSensorObjects == 0) {
467 beaconSensorObject0 = metaData['name']
468 this[beaconSensorObject0] = new BeaconSensors({}, 1)
469 } else if (beaconSensorObjects == 1) {
470 beaconSensorObject1 = metaData['name']
471 this[beaconSensorObject1] = new BeaconSensors({}, 1)
472 } else if (beaconSensorObjects == 2) {
473 beaconSensorObject2 = metaData['name']
474 this[beaconSensorObject2] = new BeaconSensors({}, 1)
477 beaconSensorObjects=beaconSensorObjects+1
479 settings.put(metaData['name'], new BeaconSensors({}, 1))
482 extractedObjectsApp1.append("//Object for class beacon sensor!\n")
483 extractedObjectsApp1.append("def "+metaData['name']+"\n")
484 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.beaconSensorObject\n")
486 extractedObjectsApp2.append("//Object for class beacon sensor!\n")
487 extractedObjectsApp2.append("def "+metaData['name']+"\n")
488 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.beaconSensorObject\n")
491 case "capability.carbonMonoxideDetector":
492 if (carbonMonoxideDetectorObjects == 0) {
493 carbonMonoxideDetectorObject0 = metaData['name']
494 this[carbonMonoxideDetectorObject0] = new CarbonMonoxideDetectors({}, 1)
495 } else if (carbonMonoxideDetectorObjects == 1) {
496 carbonMonoxideDetectorObject1 = metaData['name']
497 this[carbonMonoxideDetectorObject1] = new CarbonMonoxideDetectors({}, 1)
498 } else if (carbonMonoxideDetectorObjects == 2) {
499 carbonMonoxideDetectorObject2 = metaData['name']
500 this[carbonMonoxideDetectorObject2] = new CarbonMonoxideDetectors({}, 1)
503 carbonMonoxideDetectorObjects=carbonMonoxideDetectorObjects+1
505 settings.put(metaData['name'], new CarbonMonoxideDetectors({}, 1))
508 extractedObjectsApp1.append("//Object for class carbon monoxide detector!\n")
509 extractedObjectsApp1.append("def "+metaData['name']+"\n")
510 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.carbonMonoxideDetectorObject\n")
512 extractedObjectsApp2.append("//Object for class carbon monoxide detector!\n")
513 extractedObjectsApp2.append("def "+metaData['name']+"\n")
514 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.carbonMonoxideDetectorObject\n")
517 case "capability.colorControl":
518 if (colorControlObjects == 0) {
519 colorControlObject0 = metaData['name']
520 this[colorControlObject0] = new ColorControls({}, 1)
521 } else if (colorControlObjects == 1) {
522 colorControlObject1 = metaData['name']
523 this[colorControlObject1] = new ColorControls({}, 1)
524 } else if (colorControlObjects == 2) {
525 colorControlObject2 = metaData['name']
526 this[colorControlObject2] = new ColorControls({}, 1)
529 colorControlObjects=colorControlObjects+1
531 settings.put(metaData['name'], new ColorControls({}, 1))
534 extractedObjectsApp1.append("//Object for class color control!\n")
535 extractedObjectsApp1.append("def "+metaData['name']+"\n")
536 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.colorControlObject\n")
538 extractedObjectsApp2.append("//Object for class color control!\n")
539 extractedObjectsApp2.append("def "+metaData['name']+"\n")
540 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.colorControlObject\n")
543 case "capability.contactSensor":
544 if (contactObjects == 0) {
545 contactObject0 = metaData['name']
546 this[contactObject0] = new ContactSensors({}, 1)
547 } else if (contactObjects == 1) {
548 contactObject1 = metaData['name']
549 this[contactObject1] = new ContactSensors({}, 1)
550 } else if (contactObjects == 2) {
551 contactObject2 = metaData['name']
552 this[contactObject2] = new ContactSensors({}, 1)
555 contactObjects=contactObjects+1
557 settings.put(metaData['name'], new ContactSensors({}, 1))
560 extractedObjectsApp1.append("//Object for class contactSensor!\n")
561 extractedObjectsApp1.append("def "+metaData['name']+"\n")
562 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.contactObject\n")
564 extractedObjectsApp2.append("//Object for class contactSensor!\n")
565 extractedObjectsApp2.append("def "+metaData['name']+"\n")
566 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.contactObject\n")
569 case "capability.doorControl":
570 if (doorControlObjects == 0) {
571 doorControlObject0 = metaData['name']
572 this[doorControlObject0] = new DoorControls({}, 1)
573 } else if (doorControlObjects == 1) {
574 doorControlObject1 = metaData['name']
575 this[doorControlObject1] = new DoorControls({}, 1)
576 } else if (doorControlObjects == 2) {
577 doorControlObject2 = metaData['name']
578 this[doorControlObject2] = new DoorControls({}, 1)
581 doorControlObjects=doorControlObjects+1
583 settings.put(metaData['name'], new DoorControls({}, 1))
586 extractedObjectsApp1.append("//Object for class door control!\n")
587 extractedObjectsApp1.append("def "+metaData['name']+"\n")
588 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.doorControlObject\n")
590 extractedObjectsApp2.append("//Object for class door control!\n")
591 extractedObjectsApp2.append("def "+metaData['name']+"\n")
592 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.doorControlObject\n")
595 case "capability.energyMeter":
596 if (energyMeterObjects == 0) {
597 energyMeterObject0 = metaData['name']
598 this[energyMeterObject0] = new EnergyMeters({}, 1)
599 } else if (energyMeterObjects == 1) {
600 energyMeterObject1 = metaData['name']
601 this[energyMeterObject1] = new EnergyMeters({}, 1)
602 } else if (energyMeterObjects == 2) {
603 energyMeterObject2 = metaData['name']
604 this[energyMeterObject2] = new EnergyMeters({}, 1)
607 energyMeterObjects=energyMeterObjects+1
609 settings.put(metaData['name'], new EnergyMeters({}, 1))
612 extractedObjectsApp1.append("//Object for class energy meter!\n")
613 extractedObjectsApp1.append("def "+metaData['name']+"\n")
614 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.energyMeterObject\n")
616 extractedObjectsApp2.append("//Object for class energy meter!\n")
617 extractedObjectsApp2.append("def "+metaData['name']+"\n")
618 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.energyMeterObject\n")
621 case "capability.illuminanceMeasurement":
622 if (illuminanceMeasurementObjects == 0) {
623 illuminanceMeasurementObject0 = metaData['name']
624 this[illuminanceMeasurementObject0] = new IlluminanceMeasurements({}, 1)
625 } else if (illuminanceMeasurementObjects == 1) {
626 illuminanceMeasurementObject1 = metaData['name']
627 this[illuminanceMeasurementObject1] = new IlluminanceMeasurements({}, 1)
628 } else if (illuminanceMeasurementObjects == 2) {
629 illuminanceMeasurementObject2 = metaData['name']
630 this[illuminanceMeasurementObject2] = new IlluminanceMeasurements({}, 1)
633 illuminanceMeasurementObjects=illuminanceMeasurementObjects+1
635 settings.put(metaData['name'], new IlluminanceMeasurements({}, 1))
638 extractedObjectsApp1.append("//Object for class illuminance measurement!\n")
639 extractedObjectsApp1.append("def "+metaData['name']+"\n")
640 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.illuminanceMeasurementObject\n")
642 extractedObjectsApp2.append("//Object for class illuminance measurement!\n")
643 extractedObjectsApp2.append("def "+metaData['name']+"\n")
644 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.illuminanceMeasurementObject\n")
647 case "capability.accelerationSensor":
648 if (accelerationSensorObjects == 0) {
649 accelerationSensorObject0 = metaData['name']
650 this[accelerationSensorObject0] = new AccelerationSensors({}, 1)
651 } else if (accelerationSensorObjects == 1) {
652 accelerationSensorObject1 = metaData['name']
653 this[accelerationSensorObject1] = new AccelerationSensors({}, 1)
654 } else if (accelerationSensorObjects == 2) {
655 accelerationSensorObject2 = metaData['name']
656 this[accelerationSensorObject2] = new AccelerationSensors({}, 1)
659 accelerationSensorObjects=accelerationSensorObjects+1
661 settings.put(metaData['name'], new AccelerationSensors({}, 1))
664 extractedObjectsApp1.append("//Object for class Acceleration Sensor!\n")
665 extractedObjectsApp1.append("def "+metaData['name']+"\n")
666 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.accelerationSensorObject\n")
668 extractedObjectsApp2.append("//Object for class Acceleration Sensor!\n")
669 extractedObjectsApp2.append("def "+metaData['name']+"\n")
670 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.accelerationSensorObject\n")
673 case "capability.motionSensor":
674 if (motionSensorObjects == 0) {
675 motionSensorObject0 = metaData['name']
676 this[motionSensorObject0] = new MotionSensors({}, 1)
677 } else if (motionSensorObjects == 1) {
678 motionSensorObject1 = metaData['name']
679 this[motionSensorObject1] = new MotionSensors({}, 1)
680 } else if (motionSensorObjects == 2) {
681 motionSensorObject2 = metaData['name']
682 this[motionSensorObject2] = new MotionSensors({}, 1)
685 motionSensorObjects=motionSensorObjects+1
687 settings.put(metaData['name'], new MotionSensors({}, 1))
690 extractedObjectsApp1.append("//Object for class Motion Sensor!\n")
691 extractedObjectsApp1.append("def "+metaData['name']+"\n")
692 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.motionSensorObject\n")
694 extractedObjectsApp2.append("//Object for class Motion Sensor!\n")
695 extractedObjectsApp2.append("def "+metaData['name']+"\n")
696 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.motionSensorObject\n")
699 case "capability.musicPlayer":
700 if (musicPlayerObjects == 0) {
701 musicPlayerObject0 = metaData['name']
702 this[musicPlayerObject0] = new MusicPlayers({}, 1)
703 } else if (musicPlayerObjects == 1) {
704 musicPlayerObject1 = metaData['name']
705 this[musicPlayerObject1] = new MusicPlayers({}, 1)
706 } else if (musicPlayerObjects == 2) {
707 musicPlayerObject2 = metaData['name']
708 this[musicPlayerObject2] = new MusicPlayers({}, 1)
711 musicPlayerObjects=musicPlayerObjects+1
713 settings.put(metaData['name'], new MusicPlayers({}, 1))
716 extractedObjectsApp1.append("//Object for class music player!\n")
717 extractedObjectsApp1.append("def "+metaData['name']+"\n")
718 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.musicPlayerObject\n")
720 extractedObjectsApp2.append("//Object for class music player!\n")
721 extractedObjectsApp2.append("def "+metaData['name']+"\n")
722 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.musicPlayerObject\n")
725 case "capability.powerMeter":
726 if (powerMeterObjects == 0) {
727 powerMeterObject0 = metaData['name']
728 this[powerMeterObject0] = new PowerMeters({}, 1)
729 } else if (powerMeterObjects == 1) {
730 powerMeterObject1 = metaData['name']
731 this[powerMeterObject1] = new PowerMeters({}, 1)
732 } else if (powerMeterObjects == 2) {
733 powerMeterObject2 = metaData['name']
734 this[powerMeterObject2] = new PowerMeters({}, 1)
737 powerMeterObjects=powerMeterObjects+1
739 settings.put(metaData['name'], new PowerMeters({}, 1))
742 extractedObjectsApp1.append("//Object for class power meter!\n")
743 extractedObjectsApp1.append("def "+metaData['name']+"\n")
744 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.powerMeterObject\n")
746 extractedObjectsApp2.append("//Object for class power meter!\n")
747 extractedObjectsApp2.append("def "+metaData['name']+"\n")
748 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.powerMeterObject\n")
751 case "capability.presenceSensor":
752 if (presenceSensorObjects == 0) {
753 presenceSensorObject0 = metaData['name']
754 this[presenceSensorObject0] = new PresenceSensors({}, 1)
755 } else if (presenceSensorObjects == 1) {
756 presenceSensorObject1 = metaData['name']
757 this[presenceSensorObject1] = new PresenceSensors({}, 1)
758 } else if (presenceSensorObjects == 2) {
759 presenceSensorObject2 = metaData['name']
760 this[presenceSensorObject2] = new PresenceSensors({}, 1)
763 presenceSensorObjects=presenceSensorObjects+1
765 settings.put(metaData['name'], new PresenceSensors({}, 1))
768 extractedObjectsApp1.append("//Object for class presence sensor!\n")
769 extractedObjectsApp1.append("def "+metaData['name']+"\n")
770 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.presenceSensorObject\n")
772 extractedObjectsApp2.append("//Object for class presence sensor!\n")
773 extractedObjectsApp2.append("def "+metaData['name']+"\n")
774 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.presenceSensorObject\n")
777 case "capability.relativeHumidityMeasurement":
778 if (humidityMeasurementObjects == 0) {
779 humidityMeasurementObject0 = metaData['name']
780 this[humidityMeasurementObject0] = new RelativeHumidityMeasurements({}, 1)
781 } else if (humidityMeasurementObjects == 1) {
782 humidityMeasurementObject1 = metaData['name']
783 this[humidityMeasurementObject1] = new RelativeHumidityMeasurements({}, 1)
784 } else if (humidityMeasurementObjects == 2) {
785 humidityMeasurementObject2 = metaData['name']
786 this[humidityMeasurementObject2] = new RelativeHumidityMeasurements({}, 1)
789 humidityMeasurementObjects=humidityMeasurementObjects+1
791 settings.put(metaData['name'], new RelativeHumidityMeasurements({}, 1))
794 extractedObjectsApp1.append("//Object for class humidity measurement!\n")
795 extractedObjectsApp1.append("def "+metaData['name']+"\n")
796 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.humidityMeasurementObject\n")
798 extractedObjectsApp2.append("//Object for class humidity measurement!\n")
799 extractedObjectsApp2.append("def "+metaData['name']+"\n")
800 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.humidityMeasurementObject\n")
803 case "capability.relaySwitch":
804 if (relaySwitchObjects == 0) {
805 relaySwitchObject0 = metaData['name']
806 this[relaySwitchObject0] = new RelaySwitches({}, 1)
807 } else if (relaySwitchObjects == 1) {
808 relaySwitchObject1 = metaData['name']
809 this[relaySwitchObject1] = new RelaySwitches({}, 1)
810 } else if (relaySwitchObjects == 2) {
811 relaySwitchObject2 = metaData['name']
812 this[relaySwitchObject2] = new RelaySwitches({}, 1)
815 relaySwitchObjects=relaySwitchObjects+1
817 settings.put(metaData['name'], new RelaySwitches({}, 1))
820 extractedObjectsApp1.append("//Object for class relay switch!\n")
821 extractedObjectsApp1.append("def "+metaData['name']+"\n")
822 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.relaySwitchObject\n")
824 extractedObjectsApp2.append("//Object for class relay switch!\n")
825 extractedObjectsApp2.append("def "+metaData['name']+"\n")
826 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.relaySwitchObject\n")
829 case "capability.sleepSensor":
830 if (sleepSensorObjects == 0) {
831 sleepSensorObject0 = metaData['name']
832 this[sleepSensorObject0] = new SleepSensors({}, 1)
833 } else if (sleepSensorObjects == 1) {
834 sleepSensorObject1 = metaData['name']
835 this[sleepSensorObject1] = new SleepSensors({}, 1)
836 } else if (sleepSensorObjects == 2) {
837 sleepSensorObject2 = metaData['name']
838 this[sleepSensorObject2] = new SleepSensors({}, 1)
841 sleepSensorObjects=sleepSensorObjects+1
843 settings.put(metaData['name'], new SleepSensors({}, 1))
846 extractedObjectsApp1.append("//Object for class sleep sensor!\n")
847 extractedObjectsApp1.append("def "+metaData['name']+"\n")
848 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.sleepSensorObject\n")
850 extractedObjectsApp2.append("//Object for class sleep sensor!\n")
851 extractedObjectsApp2.append("def "+metaData['name']+"\n")
852 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.sleepSensorObject\n")
855 case "capability.smokeDetector":
856 if (smokeDetectorObjects == 0) {
857 smokeDetectorObject0 = metaData['name']
858 this[smokeDetectorObject0] = new SmokeDetectors({}, 1)
859 } else if (smokeDetectorObjects == 1) {
860 smokeDetectorObject1 = metaData['name']
861 this[smokeDetectorObject1] = new SmokeDetectors({}, 1)
862 } else if (smokeDetectorObjects == 2) {
863 smokeDetectorObject2 = metaData['name']
864 this[smokeDetectorObject2] = new SmokeDetectors({}, 1)
867 smokeDetectorObjects=smokeDetectorObjects+1
869 settings.put(metaData['name'], new SmokeDetectors({}, 1))
872 extractedObjectsApp1.append("//Object for class smoke detector!\n")
873 extractedObjectsApp1.append("def "+metaData['name']+"\n")
874 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.smokeDetectorObject\n")
876 extractedObjectsApp2.append("//Object for class smoke detector!\n")
877 extractedObjectsApp2.append("def "+metaData['name']+"\n")
878 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.smokeDetectorObject\n")
881 case "capability.stepSensor":
882 if (stepSensorObjects == 0) {
883 stepSensorObject0 = metaData['name']
884 this[stepSensorObject0] = new StepSensors({}, 1)
885 } else if (stepSensorObjects == 1) {
886 stepSensorObject1 = metaData['name']
887 this[stepSensorObject1] = new StepSensors({}, 1)
888 } else if (stepSensorObjects == 2) {
889 stepSensorObject2 = metaData['name']
890 this[stepSensorObject2] = new StepSensors({}, 1)
893 stepSensorObjects=stepSensorObjects+1
895 settings.put(metaData['name'], new StepSensors({}, 1))
898 extractedObjectsApp1.append("//Object for class step sensor!\n")
899 extractedObjectsApp1.append("def "+metaData['name']+"\n")
900 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.stepSensorObject\n")
902 extractedObjectsApp2.append("//Object for class step sensor!\n")
903 extractedObjectsApp2.append("def "+metaData['name']+"\n")
904 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.stepSensorObject\n")
907 case "capability.switch":
908 if (switchObjects == 0) {
909 switchObject0 = metaData['name']
910 this[switchObject0] = new Switches({}, 1)
911 } else if (switchObjects == 1) {
912 switchObject1 = metaData['name']
913 this[switchObject1] = new Switches({}, 1)
914 } else if (switchObjects == 2) {
915 switchObject2 = metaData['name']
916 this[switchObject2] = new Switches({}, 1)
919 switchObjects=switchObjects+1
921 settings.put(metaData['name'], new Switches({}, 1))
924 extractedObjectsApp1.append("//Object for class switch!\n")
925 extractedObjectsApp1.append("def "+metaData['name']+"\n")
926 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.switchObject\n")
928 extractedObjectsApp2.append("//Object for class switch!\n")
929 extractedObjectsApp2.append("def "+metaData['name']+"\n")
930 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.switchObject\n")
933 case "capability.switchLevel":
934 if (switchLevelObjects == 0) {
935 switchLevelObject0 = metaData['name']
936 this[switchLevelObject0] = new SwitchLevels({}, 1)
937 } else if (switchLevelObjects == 1) {
938 switchLevelObject1 = metaData['name']
939 this[switchLevelObject1] = new SwitchLevels({}, 1)
940 } else if (switchLevelObjects == 2) {
941 switchLevelObject2 = metaData['name']
942 this[switchLevelObject2] = new SwitchLevels({}, 1)
945 switchLevelObjects=switchLevelObjects+1
947 settings.put(metaData['name'], new SwitchLevels({}, 1))
950 extractedObjectsApp1.append("//Object for class switch level!\n")
951 extractedObjectsApp1.append("def "+metaData['name']+"\n")
952 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.switchLevelObject\n")
954 extractedObjectsApp2.append("//Object for class switch level!\n")
955 extractedObjectsApp2.append("def "+metaData['name']+"\n")
956 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.switchLevelObject\n")
959 case "capability.temperatureMeasurement":
960 if (temperatureMeasurementObjects == 0) {
961 temperatureMeasurementObject0 = metaData['name']
962 this[temperatureMeasurementObject0] = new TemperatureMeasurements({}, 1)
963 } else if (temperatureMeasurementObjects == 1) {
964 temperatureMeasurementObject1 = metaData['name']
965 this[temperatureMeasurementObject1] = new TemperatureMeasurements({}, 1)
966 } else if (temperatureMeasurementObjects == 2) {
967 temperatureMeasurementObject2 = metaData['name']
968 this[temperatureMeasurementObject2] = new TemperatureMeasurements({}, 1)
971 temperatureMeasurementObjects=temperatureMeasurementObjects+1
973 settings.put(metaData['name'], new TemperatureMeasurements({}, 1))
976 extractedObjectsApp1.append("//Object for class temperature measurement!\n")
977 extractedObjectsApp1.append("def "+metaData['name']+"\n")
978 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.temperatureMeasurementObject\n")
980 extractedObjectsApp2.append("//Object for class temperature measurement!\n")
981 extractedObjectsApp2.append("def "+metaData['name']+"\n")
982 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.temperatureMeasurementObject\n")
985 case "capability.thermostat":
986 if (thermostatObjects == 0) {
987 thermostatObject0 = metaData['name']
988 this[thermostatObject0] = new Thermostats({}, 1)
989 } else if (thermostatObjects == 1) {
990 thermostatObject1 = metaData['name']
991 this[thermostatObject1] = new Thermostats({}, 1)
992 } else if (thermostatObjects == 2) {
993 thermostatObject2 = metaData['name']
994 this[thermostatObject2] = new Thermostats({}, 1)
997 thermostatObjects=thermostatObjects+1
999 settings.put(metaData['name'], new Thermostats({}, 1))
1001 if (App == "App1") {
1002 extractedObjectsApp1.append("//Object for class thermostat!\n")
1003 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1004 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.thermostatObject\n")
1006 extractedObjectsApp2.append("//Object for class thermostat!\n")
1007 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1008 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.thermostatObject\n")
1011 case "capability.valve":
1012 if (valveObjects == 0) {
1013 valveObject0 = metaData['name']
1014 this[valveObject0] = new Valves({}, 1)
1015 } else if (valveObjects == 1) {
1016 valveObject1 = metaData['name']
1017 this[valveObject1] = new Valves({}, 1)
1018 } else if (valveObjects == 2) {
1019 valveObject2 = metaData['name']
1020 this[valveObject2] = new Valves({}, 1)
1023 valveObjects=valveObjects+1
1025 settings.put(metaData['name'], new Valves({}, 1))
1027 if (App == "App1") {
1028 extractedObjectsApp1.append("//Object for class valve!\n")
1029 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1030 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.valveObject\n")
1032 extractedObjectsApp2.append("//Object for class valve!\n")
1033 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1034 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.valveObject\n")
1037 case "capability.speechSynthesis":
1038 if (speechSynthesisObjects == 0) {
1039 speechSynthesisObject0 = metaData['name']
1040 this[speechSynthesisObject0] = new SpeechSynthesises({}, 1)
1041 } else if (speechSynthesisObjects == 1) {
1042 speechSynthesisObject1 = metaData['name']
1043 this[speechSynthesisObject1] = new SpeechSynthesises({}, 1)
1044 } else if (speechSynthesisObjects == 2) {
1045 speechSynthesisObject2 = metaData['name']
1046 this[speechSynthesisObject2] = new SpeechSynthesises({}, 1)
1049 speechSynthesisObjects=speechSynthesisObjects+1
1051 settings.put(metaData['name'], new SpeechSynthesises({}, 1))
1053 if (App == "App1") {
1054 extractedObjectsApp1.append("//Object for class speech synthesis!\n")
1055 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1056 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.speechSynthesisObject\n")
1058 extractedObjectsApp2.append("//Object for class speech synthesis!\n")
1059 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1060 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.speechSynthesisObject\n")
1063 case "capability.waterSensor":
1064 if (waterSensorObjects == 0) {
1065 waterSensorObject0 = metaData['name']
1066 this[waterSensorObject0] = new WaterSensors({}, 1)
1067 } else if (waterSensorObjects == 1) {
1068 waterSensorObject1 = metaData['name']
1069 this[waterSensorObject1] = new WaterSensors({}, 1)
1070 } else if (waterSensorObjects == 2) {
1071 waterSensorObject2 = metaData['name']
1072 this[waterSensorObject2] = new WaterSensors({}, 1)
1075 waterSensorObjects=waterSensorObjects+1
1077 settings.put(metaData['name'], new WaterSensors({}, 1))
1079 if (App == "App1") {
1080 extractedObjectsApp1.append("//Object for class water sensor!\n")
1081 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1082 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.waterSensorObject\n")
1084 extractedObjectsApp2.append("//Object for class water sensor!\n")
1085 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1086 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.waterSensorObject\n")
1089 case "capability.touchSensor":
1090 if (touchSensorObjects == 0) {
1091 touchSensorObject0 = metaData['name']
1092 this[touchSensorObject0] = new NfcTouch({}, 1)
1093 } else if (touchSensorObjects == 1) {
1094 touchSensorObject1 = metaData['name']
1095 this[touchSensorObject1] = new NfcTouch({}, 1)
1096 } else if (touchSensorObjects == 2) {
1097 touchSensorObject2 = metaData['name']
1098 this[touchSensorObject2] = new NfcTouch({}, 1)
1101 touchSensorObjects=touchSensorObjects+1
1103 settings.put(metaData['name'], new NfcTouch({}, 1))
1105 if (App == "App1") {
1106 extractedObjectsApp1.append("//Object for class Touch Sensor!\n")
1107 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1108 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.touchSensorObject\n")
1110 extractedObjectsApp2.append("//Object for class Touch Sensor!\n")
1111 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1112 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.touchSensorObject\n")
1115 case "capability.imageCapture":
1116 if (imageCaptureObjects == 0) {
1117 imageCaptureObject0 = metaData['name']
1118 this[imageCaptureObject0] = new ImageCaptures({}, 1)
1119 } else if (imageCaptureObjects == 1) {
1120 imageCaptureObject1 = metaData['name']
1121 this[imageCaptureObject1] = new ImageCaptures({}, 1)
1122 } else if (imageCaptureObjects == 2) {
1123 imageCaptureObject2 = metaData['name']
1124 this[imageCaptureObject2] = new ImageCaptures({}, 1)
1127 imageCaptureObjects=imageCaptureObjects+1
1129 settings.put(metaData['name'], new ImageCaptures({}, 1))
1131 if (App == "App1") {
1132 extractedObjectsApp1.append("//Object for class Image Capture!\n")
1133 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1134 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.imageCaptureObject\n")
1136 extractedObjectsApp2.append("//Object for class Image Capture!\n")
1137 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1138 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.imageCaptureObject\n")
1141 case "device.mobilePresence":
1142 if (mobilePresenceObjects == 0) {
1143 mobilePresenceObject0 = metaData['name']
1144 this[mobilePresenceObject0] = new MobilePresences({}, 1)
1145 } else if (mobilePresenceObjects == 1) {
1146 mobilePresenceObject1 = metaData['name']
1147 this[mobilePresenceObject1] = new MobilePresences({}, 1)
1148 } else if (mobilePresenceObjects == 2) {
1149 mobilePresenceObject2 = metaData['name']
1150 this[mobilePresenceObject2] = new MobilePresences({}, 1)
1153 mobilePresenceObjects=mobilePresenceObjects+1
1155 settings.put(metaData['name'], new MobilePresences({}, 1))
1157 if (App == "App1") {
1158 extractedObjectsApp1.append("//Object for class mobile presence!\n")
1159 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1160 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.mobilePresenceObject\n")
1162 extractedObjectsApp2.append("//Object for class mobile presence!\n")
1163 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1164 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.mobilePresenceObject\n")
1167 case "device.aeonKeyFob":
1168 if (aeonKeyFobObjects == 0) {
1169 aeonKeyFobObject0 = metaData['name']
1170 this[aeonKeyFobObject0] = new AeonKeyFobs({}, 1)
1171 } else if (aeonKeyFobObjects == 1) {
1172 aeonKeyFobObject1 = metaData['name']
1173 this[aeonKeyFobObject1] = new AeonKeyFobs({}, 1)
1174 } else if (aeonKeyFobObjects == 2) {
1175 aeonKeyFobObject2 = metaData['name']
1176 this[aeonKeyFobObject2] = new AeonKeyFobs({}, 1)
1179 aeonKeyFobObjects=aeonKeyFobObjects+1
1181 settings.put(metaData['name'], new AeonKeyFobs({}, 1))
1183 if (App == "App1") {
1184 extractedObjectsApp1.append("//Object for class aeon key fob!\n")
1185 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1186 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.aeonKeyFobObject\n")
1188 extractedObjectsApp2.append("//Object for class aeon key fob!\n")
1189 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1190 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.aeonKeyFobObject\n")
1194 def randomVariable = Math.abs(new Random().nextInt() % 3)
1195 def modes = ["away", "home", "night"]
1196 def userInput = modes[randomVariable]
1198 if (modeVariables == 0) {
1199 mode0 = metaData['name']
1200 this[mode0] = userInput
1201 } else if (modeVariables == 1) {
1202 mode1 = metaData['name']
1203 this[mode1] = userInput
1204 } else if (modeVariables == 2) {
1205 mode2 = metaData['name']
1206 this[mode2] = userInput
1207 } else if (modeVariables == 3) {
1208 mode3 = metaData['name']
1209 this[mode3] = userInput
1210 } else if (modeVariables == 4) {
1211 mode4 = metaData['name']
1212 this[mode4] = userInput
1213 } else if (modeVariables == 5) {
1214 mode5 = metaData['name']
1215 this[mode5] = userInput
1218 if (modeVariables != 5)
1219 modeVariables=modeVariables+1
1224 settings.put(metaData['name'], metaData['name'])
1226 if (App == "App1") {
1227 extractedObjectsApp1.append("//Global variable for mode!\n")
1228 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1230 extractedObjectsApp2.append("//Global variable for mode!\n")
1231 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1235 def userInput = Math.abs(new Random().nextInt() % 60) + 40
1237 if (decimalVariables == 0) {
1238 decimal0 = metaData['name']
1239 this[decimal0] = userInput
1240 } else if (decimalVariables == 1) {
1241 decimal1 = metaData['name']
1242 this[decimal1] = userInput
1243 } else if (decimalVariables == 2) {
1244 decimal2 = metaData['name']
1245 this[decimal2] = userInput
1246 } else if (decimalVariables == 3) {
1247 decimal3 = metaData['name']
1248 this[decimal3] = userInput
1249 } else if (decimalVariables == 4) {
1250 decimal4 = metaData['name']
1251 this[decimal4] = userInput
1252 } else if (decimalVariables == 5) {
1253 decimal5 = metaData['name']
1254 this[decimal5] = userInput
1257 if (decimalVariables != 5)
1258 decimalVariables=decimalVariables+1
1262 settings.put(metaData['name'], metaData['name'])
1264 if (App == "App1") {
1265 extractedObjectsApp1.append("//Global variable for decimal number!\n")
1266 extractedObjectsApp1.append("def "+metaData['name']+" = "+userInput+"\n")
1268 extractedObjectsApp2.append("//Global variable for decimal number!\n")
1269 extractedObjectsApp2.append("def "+metaData['name']+" = "+userInput+"\n")
1273 def userInput = "This is just a text!"
1275 if (textVariables == 0) {
1276 text0 = metaData['name']
1277 this[text0] = userInput
1278 } else if (textVariables == 1) {
1279 text1 = metaData['name']
1280 this[text1] = userInput
1281 } else if (textVariables == 2) {
1282 text2 = metaData['name']
1283 this[text2] = userInput
1284 } else if (textVariables == 3) {
1285 text3 = metaData['name']
1286 this[text3] = userInput
1287 } else if (textVariables == 4) {
1288 text4 = metaData['name']
1289 this[text4] = userInput
1290 } else if (textVariables == 5) {
1291 text5 = metaData['name']
1292 this[text5] = userInput
1295 if (textVariables != 5)
1296 textVariables=textVariables+1
1301 settings.put(metaData['name'], metaData['name'])
1303 if (App == "App1") {
1304 extractedObjectsApp1.append("//Global variable for text!\n")
1305 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1307 extractedObjectsApp2.append("//Global variable for text!\n")
1308 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1312 def userInput = Math.abs(new Random().nextInt() % 60) + 40
1314 if (numberVariables == 0) {
1315 number0 = metaData['name']
1316 this[number0] = userInput
1317 } else if (numberVariables == 1) {
1318 number1 = metaData['name']
1319 this[number1] = userInput
1320 } else if (numberVariables == 2) {
1321 number2 = metaData['name']
1322 this[number2] = userInput
1323 } else if (numberVariables == 3) {
1324 number3 = metaData['name']
1325 this[number3] = userInput
1326 } else if (numberVariables == 4) {
1327 number4 = metaData['name']
1328 this[number4] = userInput
1329 } else if (numberVariables == 5) {
1330 number5 = metaData['name']
1331 this[number5] = userInput
1335 if (numberVariables != 5)
1336 numberVariables=numberVariables+1
1341 settings.put(metaData['name'], metaData['name'])
1343 if (App == "App1") {
1344 extractedObjectsApp1.append("//Global variable for number!\n")
1345 extractedObjectsApp1.append("def "+metaData['name']+" = "+userInput+"\n")
1347 extractedObjectsApp2.append("//Global variable for number!\n")
1348 extractedObjectsApp2.append("def "+metaData['name']+" = "+userInput+"\n")
1352 def userInput = "15:00"
1354 if (timeVariables == 0) {
1355 time0 = metaData['name']
1356 this[time0] = userInput
1357 } else if (timeVariables == 1) {
1358 time1 = metaData['name']
1359 this[time1] = userInput
1360 } else if (timeVariables == 2) {
1361 time2 = metaData['name']
1362 this[time2] = userInput
1363 } else if (timeVariables == 3) {
1364 time3 = metaData['name']
1365 this[time3] = userInput
1366 } else if (timeVariables == 4) {
1367 time4 = metaData['name']
1368 this[time4] = userInput
1369 } else if (timeVariables == 5) {
1370 time5 = metaData['name']
1371 this[time5] = userInput
1374 if (timeVariables != 5)
1375 timeVariables=timeVariables+1
1379 settings.put(metaData['name'], metaData['name'])
1381 if (App == "App1") {
1382 extractedObjectsApp1.append("//Global variable for time!\n")
1383 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1385 extractedObjectsApp2.append("//Global variable for time!\n")
1386 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1390 if (metaData['options'] != null)
1391 modes = metaData['options']
1392 else if (metaData['metadata'] != null) { // If it is not named 'options' then it is captured as 'metadata'
1393 modes = metaData['metadata']
1394 modes = modes['values']
1396 def userInput = modes[0]
1398 if (enumVariables == 0) {
1399 enum0 = metaData['name']
1400 this[enum0] = userInput
1401 } else if (enumVariables == 1) {
1402 enum1 = metaData['name']
1403 this[enum1] = userInput
1404 } else if (enumVariables == 2) {
1405 enum2 = metaData['name']
1406 this[enum2] = userInput
1407 } else if (enumVariables == 3) {
1408 enum3 = metaData['name']
1409 this[enum3] = userInput
1410 } else if (enumVariables == 4) {
1411 enum4 = metaData['name']
1412 this[enum4] = userInput
1413 } else if (enumVariables == 5) {
1414 enum5 = metaData['name']
1415 this[enum5] = userInput
1418 if (enumVariables != 5)
1419 enumVariables=enumVariables+1
1424 settings.put(metaData['name'], metaData['name'])
1426 if (App == "App1") {
1427 extractedObjectsApp1.append("//Global variable for enum!\n")
1428 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1430 extractedObjectsApp2.append("//Global variable for enum!\n")
1431 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1435 def userInput = Math.abs(new Random().nextInt() % 2)
1437 if (boolVariables == 0) {
1438 bool0 = metaData['name']
1439 this[bool0] = userInput
1440 } else if (boolVariables == 1) {
1441 bool1 = metaData['name']
1442 this[bool1] = userInput
1443 } else if (boolVariables == 2) {
1444 bool2 = metaData['name']
1445 this[bool2] = userInput
1446 } else if (boolVariables == 3) {
1447 bool3 = metaData['name']
1448 this[bool3] = userInput
1449 } else if (boolVariables == 4) {
1450 bool4 = metaData['name']
1451 this[bool4] = userInput
1452 } else if (boolVariables == 5) {
1453 bool5 = metaData['name']
1454 this[bool5] = userInput
1457 if (boolVariables != 5)
1458 boolVariables=boolVariables+1
1463 settings.put(metaData['name'], metaData['name'])
1465 if (App == "App1") {
1466 extractedObjectsApp1.append("//Global variable for boolean!\n")
1467 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1469 extractedObjectsApp2.append("//Global variable for boolean!\n")
1470 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1474 def userInput = 9495379373
1476 if (phoneVariables == 0) {
1477 phone0 = metaData['name']
1478 this[phone0] = userInput
1479 } else if (phoneVariables == 1) {
1480 phone1 = metaData['name']
1481 this[phone1] = userInput
1482 } else if (phoneVariables == 2) {
1483 phone2 = metaData['name']
1484 this[phone2] = userInput
1485 } else if (phoneVariables == 3) {
1486 phone3 = metaData['name']
1487 this[phone3] = userInput
1488 } else if (phoneVariables == 4) {
1489 phone4 = metaData['name']
1490 this[phone4] = userInput
1491 } else if (phoneVariables == 5) {
1492 phone5 = metaData['name']
1493 this[phone5] = userInput
1496 if (phoneVariables != 5)
1497 phoneVariables=phoneVariables+1
1501 settings.put(metaData['name'], metaData['name'])
1503 if (App == "App1") {
1504 extractedObjectsApp1.append("//Global variable for phone!\n")
1505 extractedObjectsApp1.append("def "+metaData['name']+" = "+userInput+"\n")
1507 extractedObjectsApp2.append("//Global variable for phone!\n")
1508 extractedObjectsApp2.append("def "+metaData['name']+" = "+userInput+"\n")
1512 def userInput = "AJ"
1514 if (contactVariables == 0) {
1515 contact0 = metaData['name']
1516 this[contact0] = userInput
1517 } else if (contactVariables == 1) {
1518 contact1 = metaData['name']
1519 this[contact1] = userInput
1520 } else if (contactVariables == 2) {
1521 contact2 = metaData['name']
1522 this[contact2] = userInput
1523 } else if (contactVariables == 3) {
1524 contact3 = metaData['name']
1525 this[contact3] = userInput
1526 } else if (contactVariables == 4) {
1527 contact4 = metaData['name']
1528 this[contact4] = userInput
1529 } else if (contactVariables == 5) {
1530 contact5 = metaData['name']
1531 this[contact5] = userInput
1534 if (contactVariables != 5)
1535 contactVariables=contactVariables+1
1539 settings.put(metaData['name'], metaData['name'])
1541 if (App == "App1") {
1542 extractedObjectsApp1.append("//Global variable for contact!\n")
1543 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1545 extractedObjectsApp2.append("//Global variable for contact!\n")
1546 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1554 def label(LinkedHashMap metaData) {
1555 if (metaData.containsKey('title')) {
1556 println metaData['title']
1558 if (metaData.containsKey('options')) {
1559 println "Options: "+metaData['options']
1562 println("//IGNORE--ForMobileUse//")
1565 def mode(LinkedHashMap metaData) {
1566 if (metaData.containsKey('title')) {
1567 println metaData['title']
1569 if (metaData.containsKey('options')) {
1570 println "Options: "+metaData['options']
1573 println("//IGNORE--ForMobileUse//")
1576 def href(LinkedHashMap metaData) {
1577 println("//IGNORE--some data//")
1580 def href(LinkedHashMap metaData, String name) {
1581 println("//IGNORE--some data//")
1583 /////Input Methods/////
1586 /////MethodsForExtraction/////
1587 def definition(LinkedHashMap metaData) {
1588 println("///Just some information///")
1591 def preferences(Closure inputData) {
1592 find(inputData) //Run the closure to extract pages/sections/inputMethods
1593 settings.put("END", "END")
1594 if (App == "App1") {
1595 extractedObjectsConstructorApp1.append("//Global variable for settings!\n")
1596 extractedObjectsConstructorApp1.append("settings = [")
1600 extractedObjectsConstructorApp1.append("$key: $key, ")
1602 extractedObjectsConstructorApp1.append("END: \"END\"]\n")
1605 extractedObjectsConstructorApp2.append("//Global variable for settings!\n")
1606 extractedObjectsConstructorApp2.append("settings = [")
1610 extractedObjectsConstructorApp2.append("$key: $key, ")
1612 extractedObjectsConstructorApp2.append("END: \"END\"]\n")
1617 def page(LinkedHashMap metaData, Closure inputData) {
1618 if (metaData.containsKey('name'))
1619 println(metaData['name'])
1620 if (metaData.containsKey('title'))
1621 println(metaData['title'])
1623 find(inputData) //Run the closure to extract sections/inputMethods
1626 def page(LinkedHashMap metaData) {
1627 def nameOfFunction = metaData['name']
1628 "$nameOfFunction"() //Call the page
1631 def dynamicPage(LinkedHashMap metaData, Closure inputData) {
1632 if (metaData.containsKey('name'))
1633 println(metaData['name'])
1634 if (metaData.containsKey('title'))
1635 println(metaData['title'])
1637 find(inputData) //Run the closure to extract sections/inputMethods
1640 def paragraph(String paragraphText) {
1641 println(paragraphText)
1644 def section(String title, Closure inputData) {
1646 find(inputData) //Run the closure to extract inputMethods
1649 def section(Closure inputData) {
1650 find(inputData) //Run the closure to extract inputMethods
1653 def section(LinkedHashMap metaData, Closure inputData) {
1654 find(inputData) //Run the closure to extract inputMethods
1657 def section(LinkedHashMap metaData, String data, Closure inputData) {
1661 def mappings(Closure inputData) {
1662 println("//IGNORE--some data//")
1664 /////MethodsForExtraction/////