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 Timer.SimulatedTimer
42 @Field def location = new LocationVar()
43 //Settings variable defined to settings on purpose
44 @Field def settings = [app: "app"]
45 //Global variable for state[mode]
46 @Field def state = [home:[],away:[],night:[]]
47 //Create a global logger object for methods
48 @Field def log = new Logger()
49 //Create a global variable for optional property
50 @Field def optional = false //by default for now
53 //Global variables for files
54 @Field File extractedObjectsApp1 = new File("Extractor/App1/extractedObjectsApp1.groovy")
55 @Field File extractedObjectsApp2 = new File("Extractor/App2/extractedObjectsApp2.groovy")
56 @Field File extractedObjectsConstructorApp1 = new File("Extractor/App1/extractedObjectsConstructorApp1.groovy")
57 @Field File extractedObjectsConstructorApp2 = new File("Extractor/App2/extractedObjectsConstructorApp2.groovy")
62 extractedObjectsApp1.write("")
63 extractedObjectsConstructorApp1.write("")
64 } else if (App == "App2") {
65 extractedObjectsApp2.write("")
66 extractedObjectsConstructorApp2.write("")
74 //Global Object for class Touch Sensor!
75 @Field touchSensorObjects = 0
76 @Field def touchSensorObject0
77 @Field def touchSensorObject1
78 @Field def touchSensorObject2
79 //Global Object for class switch!
80 @Field switchObjects = 0
81 @Field def switchObject0
82 @Field def switchObject1
83 @Field def switchObject2
84 //Global Object for class lock!
85 @Field lockObjects = 0
86 @Field def lockObject0
87 @Field def lockObject1
88 @Field def lockObject2
89 //Global Object for class door control!
90 @Field doorControlObjects = 0
91 @Field def doorControlObject0
92 @Field def doorControlObject1
93 @Field def doorControlObject2
94 //Global Object for class contact sensor!
95 @Field contactObjects = 0
96 @Field def contactObject0
97 @Field def contactObject1
98 @Field def contactObject2
99 //Global Object for class presence sensor!
100 @Field presenceSensorObjects = 0
101 @Field def presenceSensorObject0
102 @Field def presenceSensorObject1
103 @Field def presenceSensorObject2
104 //Global Object for class thermostat!
105 @Field thermostatObjects = 0
106 @Field def thermostatObject0
107 @Field def thermostatObject1
108 @Field def thermostatObject2
109 //Global Object for class music player!
110 @Field musicPlayerObjects = 0
111 @Field def musicPlayerObject0
112 @Field def musicPlayerObject1
113 @Field def musicPlayerObject2
114 //Global Object for class music player!
115 @Field aeonKeyFobObjects = 0
116 @Field def aeonKeyFobObject0
117 @Field def aeonKeyFobObject1
118 @Field def aeonKeyFobObject2
119 //Global Object for class motion sensor!
120 @Field motionSensorObjects = 0
121 @Field def motionSensorObject0
122 @Field def motionSensorObject1
123 @Field def motionSensorObject2
124 //Global Object for class image capture!
125 @Field imageCaptureObjects = 0
126 @Field def imageCaptureObject0
127 @Field def imageCaptureObject1
128 @Field def imageCaptureObject2
129 //Global Object for class smoke detector!
130 @Field smokeDetectorObjects = 0
131 @Field def smokeDetectorObject0
132 @Field def smokeDetectorObject1
133 @Field def smokeDetectorObject2
134 //Global Object for class alarm!
135 @Field alarmObjects = 0
136 @Field def alarmObject0
137 @Field def alarmObject1
138 @Field def alarmObject2
139 //Global Object for class alarm!
140 @Field speechSynthesisObjects = 0
141 @Field def speechSynthesisObject0
142 @Field def speechSynthesisObject1
143 @Field def speechSynthesisObject2
148 @Field modeVariables = 0
156 @Field numberVariables = 0
164 @Field decimalVariables = 0
172 @Field timeVariables = 0
180 @Field enumVariables = 0
188 @Field phoneVariables = 0
196 @Field contactVariables = 0
204 @Field textVariables = 0
212 @Field boolVariables = 0
221 /////Input Methods/////
223 def input(String name, String type) {
224 LinkedHashMap metaData = []
225 metaData.put('name',name)
226 metaData.put('type',type)
230 //input "","",linkedHashMap
231 def input(LinkedHashMap metaData, String name, String type) {
232 metaData.put('name',name)
233 metaData.put('type',type)
237 //input "", "", linkedHashMap, Closure
238 def input(LinkedHashMap metaData, String name, String type, Closure Input) {
239 metaData.put('name',name)
240 metaData.put('type',type)
245 //input linkedHashMap
246 def input(LinkedHashMap metaData) {
247 if (metaData.containsKey('title')) {
248 println metaData['title']
250 if (metaData.containsKey('options')) {
251 println "Options: "+metaData['options']
253 switch(metaData['type']) {
254 case "capability.lock":
255 if (lockObjects == 0) {
256 lockObject0 = metaData['name']
257 this[lockObject0] = new Locks({}, 1)
258 } else if (lockObjects == 1) {
259 lockObject1 = metaData['name']
260 this[lockObject1] = new Locks({}, 1)
261 } else if (lockObjects == 2) {
262 lockObject2 = metaData['name']
263 this[lockObject2] = new Locks({}, 1)
266 lockObjects=lockObjects+1
268 settings.put(metaData['name'], metaData['name'])
271 extractedObjectsApp1.append("//Object for class lock!\n")
272 extractedObjectsApp1.append("def "+metaData['name']+"\n")
273 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.lockObject\n")
275 extractedObjectsApp2.append("//Object for class lock!\n")
276 extractedObjectsApp2.append("def "+metaData['name']+"\n")
277 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.lockObject\n")
280 case "capability.alarm":
281 if (alarmObjects == 0) {
282 alarmObject0 = metaData['name']
283 this[alarmObject0] = new Alarms({}, 1)
284 } else if (alarmObjects == 1) {
285 alarmObject1 = metaData['name']
286 this[alarmObject1] = new Alarms({}, 1)
287 } else if (alarmObjects == 2) {
288 alarmObject2 = metaData['name']
289 this[alarmObject2] = new Alarms({}, 1)
292 alarmObjects=alarmObjects+1
294 settings.put(metaData['name'], metaData['name'])
297 extractedObjectsApp1.append("//Object for class alarm!\n")
298 extractedObjectsApp1.append("def "+metaData['name']+"\n")
299 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.alarmObject\n")
301 extractedObjectsApp2.append("//Object for class alarm!\n")
302 extractedObjectsApp2.append("def "+metaData['name']+"\n")
303 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.alarmObject\n")
306 case "capability.battery":
308 case "capability.beacon":
310 case "capability.carbonMonoxideDetector":
312 case "capability.colorControl":
314 case "capability.contactSensor":
315 if (contactObjects == 0) {
316 contactObject0 = metaData['name']
317 this[contactObject0] = new ContactSensors({}, 1)
318 } else if (contactObjects == 1) {
319 contactObject1 = metaData['name']
320 this[contactObject1] = new ContactSensors({}, 1)
321 } else if (contactObjects == 2) {
322 contactObject2 = metaData['name']
323 this[contactObject2] = new ContactSensors({}, 1)
326 contactObjects=contactObjects+1
328 settings.put(metaData['name'], metaData['name'])
331 extractedObjectsApp1.append("//Object for class contactSensor!\n")
332 extractedObjectsApp1.append("def "+metaData['name']+"\n")
333 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.contactObject\n")
335 extractedObjectsApp2.append("//Object for class contactSensor!\n")
336 extractedObjectsApp2.append("def "+metaData['name']+"\n")
337 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.contactObject\n")
340 case "capability.doorControl":
341 if (doorControlObjects == 0) {
342 doorControlObject0 = metaData['name']
343 this[doorControlObject0] = new DoorControls({}, 1)
344 } else if (doorControlObjects == 1) {
345 doorControlObject1 = metaData['name']
346 this[doorControlObject1] = new DoorControls({}, 1)
347 } else if (doorControlObjects == 2) {
348 doorControlObject2 = metaData['name']
349 this[doorControlObject2] = new DoorControls({}, 1)
352 doorControlObjects=doorControlObjects+1
354 settings.put(metaData['name'], metaData['name'])
357 extractedObjectsApp1.append("//Object for class door control!\n")
358 extractedObjectsApp1.append("def "+metaData['name']+"\n")
359 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.doorControlObject\n")
361 extractedObjectsApp2.append("//Object for class door control!\n")
362 extractedObjectsApp2.append("def "+metaData['name']+"\n")
363 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.doorControlObject\n")
366 case "capability.energyMeter":
368 case "capability.illuminanceMeasurement":
370 case "capability.accelerationSensor":
372 case "capability.motionSensor":
373 if (motionSensorObjects == 0) {
374 motionSensorObject0 = metaData['name']
375 this[motionSensorObject0] = new MotionSensors({}, 1)
376 } else if (motionSensorObjects == 1) {
377 motionSensorObject1 = metaData['name']
378 this[motionSensorObject1] = new MotionSensors({}, 1)
379 } else if (motionSensorObjects == 2) {
380 motionSensorObject2 = metaData['name']
381 this[motionSensorObject2] = new MotionSensors({}, 1)
384 motionSensorObjects=motionSensorObjects+1
386 settings.put(metaData['name'], metaData['name'])
389 extractedObjectsApp1.append("//Object for class Motion Sensor!\n")
390 extractedObjectsApp1.append("def "+metaData['name']+"\n")
391 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.motionSensorObject\n")
393 extractedObjectsApp2.append("//Object for class Motion Sensor!\n")
394 extractedObjectsApp2.append("def "+metaData['name']+"\n")
395 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.motionSensorObject\n")
398 case "capability.musicPlayer":
399 if (musicPlayerObjects == 0) {
400 musicPlayerObject0 = metaData['name']
401 this[musicPlayerObject0] = new MusicPlayers({}, 1)
402 } else if (musicPlayerObjects == 1) {
403 musicPlayerObject1 = metaData['name']
404 this[musicPlayerObject1] = new MusicPlayers({}, 1)
405 } else if (musicPlayerObjects == 2) {
406 musicPlayerObject2 = metaData['name']
407 this[musicPlayerObject2] = new MusicPlayers({}, 1)
410 musicPlayerObjects=musicPlayerObjects+1
412 settings.put(metaData['name'], metaData['name'])
415 extractedObjectsApp1.append("//Object for class music player!\n")
416 extractedObjectsApp1.append("def "+metaData['name']+"\n")
417 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.musicPlayerObject\n")
419 extractedObjectsApp2.append("//Object for class music player!\n")
420 extractedObjectsApp2.append("def "+metaData['name']+"\n")
421 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.musicPlayerObject\n")
424 case "capability.powerMeter":
426 case "capability.presenceSensor":
427 if (presenceSensorObjects == 0) {
428 presenceSensorObject0 = metaData['name']
429 this[presenceSensorObject0] = new PresenceSensors({}, 1)
430 } else if (presenceSensorObjects == 1) {
431 presenceSensorObject1 = metaData['name']
432 this[presenceSensorObject1] = new PresenceSensors({}, 1)
433 } else if (presenceSensorObjects == 2) {
434 presenceSensorObject2 = metaData['name']
435 this[presenceSensorObject2] = new PresenceSensors({}, 1)
438 presenceSensorObjects=presenceSensorObjects+1
440 settings.put(metaData['name'], metaData['name'])
443 extractedObjectsApp1.append("//Object for class presence sensor!\n")
444 extractedObjectsApp1.append("def "+metaData['name']+"\n")
445 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.presenceSensorObject\n")
447 extractedObjectsApp2.append("//Object for class presence sensor!\n")
448 extractedObjectsApp2.append("def "+metaData['name']+"\n")
449 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.presenceSensorObject\n")
452 case "capability.relativeHumidityMeasurement":
454 case "capability.relaySwitch":
456 case "capability.sleepSensor":
458 case "capability.smokeDetector":
459 if (smokeDetectorObjects == 0) {
460 smokeDetectorObject0 = metaData['name']
461 this[smokeDetectorObject0] = new SmokeDetectors({}, 1)
462 } else if (smokeDetectorObjects == 1) {
463 smokeDetectorObject1 = metaData['name']
464 this[smokeDetectorObject1] = new SmokeDetectors({}, 1)
465 } else if (smokeDetectorObjects == 2) {
466 smokeDetectorObject2 = metaData['name']
467 this[smokeDetectorObject2] = new SmokeDetectors({}, 1)
470 smokeDetectorObjects=smokeDetectorObjects+1
472 settings.put(metaData['name'], metaData['name'])
475 extractedObjectsApp1.append("//Object for class smoke detector!\n")
476 extractedObjectsApp1.append("def "+metaData['name']+"\n")
477 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.smokeDetectorObject\n")
479 extractedObjectsApp2.append("//Object for class smoke detector!\n")
480 extractedObjectsApp2.append("def "+metaData['name']+"\n")
481 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.smokeDetectorObject\n")
484 case "capability.stepSensor":
486 case "capability.switch":
487 if (switchObjects == 0) {
488 switchObject0 = metaData['name']
489 this[switchObject0] = new Switches({}, 1)
490 } else if (switchObjects == 1) {
491 switchObject1 = metaData['name']
492 this[switchObject1] = new Switches({}, 1)
493 } else if (switchObjects == 2) {
494 switchObject2 = metaData['name']
495 this[switchObject2] = new Switches({}, 1)
498 switchObjects=switchObjects+1
500 settings.put(metaData['name'], metaData['name'])
503 extractedObjectsApp1.append("//Object for class switch!\n")
504 extractedObjectsApp1.append("def "+metaData['name']+"\n")
505 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.switchObject\n")
507 extractedObjectsApp2.append("//Object for class switch!\n")
508 extractedObjectsApp2.append("def "+metaData['name']+"\n")
509 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.switchObject\n")
512 case "capability.switchLevel":
514 case "capability.temperatureMeasurement":
516 case "capability.thermostat":
517 if (thermostatObjects == 0) {
518 thermostatObject0 = metaData['name']
519 this[thermostatObject0] = new Thermostats({}, 1)
520 } else if (thermostatObjects == 1) {
521 thermostatObject1 = metaData['name']
522 this[thermostatObject1] = new Thermostats({}, 1)
523 } else if (thermostatObjects == 2) {
524 thermostatObject2 = metaData['name']
525 this[thermostatObject2] = new Thermostats({}, 1)
528 thermostatObjects=thermostatObjects+1
530 settings.put(metaData['name'], metaData['name'])
533 extractedObjectsApp1.append("//Object for class thermostat!\n")
534 extractedObjectsApp1.append("def "+metaData['name']+"\n")
535 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.thermostatObject\n")
537 extractedObjectsApp2.append("//Object for class thermostat!\n")
538 extractedObjectsApp2.append("def "+metaData['name']+"\n")
539 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.thermostatObject\n")
542 case "capability.valve":
544 case "capability.speechSynthesis":
545 if (speechSynthesisObjects == 0) {
546 speechSynthesisObject0 = metaData['name']
547 this[speechSynthesisObject0] = new SpeechSynthesises({}, 1)
548 } else if (speechSynthesisObjects == 1) {
549 speechSynthesisObject1 = metaData['name']
550 this[speechSynthesisObject1] = new SpeechSynthesises({}, 1)
551 } else if (speechSynthesisObjects == 2) {
552 speechSynthesisObject2 = metaData['name']
553 this[speechSynthesisObject2] = new SpeechSynthesises({}, 1)
556 speechSynthesisObjects=speechSynthesisObjects+1
558 settings.put(metaData['name'], metaData['name'])
561 extractedObjectsApp1.append("//Object for class speech synthesis!\n")
562 extractedObjectsApp1.append("def "+metaData['name']+"\n")
563 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.speechSynthesisObject\n")
565 extractedObjectsApp2.append("//Object for class speech synthesis!\n")
566 extractedObjectsApp2.append("def "+metaData['name']+"\n")
567 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.speechSynthesisObject\n")
570 case "capability.waterSensor":
572 case "capability.touchSensor":
573 if (touchSensorObjects == 0) {
574 touchSensorObject0 = metaData['name']
575 this[touchSensorObject0] = new NfcTouch({}, 1)
576 } else if (touchSensorObjects == 1) {
577 touchSensorObject1 = metaData['name']
578 this[touchSensorObject1] = new NfcTouch({}, 1)
579 } else if (touchSensorObjects == 2) {
580 touchSensorObject2 = metaData['name']
581 this[touchSensorObject2] = new NfcTouch({}, 1)
584 touchSensorObjects=touchSensorObjects+1
586 settings.put(metaData['name'], metaData['name'])
589 extractedObjectsApp1.append("//Object for class Touch Sensor!\n")
590 extractedObjectsApp1.append("def "+metaData['name']+"\n")
591 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.touchSensorObject\n")
593 extractedObjectsApp2.append("//Object for class Touch Sensor!\n")
594 extractedObjectsApp2.append("def "+metaData['name']+"\n")
595 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.touchSensorObject\n")
598 case "capability.imageCapture":
599 if (imageCaptureObjects == 0) {
600 imageCaptureObject0 = metaData['name']
601 this[imageCaptureObject0] = new ImageCaptures({}, 1)
602 } else if (imageCaptureObjects == 1) {
603 imageCaptureObject1 = metaData['name']
604 this[imageCaptureObject1] = new ImageCaptures({}, 1)
605 } else if (imageCaptureObjects == 2) {
606 imageCaptureObject2 = metaData['name']
607 this[imageCaptureObject2] = new ImageCaptures({}, 1)
610 imageCaptureObjects=imageCaptureObjects+1
612 settings.put(metaData['name'], metaData['name'])
615 extractedObjectsApp1.append("//Object for class Image Capture!\n")
616 extractedObjectsApp1.append("def "+metaData['name']+"\n")
617 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.imageCaptureObject\n")
619 extractedObjectsApp2.append("//Object for class Image Capture!\n")
620 extractedObjectsApp2.append("def "+metaData['name']+"\n")
621 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.imageCaptureObject\n")
624 case "device.mobilePresence":
626 case "device.aeonKeyFob":
627 if (aeonKeyFobObjects == 0) {
628 aeonKeyFobObject0 = metaData['name']
629 this[aeonKeyFobObject0] = new AeonKeyFobs({}, 1)
630 } else if (aeonKeyFobObjects == 1) {
631 aeonKeyFobObject1 = metaData['name']
632 this[aeonKeyFobObject1] = new AeonKeyFobs({}, 1)
633 } else if (aeonKeyFobObjects == 2) {
634 aeonKeyFobObject2 = metaData['name']
635 this[aeonKeyFobObject2] = new AeonKeyFobs({}, 1)
638 aeonKeyFobObjects=aeonKeyFobObjects+1
640 settings.put(metaData['name'], metaData['name'])
643 extractedObjectsApp1.append("//Object for class aeon key fob!\n")
644 extractedObjectsApp1.append("def "+metaData['name']+"\n")
645 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.aeonKeyFobObject\n")
647 extractedObjectsApp2.append("//Object for class aeon key fob!\n")
648 extractedObjectsApp2.append("def "+metaData['name']+"\n")
649 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.aeonKeyFobObject\n")
653 def randomVariable = Math.abs(new Random().nextInt() % 3)
654 def modes = ["away", "home", "night"]
655 def userInput = modes[randomVariable]
657 if (modeVariables == 0) {
658 mode0 = metaData['name']
659 this[mode0] = userInput
660 } else if (modeVariables == 1) {
661 mode1 = metaData['name']
662 this[mode1] = userInput
663 } else if (modeVariables == 2) {
664 mode2 = metaData['name']
665 this[mode2] = userInput
666 } else if (modeVariables == 3) {
667 mode3 = metaData['name']
668 this[mode3] = userInput
669 } else if (modeVariables == 4) {
670 mode4 = metaData['name']
671 this[mode4] = userInput
672 } else if (modeVariables == 5) {
673 mode5 = metaData['name']
674 this[mode5] = userInput
677 modeVariables=modeVariables+1
679 settings.put(metaData['name'], metaData['name'])
682 extractedObjectsApp1.append("//Global variable for mode!\n")
683 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
685 extractedObjectsApp2.append("//Global variable for mode!\n")
686 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
690 def userInput = Math.abs(new Random().nextInt() % 60) + 40
692 if (decimalVariables == 0) {
693 decimal0 = metaData['name']
694 this[decimal0] = userInput
695 } else if (decimalVariables == 1) {
696 decimal1 = metaData['name']
697 this[decimal1] = userInput
698 } else if (decimalVariables == 2) {
699 decimal2 = metaData['name']
700 this[decimal2] = userInput
701 } else if (decimalVariables == 3) {
702 decimal3 = metaData['name']
703 this[decimal3] = userInput
704 } else if (decimalVariables == 4) {
705 decimal4 = metaData['name']
706 this[decimal4] = userInput
707 } else if (decimalVariables == 5) {
708 decimal5 = metaData['name']
709 this[decimal5] = userInput
712 decimalVariables=decimalVariables+1
714 settings.put(metaData['name'], metaData['name'])
717 extractedObjectsApp1.append("//Global variable for decimal number!\n")
718 extractedObjectsApp1.append("def "+metaData['name']+" = "+userInput+"\n")
720 extractedObjectsApp2.append("//Global variable for decimal number!\n")
721 extractedObjectsApp2.append("def "+metaData['name']+" = "+userInput+"\n")
725 def userInput = "This is just a text!"
727 if (textVariables == 0) {
728 text0 = metaData['name']
729 this[text0] = userInput
730 } else if (textVariables == 1) {
731 text1 = metaData['name']
732 this[text1] = userInput
733 } else if (textVariables == 2) {
734 text2 = metaData['name']
735 this[text2] = userInput
736 } else if (textVariables == 3) {
737 text3 = metaData['name']
738 this[text3] = userInput
739 } else if (textVariables == 4) {
740 text4 = metaData['name']
741 this[text4] = userInput
742 } else if (textVariables == 5) {
743 text5 = metaData['name']
744 this[text5] = userInput
747 textVariables=textVariables+1
749 settings.put(metaData['name'], metaData['name'])
752 extractedObjectsApp1.append("//Global variable for text!\n")
753 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
755 extractedObjectsApp2.append("//Global variable for text!\n")
756 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
760 def userInput = Math.abs(new Random().nextInt() % 60) + 40
762 if (numberVariables == 0) {
763 number0 = metaData['name']
764 this[number0] = userInput
765 } else if (numberVariables == 1) {
766 number1 = metaData['name']
767 this[number1] = userInput
768 } else if (numberVariables == 2) {
769 number2 = metaData['name']
770 this[number2] = userInput
771 } else if (numberVariables == 3) {
772 number3 = metaData['name']
773 this[number3] = userInput
774 } else if (numberVariables == 4) {
775 number4 = metaData['name']
776 this[number4] = userInput
777 } else if (numberVariables == 5) {
778 number5 = metaData['name']
779 this[number5] = userInput
782 numberVariables=numberVariables+1
784 settings.put(metaData['name'], metaData['name'])
787 extractedObjectsApp1.append("//Global variable for number!\n")
788 extractedObjectsApp1.append("def "+metaData['name']+" = "+userInput+"\n")
790 extractedObjectsApp2.append("//Global variable for number!\n")
791 extractedObjectsApp2.append("def "+metaData['name']+" = "+userInput+"\n")
795 def userInput = "15:00"
797 if (timeVariables == 0) {
798 time0 = metaData['name']
799 this[time0] = userInput
800 } else if (timeVariables == 1) {
801 time1 = metaData['name']
802 this[time1] = userInput
803 } else if (timeVariables == 2) {
804 time2 = metaData['name']
805 this[time2] = userInput
806 } else if (timeVariables == 3) {
807 time3 = metaData['name']
808 this[time3] = userInput
809 } else if (timeVariables == 4) {
810 time4 = metaData['name']
811 this[time4] = userInput
812 } else if (timeVariables == 5) {
813 time5 = metaData['name']
814 this[time5] = userInput
817 timeVariables=timeVariables+1
819 settings.put(metaData['name'], metaData['name'])
822 extractedObjectsApp1.append("//Global variable for time!\n")
823 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
825 extractedObjectsApp2.append("//Global variable for time!\n")
826 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
830 def randomVariable = Math.abs(new Random().nextInt() % 2)
831 def modes = ["Yes", "No"]
832 def userInput = modes[randomVariable]
834 if (enumVariables == 0) {
835 enum0 = metaData['name']
836 this[enum0] = userInput
837 } else if (enumVariables == 1) {
838 enum1 = metaData['name']
839 this[enum1] = userInput
840 } else if (enumVariables == 2) {
841 enum2 = metaData['name']
842 this[enum2] = userInput
843 } else if (enumVariables == 3) {
844 enum3 = metaData['name']
845 this[enum3] = userInput
846 } else if (enumVariables == 4) {
847 enum4 = metaData['name']
848 this[enum4] = userInput
849 } else if (enumVariables == 5) {
850 enum5 = metaData['name']
851 this[enum5] = userInput
854 enumVariables=enumVariables+1
856 settings.put(metaData['name'], metaData['name'])
859 extractedObjectsApp1.append("//Global variable for enum!\n")
860 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
862 extractedObjectsApp2.append("//Global variable for enum!\n")
863 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
867 def userInput = Math.abs(new Random().nextInt() % 2)
869 if (boolVariables == 0) {
870 bool0 = metaData['name']
871 this[bool0] = userInput
872 } else if (boolVariables == 1) {
873 bool1 = metaData['name']
874 this[bool1] = userInput
875 } else if (boolVariables == 2) {
876 bool2 = metaData['name']
877 this[bool2] = userInput
878 } else if (boolVariables == 3) {
879 bool3 = metaData['name']
880 this[bool3] = userInput
881 } else if (boolVariables == 4) {
882 bool4 = metaData['name']
883 this[bool4] = userInput
884 } else if (boolVariables == 5) {
885 bool5 = metaData['name']
886 this[bool5] = userInput
889 boolVariables=boolVariables+1
891 settings.put(metaData['name'], metaData['name'])
894 extractedObjectsApp1.append("//Global variable for boolean!\n")
895 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
897 extractedObjectsApp2.append("//Global variable for boolean!\n")
898 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
902 def userInput = 9495379373
904 if (phoneVariables == 0) {
905 phone0 = metaData['name']
906 this[phone0] = userInput
907 } else if (phoneVariables == 1) {
908 phone1 = metaData['name']
909 this[phone1] = userInput
910 } else if (phoneVariables == 2) {
911 phone2 = metaData['name']
912 this[phone2] = userInput
913 } else if (phoneVariables == 3) {
914 phone3 = metaData['name']
915 this[phone3] = userInput
916 } else if (phoneVariables == 4) {
917 phone4 = metaData['name']
918 this[phone4] = userInput
919 } else if (phoneVariables == 5) {
920 phone5 = metaData['name']
921 this[phone5] = userInput
924 phoneVariables=phoneVariables+1
926 settings.put(metaData['name'], metaData['name'])
929 extractedObjectsApp1.append("//Global variable for phone!\n")
930 extractedObjectsApp1.append("def "+metaData['name']+" = "+userInput+"\n")
932 extractedObjectsApp2.append("//Global variable for phone!\n")
933 extractedObjectsApp2.append("def "+metaData['name']+" = "+userInput+"\n")
939 if (contactVariables == 0) {
940 contact0 = metaData['name']
941 this[contact0] = userInput
942 } else if (contactVariables == 1) {
943 contact1 = metaData['name']
944 this[contact1] = userInput
945 } else if (contactVariables == 2) {
946 contact2 = metaData['name']
947 this[contact2] = userInput
948 } else if (contactVariables == 3) {
949 contact3 = metaData['name']
950 this[contact3] = userInput
951 } else if (contactVariables == 4) {
952 contact4 = metaData['name']
953 this[contact4] = userInput
954 } else if (contactVariables == 5) {
955 contact5 = metaData['name']
956 this[contact5] = userInput
959 contactVariables=contactVariables+1
961 settings.put(metaData['name'], metaData['name'])
964 extractedObjectsApp1.append("//Global variable for contact!\n")
965 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
967 extractedObjectsApp2.append("//Global variable for contact!\n")
968 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
976 def label(LinkedHashMap metaData) {
977 if (metaData.containsKey('title')) {
978 println metaData['title']
980 if (metaData.containsKey('options')) {
981 println "Options: "+metaData['options']
984 println("//IGNORE--ForMobileUse//")
987 def mode(LinkedHashMap metaData) {
988 if (metaData.containsKey('title')) {
989 println metaData['title']
991 if (metaData.containsKey('options')) {
992 println "Options: "+metaData['options']
995 println("//IGNORE--ForMobileUse//")
998 def href(LinkedHashMap metaData) {
999 println("//IGNORE--some data//")
1001 /////Input Methods/////
1004 /////MethodsForExtraction/////
1005 def definition(LinkedHashMap metaData) {
1006 println("///Just some information///")
1009 def preferences(Closure inputData) {
1010 find(inputData) //Run the closure to extract pages/sections/inputMethods
1011 if (App == "App1") {
1012 extractedObjectsConstructorApp1.append("//Global variable for settings!\n")
1013 extractedObjectsConstructorApp1.append("settings = $settings\n")
1015 extractedObjectsConstructorApp2.append("//Global variable for settings!\n")
1016 extractedObjectsConstructorApp2.append("settings = $settings\n")
1020 def page(LinkedHashMap metaData, Closure inputData) {
1021 if (metaData.containsKey('name'))
1022 println(metaData['name'])
1023 if (metaData.containsKey('title'))
1024 println(metaData['title'])
1026 find(inputData) //Run the closure to extract sections/inputMethods
1029 def page(LinkedHashMap metaData) {
1030 def nameOfFunction = metaData['name']
1031 "$nameOfFunction"() //Call the page
1034 def dynamicPage(LinkedHashMap metaData, Closure inputData) {
1035 if (metaData.containsKey('name'))
1036 println(metaData['name'])
1037 if (metaData.containsKey('title'))
1038 println(metaData['title'])
1040 find(inputData) //Run the closure to extract sections/inputMethods
1043 def paragraph(String paragraphText) {
1044 println(paragraphText)
1047 def section(String title, Closure inputData) {
1049 find(inputData) //Run the closure to extract inputMethods
1052 def section(Closure inputData) {
1053 find(inputData) //Run the closure to extract inputMethods
1056 def section(LinkedHashMap metaData, Closure inputData) {
1057 find(inputData) //Run the closure to extract inputMethods
1059 /////MethodsForExtraction/////