1 ////////////////////////////////////////
3 import groovy.transform.Field
8 import ContactSensor.ContactSensor
9 import ContactSensor.ContactSensors
10 import DoorControl.DoorControl
11 import DoorControl.DoorControls
14 import Thermostat.Thermostat
15 import Thermostat.Thermostats
17 import Switch.Switches
18 import PresenceSensor.PresenceSensor
19 import PresenceSensor.PresenceSensors
21 import Location.LocationVar
22 import Location.Phrase
23 import appTouch.Touched
24 import NfcTouch.NfcTouch
25 import AeonKeyFob.AeonKeyFob
26 import AeonKeyFob.AeonKeyFobs
27 import MusicPlayer.MusicPlayer
28 import MusicPlayer.MusicPlayers
29 import MotionSensor.MotionSensor
30 import MotionSensor.MotionSensors
31 import ImageCapture.ImageCapture
32 import ImageCapture.ImageCaptures
33 import SmokeDetector.SmokeDetector
34 import SmokeDetector.SmokeDetectors
37 import SpeechSynthesis.SpeechSynthesis
38 import SpeechSynthesis.SpeechSynthesises
39 import AccelerationSensor.AccelerationSensor
40 import AccelerationSensor.AccelerationSensors
41 import Battery.Battery
42 import Battery.Batteries
43 import BeaconSensor.BeaconSensor
44 import BeaconSensor.BeaconSensors
45 import CarbonMonoxideDetector.CarbonMonoxideDetector
46 import CarbonMonoxideDetector.CarbonMonoxideDetectors
47 import ColorControl.ColorControl
48 import ColorControl.ColorControls
49 import EnergyMeter.EnergyMeter
50 import EnergyMeter.EnergyMeters
51 import IlluminanceMeasurement.IlluminanceMeasurement
52 import IlluminanceMeasurement.IlluminanceMeasurements
53 import PowerMeter.PowerMeter
54 import PowerMeter.PowerMeters
55 import RelativeHumidityMeasurement.RelativeHumidityMeasurement
56 import RelativeHumidityMeasurement.RelativeHumidityMeasurements
57 import RelaySwitch.RelaySwitch
58 import RelaySwitch.RelaySwitches
59 import SleepSensor.SleepSensor
60 import SleepSensor.SleepSensors
61 import StepSensor.StepSensor
62 import StepSensor.StepSensors
63 import SwitchLevel.SwitchLevel
64 import SwitchLevel.SwitchLevels
65 import TemperatureMeasurement.TemperatureMeasurement
66 import TemperatureMeasurement.TemperatureMeasurements
67 import WaterSensor.WaterSensor
68 import WaterSensor.WaterSensors
71 import MobilePresence.MobilePresence
72 import MobilePresence.MobilePresences
73 import ColorTemperature.ColorTemperature
74 import ColorTemperature.ColorTemperatures
77 import ThreeAxis.ThreeAxis
78 import ThreeAxis.ThreeAxises
79 import Momentary.Momentary
80 import Momentary.Momentaries
81 import Timer.SimulatedTimer
84 @Field def location = new LocationVar({}, true)
85 //Settings variable defined to settings on purpose
86 @Field def settings = [app: "app"]
87 //Global variable for state[mode]
88 @Field def state = [home:[],away:[],night:[]]
89 //Create a global logger object for methods
90 @Field def log = new Logger()
91 //Create a global variable for optional property
92 @Field def optional = false //by default for now
93 //Global Object for class AtomicState!
94 @Field def atomicState = [history: "15:00"]
97 //Global variables for files
98 @Field File globalObjects = new File("Extractor/globalObjects.groovy")
99 @Field File extractedObjectsApp1 = new File("Extractor/App1/extractedObjectsApp1.groovy")
100 @Field File extractedObjectsApp2 = new File("Extractor/App2/extractedObjectsApp2.groovy")
101 @Field File extractedObjectsConstructorApp1 = new File("Extractor/App1/extractedObjectsConstructorApp1.groovy")
102 @Field File extractedObjectsConstructorApp2 = new File("Extractor/App2/extractedObjectsConstructorApp2.groovy")
104 //Set this to true for global-state variable conflict
105 @Field assignDifferentModes = true
106 @Field chooseMode = 0
109 globalObjects.write("")
110 extractedObjectsApp1.write("")
111 extractedObjectsConstructorApp1.write("")
112 if (assignDifferentModes)
114 } else if (App == "App2") {
115 extractedObjectsApp2.write("")
116 extractedObjectsConstructorApp2.write("")
117 if (assignDifferentModes)
123 //Some of methods-May be needed even in install
124 /////////////////////////////////////////////////////////////////////
125 def timeToday(String time, Object timeZone) {
126 def timeOfDay = new Date()
127 def _inputTime = time.split(':')
128 def inputTime = Integer.parseInt(_inputTime[0])*3600+Integer.parseInt(_inputTime[1])*60+1564191100415
129 timeOfDay.time = inputTime
136 //Global Object for class Touch Sensor!
137 @Field touchSensorObjects = 0
138 @Field def touchSensorObject0
139 @Field def touchSensorObject1
140 @Field def touchSensorObject2
141 //Global Object for class switch!
142 @Field switchObjects = 0
143 @Field def switchObject0
144 @Field def switchObject1
145 @Field def switchObject2
146 //Global Object for class lock!
147 @Field lockObjects = 0
148 @Field def lockObject0
149 @Field def lockObject1
150 @Field def lockObject2
151 //Global Object for class door control!
152 @Field doorControlObjects = 0
153 @Field def doorControlObject0
154 @Field def doorControlObject1
155 @Field def doorControlObject2
156 //Global Object for class contact sensor!
157 @Field contactObjects = 0
158 @Field def contactObject0
159 @Field def contactObject1
160 @Field def contactObject2
161 //Global Object for class presence sensor!
162 @Field presenceSensorObjects = 0
163 @Field def presenceSensorObject0
164 @Field def presenceSensorObject1
165 @Field def presenceSensorObject2
166 //Global Object for class thermostat!
167 @Field thermostatObjects = 0
168 @Field def thermostatObject0
169 @Field def thermostatObject1
170 @Field def thermostatObject2
171 //Global Object for class music player!
172 @Field musicPlayerObjects = 0
173 @Field def musicPlayerObject0
174 @Field def musicPlayerObject1
175 @Field def musicPlayerObject2
176 //Global Object for class aeon key fob!
177 @Field aeonKeyFobObjects = 0
178 @Field def aeonKeyFobObject0
179 @Field def aeonKeyFobObject1
180 @Field def aeonKeyFobObject2
181 //Global Object for class motion sensor!
182 @Field motionSensorObjects = 0
183 @Field def motionSensorObject0
184 @Field def motionSensorObject1
185 @Field def motionSensorObject2
186 //Global Object for class image capture!
187 @Field imageCaptureObjects = 0
188 @Field def imageCaptureObject0
189 @Field def imageCaptureObject1
190 @Field def imageCaptureObject2
191 //Global Object for class smoke detector!
192 @Field smokeDetectorObjects = 0
193 @Field def smokeDetectorObject0
194 @Field def smokeDetectorObject1
195 @Field def smokeDetectorObject2
196 //Global Object for class alarm!
197 @Field alarmObjects = 0
198 @Field def alarmObject0
199 @Field def alarmObject1
200 @Field def alarmObject2
201 //Global Object for class speech synthesis!
202 @Field speechSynthesisObjects = 0
203 @Field def speechSynthesisObject0
204 @Field def speechSynthesisObject1
205 @Field def speechSynthesisObject2
206 //Global Object for class acceleration sensor!
207 @Field accelerationSensorObjects = 0
208 @Field def accelerationSensorObject0
209 @Field def accelerationSensorObject1
210 @Field def accelerationSensorObject2
211 //Global Object for class battery!
212 @Field batteryObjects = 0
213 @Field def batteryObject0
214 @Field def batteryObject1
215 @Field def batteryObject2
216 //Global Object for class beacon sensor!
217 @Field beaconSensorObjects = 0
218 @Field def beaconSensorObject0
219 @Field def beaconSensorObject1
220 @Field def beaconSensorObject2
221 //Global Object for class carbon monoxide detector!
222 @Field carbonMonoxideDetectorObjects = 0
223 @Field def carbonMonoxideDetectorObject0
224 @Field def carbonMonoxideDetectorObject1
225 @Field def carbonMonoxideDetectorObject2
226 //Global Object for class color control!
227 @Field colorControlObjects = 0
228 @Field def colorControlObject0
229 @Field def colorControlObject1
230 @Field def colorControlObject2
231 //Global Object for class energy meter!
232 @Field energyMeterObjects = 0
233 @Field def energyMeterObject0
234 @Field def energyMeterObject1
235 @Field def energyMeterObject2
236 //Global Object for class energy meter!
237 @Field illuminanceMeasurementObjects = 0
238 @Field def illuminanceMeasurementObject0
239 @Field def illuminanceMeasurementObject1
240 @Field def illuminanceMeasurementObject2
241 //Global Object for class power meter!
242 @Field powerMeterObjects = 0
243 @Field def powerMeterObject0
244 @Field def powerMeterObject1
245 @Field def powerMeterObject2
246 //Global Object for class power meter!
247 @Field humidityMeasurementObjects = 0
248 @Field def humidityMeasurementObject0
249 @Field def humidityMeasurementObject1
250 @Field def humidityMeasurementObject2
251 //Global Object for class relay switch!
252 @Field relaySwitchObjects = 0
253 @Field def relaySwitchObject0
254 @Field def relaySwitchObject1
255 @Field def relaySwitchObject2
256 //Global Object for class sleep sensor!
257 @Field sleepSensorObjects = 0
258 @Field def sleepSensorObject0
259 @Field def sleepSensorObject1
260 @Field def sleepSensorObject2
261 //Global Object for class step sensor!
262 @Field stepSensorObjects = 0
263 @Field def stepSensorObject0
264 @Field def stepSensorObject1
265 @Field def stepSensorObject2
266 //Global Object for class switch level!
267 @Field switchLevelObjects = 0
268 @Field def switchLevelObject0
269 @Field def switchLevelObject1
270 @Field def switchLevelObject2
271 //Global Object for class temperature measurement!
272 @Field temperatureMeasurementObjects = 0
273 @Field def temperatureMeasurementObject0
274 @Field def temperatureMeasurementObject1
275 @Field def temperatureMeasurementObject2
276 //Global Object for class water sensor!
277 @Field waterSensorObjects = 0
278 @Field def waterSensorObject0
279 @Field def waterSensorObject1
280 @Field def waterSensorObject2
281 //Global Object for class valve!
282 @Field valveObjects = 0
283 @Field def valveObject0
284 @Field def valveObject1
285 @Field def valveObject2
286 //Global Object for class mobile presence!
287 @Field mobilePresenceObjects = 0
288 @Field def mobilePresenceObject0
289 @Field def mobilePresenceObject1
290 @Field def mobilePresenceObject2
291 //Global Object for class color temperature!
292 @Field colorTemperatureObjects = 0
293 @Field def colorTemperatureObject0
294 @Field def colorTemperatureObject1
295 @Field def colorTemperatureObject2
296 //Global Object for class button!
297 @Field buttonObjects = 0
298 @Field def buttonObject0
299 @Field def buttonObject1
300 @Field def buttonObject2
301 //Global Object for class three axis!
302 @Field threeAxisObjects = 0
303 @Field def threeAxisObject0
304 @Field def threeAxisObject1
305 @Field def threeAxisObject2
306 //Global Object for class momentary switch device!
307 @Field momentaryObjects = 0
308 @Field def momentaryObject0
309 @Field def momentaryObject1
310 @Field def momentaryObject2
315 @Field modeVariables = 0
323 @Field numberVariables = 0
331 @Field decimalVariables = 0
339 @Field timeVariables = 0
347 @Field enumVariables = 0
355 @Field phoneVariables = 0
363 @Field contactVariables = 0
371 @Field textVariables = 0
379 @Field boolVariables = 0
387 /////Input Methods/////
389 def input(String name, String type) {
390 LinkedHashMap metaData = []
391 metaData.put('name',name)
392 metaData.put('type',type)
396 //input "","",linkedHashMap
397 def input(LinkedHashMap metaData, String name, String type) {
398 metaData.put('name',name)
399 metaData.put('type',type)
403 //input "", "", linkedHashMap, Closure
404 def input(LinkedHashMap metaData, String name, String type, Closure Input) {
405 metaData.put('name',name)
406 metaData.put('type',type)
411 //input linkedHashMap
412 def input(LinkedHashMap metaData) {
413 if (metaData.containsKey('title')) {
414 println metaData['title']
416 if (metaData.containsKey('options')) {
417 println "Options: "+metaData['options']
420 switch(metaData['type']) {
421 case "capability.lock":
422 globalObjects.eachLine { line ->
423 if(line.contains("lockObject")){
429 globalObjects.append("@Field def lockObject = new Locks(sendEvent, 1, init)\n")
431 if (lockObjects == 0) {
432 lockObject0 = metaData['name']
433 this[lockObject0] = new Locks({}, 1, true)
434 } else if (lockObjects == 1) {
435 lockObject1 = metaData['name']
436 this[lockObject1] = new Locks({}, 1, true)
437 } else if (lockObjects == 2) {
438 lockObject2 = metaData['name']
439 this[lockObject2] = new Locks({}, 1, true)
442 lockObjects=lockObjects+1
444 settings.put(metaData['name'], new Locks({}, 1, true))
447 extractedObjectsApp1.append("//Object for class lock!\n")
448 extractedObjectsApp1.append("def "+metaData['name']+"\n")
449 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.lockObject\n")
451 extractedObjectsApp2.append("//Object for class lock!\n")
452 extractedObjectsApp2.append("def "+metaData['name']+"\n")
453 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.lockObject\n")
456 case "capability.alarm":
457 globalObjects.eachLine { line ->
458 if(line.contains("alarmObject")){
464 globalObjects.append("@Field def alarmObject = new Alarms(sendEvent, 1, init)\n")
466 if (alarmObjects == 0) {
467 alarmObject0 = metaData['name']
468 this[alarmObject0] = new Alarms({}, 1, true)
469 } else if (alarmObjects == 1) {
470 alarmObject1 = metaData['name']
471 this[alarmObject1] = new Alarms({}, 1, true)
472 } else if (alarmObjects == 2) {
473 alarmObject2 = metaData['name']
474 this[alarmObject2] = new Alarms({}, 1, true)
477 alarmObjects=alarmObjects+1
479 settings.put(metaData['name'], new Alarms({}, 1, true))
482 extractedObjectsApp1.append("//Object for class alarm!\n")
483 extractedObjectsApp1.append("def "+metaData['name']+"\n")
484 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.alarmObject\n")
486 extractedObjectsApp2.append("//Object for class alarm!\n")
487 extractedObjectsApp2.append("def "+metaData['name']+"\n")
488 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.alarmObject\n")
491 case "capability.button":
492 globalObjects.eachLine { line ->
493 if(line.contains("buttonObject")){
499 globalObjects.append("@Field def buttonObject = new Buttons(sendEvent, 1, init)\n")
501 if (buttonObjects == 0) {
502 buttonObject0 = metaData['name']
503 this[buttonObject0] = new Buttons({}, 1, true)
504 } else if (buttonObjects == 1) {
505 buttonObject1 = metaData['name']
506 this[buttonObject1] = new Buttons({}, 1, true)
507 } else if (buttonObjects == 2) {
508 buttonObject2 = metaData['name']
509 this[buttonObject2] = new Buttons({}, 1, true)
512 buttonObjects=buttonObjects+1
514 settings.put(metaData['name'], new Buttons({}, 1, true))
517 extractedObjectsApp1.append("//Object for class Button!\n")
518 extractedObjectsApp1.append("def "+metaData['name']+"\n")
519 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.buttonObject\n")
521 extractedObjectsApp2.append("//Object for class Button!\n")
522 extractedObjectsApp2.append("def "+metaData['name']+"\n")
523 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.buttonObject\n")
526 case "capability.battery":
527 globalObjects.eachLine { line ->
528 if(line.contains("batteryObject")){
534 globalObjects.append("@Field def batteryObject = new Batteries(sendEvent, 1, init)\n")
536 if (batteryObjects == 0) {
537 batteryObject0 = metaData['name']
538 this[batteryObject0] = new Batteries({}, 1, true)
539 } else if (batteryObjects == 1) {
540 batteryObject1 = metaData['name']
541 this[batteryObject1] = new Batteries({}, 1, true)
542 } else if (batteryObjects == 2) {
543 batteryObject2 = metaData['name']
544 this[batteryObject2] = new Batteries({}, 1, true)
547 batteryObjects=batteryObjects+1
549 settings.put(metaData['name'], new Batteries({}, 1, true))
552 extractedObjectsApp1.append("//Object for class Battery!\n")
553 extractedObjectsApp1.append("def "+metaData['name']+"\n")
554 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.batteryObject\n")
556 extractedObjectsApp2.append("//Object for class Battery!\n")
557 extractedObjectsApp2.append("def "+metaData['name']+"\n")
558 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.batteryObject\n")
561 case "capability.beacon":
562 globalObjects.eachLine { line ->
563 if(line.contains("beaconSensorObject")){
569 globalObjects.append("@Field def beaconSensorObject = new BeaconSensors(sendEvent, 1, init)\n")
571 if (beaconSensorObjects == 0) {
572 beaconSensorObject0 = metaData['name']
573 this[beaconSensorObject0] = new BeaconSensors({}, 1, true)
574 } else if (beaconSensorObjects == 1) {
575 beaconSensorObject1 = metaData['name']
576 this[beaconSensorObject1] = new BeaconSensors({}, 1, true)
577 } else if (beaconSensorObjects == 2) {
578 beaconSensorObject2 = metaData['name']
579 this[beaconSensorObject2] = new BeaconSensors({}, 1, true)
582 beaconSensorObjects=beaconSensorObjects+1
584 settings.put(metaData['name'], new BeaconSensors({}, 1, true))
587 extractedObjectsApp1.append("//Object for class beacon sensor!\n")
588 extractedObjectsApp1.append("def "+metaData['name']+"\n")
589 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.beaconSensorObject\n")
591 extractedObjectsApp2.append("//Object for class beacon sensor!\n")
592 extractedObjectsApp2.append("def "+metaData['name']+"\n")
593 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.beaconSensorObject\n")
596 case "capability.carbonMonoxideDetector":
597 globalObjects.eachLine { line ->
598 if(line.contains("carbonMonoxideDetectorObject")){
604 globalObjects.append("@Field def carbonMonoxideDetectorObject = new CarbonMonoxideDetectors(sendEvent, 1, init)\n")
606 if (carbonMonoxideDetectorObjects == 0) {
607 carbonMonoxideDetectorObject0 = metaData['name']
608 this[carbonMonoxideDetectorObject0] = new CarbonMonoxideDetectors({}, 1, true)
609 } else if (carbonMonoxideDetectorObjects == 1) {
610 carbonMonoxideDetectorObject1 = metaData['name']
611 this[carbonMonoxideDetectorObject1] = new CarbonMonoxideDetectors({}, 1, true)
612 } else if (carbonMonoxideDetectorObjects == 2) {
613 carbonMonoxideDetectorObject2 = metaData['name']
614 this[carbonMonoxideDetectorObject2] = new CarbonMonoxideDetectors({}, 1, true)
617 carbonMonoxideDetectorObjects=carbonMonoxideDetectorObjects+1
619 settings.put(metaData['name'], new CarbonMonoxideDetectors({}, 1, true))
622 extractedObjectsApp1.append("//Object for class carbon monoxide detector!\n")
623 extractedObjectsApp1.append("def "+metaData['name']+"\n")
624 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.carbonMonoxideDetectorObject\n")
626 extractedObjectsApp2.append("//Object for class carbon monoxide detector!\n")
627 extractedObjectsApp2.append("def "+metaData['name']+"\n")
628 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.carbonMonoxideDetectorObject\n")
631 case "capability.colorTemperature":
632 globalObjects.eachLine { line ->
633 if(line.contains("colorTemperatureObject")){
639 globalObjects.append("@Field def colorTemperatureObject = new ColorTemperatures(sendEvent, 1, init)\n")
641 if (colorTemperatureObjects == 0) {
642 colorTemperatureObject0 = metaData['name']
643 this[colorTemperatureObject0] = new ColorTemperatures({}, 1, true)
644 } else if (colorTemperatureObjects == 1) {
645 colorTemperatureObject1 = metaData['name']
646 this[colorTemperatureObject1] = new ColorTemperatures({}, 1, true)
647 } else if (colorTemperatureObjects == 2) {
648 colorTemperatureObject2 = metaData['name']
649 this[colorTemperatureObject2] = new ColorTemperatures({}, 1, true)
652 colorTemperatureObjects=colorTemperatureObjects+1
654 settings.put(metaData['name'], new ColorTemperatures({}, 1, true))
657 extractedObjectsApp1.append("//Object for class color temperature!\n")
658 extractedObjectsApp1.append("def "+metaData['name']+"\n")
659 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.colorTemperatureObject\n")
661 extractedObjectsApp2.append("//Object for class color control!\n")
662 extractedObjectsApp2.append("def "+metaData['name']+"\n")
663 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.colorTemperatureObject\n")
666 case "capability.colorControl":
667 globalObjects.eachLine { line ->
668 if(line.contains("colorControlObject")){
674 globalObjects.append("@Field def colorControlObject = new ColorControls(sendEvent, 1, init)\n")
676 if (colorControlObjects == 0) {
677 colorControlObject0 = metaData['name']
678 this[colorControlObject0] = new ColorControls({}, 1, true)
679 } else if (colorControlObjects == 1) {
680 colorControlObject1 = metaData['name']
681 this[colorControlObject1] = new ColorControls({}, 1, true)
682 } else if (colorControlObjects == 2) {
683 colorControlObject2 = metaData['name']
684 this[colorControlObject2] = new ColorControls({}, 1, true)
687 colorControlObjects=colorControlObjects+1
689 settings.put(metaData['name'], new ColorControls({}, 1, true))
692 extractedObjectsApp1.append("//Object for class color control!\n")
693 extractedObjectsApp1.append("def "+metaData['name']+"\n")
694 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.colorControlObject\n")
696 extractedObjectsApp2.append("//Object for class color control!\n")
697 extractedObjectsApp2.append("def "+metaData['name']+"\n")
698 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.colorControlObject\n")
701 case "capability.contactSensor":
702 globalObjects.eachLine { line ->
703 if(line.contains("contactObject")){
709 globalObjects.append("@Field def contactObject = new ContactSensors(sendEvent, 1, init)\n")
711 if (contactObjects == 0) {
712 contactObject0 = metaData['name']
713 this[contactObject0] = new ContactSensors({}, 1, true)
714 } else if (contactObjects == 1) {
715 contactObject1 = metaData['name']
716 this[contactObject1] = new ContactSensors({}, 1, true)
717 } else if (contactObjects == 2) {
718 contactObject2 = metaData['name']
719 this[contactObject2] = new ContactSensors({}, 1, true)
722 contactObjects=contactObjects+1
724 settings.put(metaData['name'], new ContactSensors({}, 1, true))
727 extractedObjectsApp1.append("//Object for class contactSensor!\n")
728 extractedObjectsApp1.append("def "+metaData['name']+"\n")
729 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.contactObject\n")
731 extractedObjectsApp2.append("//Object for class contactSensor!\n")
732 extractedObjectsApp2.append("def "+metaData['name']+"\n")
733 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.contactObject\n")
736 case "capability.threeAxis":
737 globalObjects.eachLine { line ->
738 if(line.contains("threeAxisObject")){
744 globalObjects.append("@Field def threeAxisObject = new ThreeAxises(sendEvent, 1, init)\n")
746 if (threeAxisObjects == 0) {
747 threeAxisObject0 = metaData['name']
748 this[threeAxisObject0] = new ThreeAxises({}, 1, true)
749 } else if (threeAxisObjects == 1) {
750 threeAxisObject1 = metaData['name']
751 this[threeAxisObject1] = new ThreeAxises({}, 1, true)
752 } else if (threeAxisObjects == 2) {
753 threeAxisObject2 = metaData['name']
754 this[threeAxisObject2] = new ThreeAxises({}, 1, true)
757 threeAxisObjects=threeAxisObjects+1
759 settings.put(metaData['name'], new ThreeAxises({}, 1, true))
762 extractedObjectsApp1.append("//Object for class three axis!\n")
763 extractedObjectsApp1.append("def "+metaData['name']+"\n")
764 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.threeAxisObject\n")
766 extractedObjectsApp2.append("//Object for class three axis!\n")
767 extractedObjectsApp2.append("def "+metaData['name']+"\n")
768 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.threeAxisObject\n")
771 case "capability.doorControl":
772 globalObjects.eachLine { line ->
773 if(line.contains("doorControlObject")){
779 globalObjects.append("@Field def doorControlObject = new DoorControls(sendEvent, 1, init)\n")
781 if (doorControlObjects == 0) {
782 doorControlObject0 = metaData['name']
783 this[doorControlObject0] = new DoorControls({}, 1, true)
784 } else if (doorControlObjects == 1) {
785 doorControlObject1 = metaData['name']
786 this[doorControlObject1] = new DoorControls({}, 1, true)
787 } else if (doorControlObjects == 2) {
788 doorControlObject2 = metaData['name']
789 this[doorControlObject2] = new DoorControls({}, 1, true)
792 doorControlObjects=doorControlObjects+1
794 settings.put(metaData['name'], new DoorControls({}, 1, true))
797 extractedObjectsApp1.append("//Object for class door control!\n")
798 extractedObjectsApp1.append("def "+metaData['name']+"\n")
799 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.doorControlObject\n")
801 extractedObjectsApp2.append("//Object for class door control!\n")
802 extractedObjectsApp2.append("def "+metaData['name']+"\n")
803 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.doorControlObject\n")
806 case "capability.energyMeter":
807 globalObjects.eachLine { line ->
808 if(line.contains("energyMeterObject")){
814 globalObjects.append("@Field def energyMeterObject = new EnergyMeters(sendEvent, 1, init)\n")
816 if (energyMeterObjects == 0) {
817 energyMeterObject0 = metaData['name']
818 this[energyMeterObject0] = new EnergyMeters({}, 1, true)
819 } else if (energyMeterObjects == 1) {
820 energyMeterObject1 = metaData['name']
821 this[energyMeterObject1] = new EnergyMeters({}, 1, true)
822 } else if (energyMeterObjects == 2) {
823 energyMeterObject2 = metaData['name']
824 this[energyMeterObject2] = new EnergyMeters({}, 1, true)
827 energyMeterObjects=energyMeterObjects+1
829 settings.put(metaData['name'], new EnergyMeters({}, 1, true))
832 extractedObjectsApp1.append("//Object for class energy meter!\n")
833 extractedObjectsApp1.append("def "+metaData['name']+"\n")
834 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.energyMeterObject\n")
836 extractedObjectsApp2.append("//Object for class energy meter!\n")
837 extractedObjectsApp2.append("def "+metaData['name']+"\n")
838 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.energyMeterObject\n")
841 case "capability.illuminanceMeasurement":
842 globalObjects.eachLine { line ->
843 if(line.contains("illuminanceMeasurementObject")){
849 globalObjects.append("@Field def illuminanceMeasurementObject = new IlluminanceMeasurements(sendEvent, 1, init)\n")
851 if (illuminanceMeasurementObjects == 0) {
852 illuminanceMeasurementObject0 = metaData['name']
853 this[illuminanceMeasurementObject0] = new IlluminanceMeasurements({}, 1, true)
854 } else if (illuminanceMeasurementObjects == 1) {
855 illuminanceMeasurementObject1 = metaData['name']
856 this[illuminanceMeasurementObject1] = new IlluminanceMeasurements({}, 1, true)
857 } else if (illuminanceMeasurementObjects == 2) {
858 illuminanceMeasurementObject2 = metaData['name']
859 this[illuminanceMeasurementObject2] = new IlluminanceMeasurements({}, 1, true)
862 illuminanceMeasurementObjects=illuminanceMeasurementObjects+1
864 settings.put(metaData['name'], new IlluminanceMeasurements({}, 1, true))
867 extractedObjectsApp1.append("//Object for class illuminance measurement!\n")
868 extractedObjectsApp1.append("def "+metaData['name']+"\n")
869 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.illuminanceMeasurementObject\n")
871 extractedObjectsApp2.append("//Object for class illuminance measurement!\n")
872 extractedObjectsApp2.append("def "+metaData['name']+"\n")
873 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.illuminanceMeasurementObject\n")
876 case "capability.accelerationSensor":
877 globalObjects.eachLine { line ->
878 if(line.contains("accelerationSensorObject")){
884 globalObjects.append("@Field def accelerationSensorObject = new AccelerationSensors(sendEvent, 1, init)\n")
886 if (accelerationSensorObjects == 0) {
887 accelerationSensorObject0 = metaData['name']
888 this[accelerationSensorObject0] = new AccelerationSensors({}, 1, true)
889 } else if (accelerationSensorObjects == 1) {
890 accelerationSensorObject1 = metaData['name']
891 this[accelerationSensorObject1] = new AccelerationSensors({}, 1, true)
892 } else if (accelerationSensorObjects == 2) {
893 accelerationSensorObject2 = metaData['name']
894 this[accelerationSensorObject2] = new AccelerationSensors({}, 1, true)
897 accelerationSensorObjects=accelerationSensorObjects+1
899 settings.put(metaData['name'], new AccelerationSensors({}, 1, true))
902 extractedObjectsApp1.append("//Object for class Acceleration Sensor!\n")
903 extractedObjectsApp1.append("def "+metaData['name']+"\n")
904 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.accelerationSensorObject\n")
906 extractedObjectsApp2.append("//Object for class Acceleration Sensor!\n")
907 extractedObjectsApp2.append("def "+metaData['name']+"\n")
908 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.accelerationSensorObject\n")
911 case "capability.momentary":
912 globalObjects.eachLine { line ->
913 if(line.contains("momentoryObject")){
919 globalObjects.append("@Field def momentaryObject = new Momentaries(sendEvent, 1)\n")
921 if (momentaryObjects == 0) {
922 momentaryObject0 = metaData['name']
923 this[momentaryObject0] = new Momentaries({}, 1)
924 } else if (momentaryObjects == 1) {
925 momentaryObject1 = metaData['name']
926 this[momentaryObject1] = new Momentaries({}, 1)
927 } else if (momentaryObjects == 2) {
928 momentaryObject2 = metaData['name']
929 this[momentaryObject2] = new Momentaries({}, 1)
932 momentaryObjects=momentaryObjects+1
934 settings.put(metaData['name'], new Momentaries({}, 1))
937 extractedObjectsApp1.append("//Object for class momentory switch class!\n")
938 extractedObjectsApp1.append("def "+metaData['name']+"\n")
939 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.momentaryObject\n")
941 extractedObjectsApp2.append("//Object for class momentory Sensor!\n")
942 extractedObjectsApp2.append("def "+metaData['name']+"\n")
943 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.momentaryObject\n")
946 case "capability.motionSensor":
947 globalObjects.eachLine { line ->
948 if(line.contains("motionSensorObject")){
954 globalObjects.append("@Field def motionSensorObject = new MotionSensors(sendEvent, 1, init)\n")
956 if (motionSensorObjects == 0) {
957 motionSensorObject0 = metaData['name']
958 this[motionSensorObject0] = new MotionSensors({}, 1, true)
959 } else if (motionSensorObjects == 1) {
960 motionSensorObject1 = metaData['name']
961 this[motionSensorObject1] = new MotionSensors({}, 1, true)
962 } else if (motionSensorObjects == 2) {
963 motionSensorObject2 = metaData['name']
964 this[motionSensorObject2] = new MotionSensors({}, 1, true)
967 motionSensorObjects=motionSensorObjects+1
969 settings.put(metaData['name'], new MotionSensors({}, 1, true))
972 extractedObjectsApp1.append("//Object for class Motion Sensor!\n")
973 extractedObjectsApp1.append("def "+metaData['name']+"\n")
974 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.motionSensorObject\n")
976 extractedObjectsApp2.append("//Object for class Motion Sensor!\n")
977 extractedObjectsApp2.append("def "+metaData['name']+"\n")
978 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.motionSensorObject\n")
981 case "capability.musicPlayer":
982 globalObjects.eachLine { line ->
983 if(line.contains("musicPlayerObject")){
989 globalObjects.append("@Field def musicPlayerObject = new MusicPlayers(sendEvent, 1, init)\n")
991 if (musicPlayerObjects == 0) {
992 musicPlayerObject0 = metaData['name']
993 this[musicPlayerObject0] = new MusicPlayers({}, 1, true)
994 } else if (musicPlayerObjects == 1) {
995 musicPlayerObject1 = metaData['name']
996 this[musicPlayerObject1] = new MusicPlayers({}, 1, true)
997 } else if (musicPlayerObjects == 2) {
998 musicPlayerObject2 = metaData['name']
999 this[musicPlayerObject2] = new MusicPlayers({}, 1, true)
1002 musicPlayerObjects=musicPlayerObjects+1
1004 settings.put(metaData['name'], new MusicPlayers({}, 1, true))
1006 if (App == "App1") {
1007 extractedObjectsApp1.append("//Object for class music player!\n")
1008 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1009 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.musicPlayerObject\n")
1011 extractedObjectsApp2.append("//Object for class music player!\n")
1012 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1013 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.musicPlayerObject\n")
1016 case "capability.powerMeter":
1017 globalObjects.eachLine { line ->
1018 if(line.contains("powerMeterObject")){
1024 globalObjects.append("@Field def powerMeterObject = new PowerMeters(sendEvent, 1, init)\n")
1026 if (powerMeterObjects == 0) {
1027 powerMeterObject0 = metaData['name']
1028 this[powerMeterObject0] = new PowerMeters({}, 1, true)
1029 } else if (powerMeterObjects == 1) {
1030 powerMeterObject1 = metaData['name']
1031 this[powerMeterObject1] = new PowerMeters({}, 1, true)
1032 } else if (powerMeterObjects == 2) {
1033 powerMeterObject2 = metaData['name']
1034 this[powerMeterObject2] = new PowerMeters({}, 1, true)
1037 powerMeterObjects=powerMeterObjects+1
1039 settings.put(metaData['name'], new PowerMeters({}, 1, true))
1041 if (App == "App1") {
1042 extractedObjectsApp1.append("//Object for class power meter!\n")
1043 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1044 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.powerMeterObject\n")
1046 extractedObjectsApp2.append("//Object for class power meter!\n")
1047 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1048 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.powerMeterObject\n")
1051 case "capability.presenceSensor":
1052 globalObjects.eachLine { line ->
1053 if(line.contains("presenceSensorObject")){
1059 globalObjects.append("@Field def presenceSensorObject = new PresenceSensors(sendEvent, 1, init)\n")
1061 if (presenceSensorObjects == 0) {
1062 presenceSensorObject0 = metaData['name']
1063 this[presenceSensorObject0] = new PresenceSensors({}, 1, true)
1064 } else if (presenceSensorObjects == 1) {
1065 presenceSensorObject1 = metaData['name']
1066 this[presenceSensorObject1] = new PresenceSensors({}, 1, true)
1067 } else if (presenceSensorObjects == 2) {
1068 presenceSensorObject2 = metaData['name']
1069 this[presenceSensorObject2] = new PresenceSensors({}, 1, true)
1072 presenceSensorObjects=presenceSensorObjects+1
1074 settings.put(metaData['name'], new PresenceSensors({}, 1, true))
1076 if (App == "App1") {
1077 extractedObjectsApp1.append("//Object for class presence sensor!\n")
1078 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1079 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.presenceSensorObject\n")
1081 extractedObjectsApp2.append("//Object for class presence sensor!\n")
1082 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1083 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.presenceSensorObject\n")
1086 case "capability.relativeHumidityMeasurement":
1087 globalObjects.eachLine { line ->
1088 if(line.contains("humidityMeasurementObject")){
1094 globalObjects.append("@Field def humidityMeasurementObject = new RelativeHumidityMeasurements(sendEvent, 1, init)\n")
1096 if (humidityMeasurementObjects == 0) {
1097 humidityMeasurementObject0 = metaData['name']
1098 this[humidityMeasurementObject0] = new RelativeHumidityMeasurements({}, 1, true)
1099 } else if (humidityMeasurementObjects == 1) {
1100 humidityMeasurementObject1 = metaData['name']
1101 this[humidityMeasurementObject1] = new RelativeHumidityMeasurements({}, 1, true)
1102 } else if (humidityMeasurementObjects == 2) {
1103 humidityMeasurementObject2 = metaData['name']
1104 this[humidityMeasurementObject2] = new RelativeHumidityMeasurements({}, 1, true)
1107 humidityMeasurementObjects=humidityMeasurementObjects+1
1109 settings.put(metaData['name'], new RelativeHumidityMeasurements({}, 1, true))
1111 if (App == "App1") {
1112 extractedObjectsApp1.append("//Object for class humidity measurement!\n")
1113 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1114 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.humidityMeasurementObject\n")
1116 extractedObjectsApp2.append("//Object for class humidity measurement!\n")
1117 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1118 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.humidityMeasurementObject\n")
1121 case "capability.relaySwitch":
1122 globalObjects.eachLine { line ->
1123 if(line.contains("relaySwitchObject")){
1129 globalObjects.append("@Field def relaySwitchObject = new RelaySwitches(sendEvent, 1, init)\n")
1131 if (relaySwitchObjects == 0) {
1132 relaySwitchObject0 = metaData['name']
1133 this[relaySwitchObject0] = new RelaySwitches({}, 1, true)
1134 } else if (relaySwitchObjects == 1) {
1135 relaySwitchObject1 = metaData['name']
1136 this[relaySwitchObject1] = new RelaySwitches({}, 1, true)
1137 } else if (relaySwitchObjects == 2) {
1138 relaySwitchObject2 = metaData['name']
1139 this[relaySwitchObject2] = new RelaySwitches({}, 1, true)
1142 relaySwitchObjects=relaySwitchObjects+1
1144 settings.put(metaData['name'], new RelaySwitches({}, 1, true))
1146 if (App == "App1") {
1147 extractedObjectsApp1.append("//Object for class relay switch!\n")
1148 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1149 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.relaySwitchObject\n")
1151 extractedObjectsApp2.append("//Object for class relay switch!\n")
1152 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1153 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.relaySwitchObject\n")
1156 case "capability.sleepSensor":
1157 globalObjects.eachLine { line ->
1158 if(line.contains("sleepSensorObject")){
1164 globalObjects.append("@Field def sleepSensorObject = new SleepSensors(sendEvent, 1, init)\n")
1166 if (sleepSensorObjects == 0) {
1167 sleepSensorObject0 = metaData['name']
1168 this[sleepSensorObject0] = new SleepSensors({}, 1, true)
1169 } else if (sleepSensorObjects == 1) {
1170 sleepSensorObject1 = metaData['name']
1171 this[sleepSensorObject1] = new SleepSensors({}, 1, true)
1172 } else if (sleepSensorObjects == 2) {
1173 sleepSensorObject2 = metaData['name']
1174 this[sleepSensorObject2] = new SleepSensors({}, 1, true)
1177 sleepSensorObjects=sleepSensorObjects+1
1179 settings.put(metaData['name'], new SleepSensors({}, 1, true))
1181 if (App == "App1") {
1182 extractedObjectsApp1.append("//Object for class sleep sensor!\n")
1183 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1184 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.sleepSensorObject\n")
1186 extractedObjectsApp2.append("//Object for class sleep sensor!\n")
1187 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1188 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.sleepSensorObject\n")
1191 case "capability.smokeDetector":
1192 globalObjects.eachLine { line ->
1193 if(line.contains("smokeDetectorObject")){
1199 globalObjects.append("@Field def smokeDetectorObject = new SmokeDetectors(sendEvent, 1, init)\n")
1201 if (smokeDetectorObjects == 0) {
1202 smokeDetectorObject0 = metaData['name']
1203 this[smokeDetectorObject0] = new SmokeDetectors({}, 1, true)
1204 } else if (smokeDetectorObjects == 1) {
1205 smokeDetectorObject1 = metaData['name']
1206 this[smokeDetectorObject1] = new SmokeDetectors({}, 1, true)
1207 } else if (smokeDetectorObjects == 2) {
1208 smokeDetectorObject2 = metaData['name']
1209 this[smokeDetectorObject2] = new SmokeDetectors({}, 1, true)
1212 smokeDetectorObjects=smokeDetectorObjects+1
1214 settings.put(metaData['name'], new SmokeDetectors({}, 1, true))
1216 if (App == "App1") {
1217 extractedObjectsApp1.append("//Object for class smoke detector!\n")
1218 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1219 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.smokeDetectorObject\n")
1221 extractedObjectsApp2.append("//Object for class smoke detector!\n")
1222 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1223 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.smokeDetectorObject\n")
1226 case "capability.stepSensor":
1227 globalObjects.eachLine { line ->
1228 if(line.contains("stepSensorObject")){
1234 globalObjects.append("@Field def stepSensorObject = new StepSensors(sendEvent, 1, init)\n")
1236 if (stepSensorObjects == 0) {
1237 stepSensorObject0 = metaData['name']
1238 this[stepSensorObject0] = new StepSensors({}, 1, true)
1239 } else if (stepSensorObjects == 1) {
1240 stepSensorObject1 = metaData['name']
1241 this[stepSensorObject1] = new StepSensors({}, 1, true)
1242 } else if (stepSensorObjects == 2) {
1243 stepSensorObject2 = metaData['name']
1244 this[stepSensorObject2] = new StepSensors({}, 1, true)
1247 stepSensorObjects=stepSensorObjects+1
1249 settings.put(metaData['name'], new StepSensors({}, 1, true))
1251 if (App == "App1") {
1252 extractedObjectsApp1.append("//Object for class step sensor!\n")
1253 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1254 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.stepSensorObject\n")
1256 extractedObjectsApp2.append("//Object for class step sensor!\n")
1257 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1258 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.stepSensorObject\n")
1261 case "capability.switch":
1262 globalObjects.eachLine { line ->
1263 if(line.contains("switchObject")){
1269 globalObjects.append("@Field def switchObject = new Switches(sendEvent, 1, init)\n")
1271 if (switchObjects == 0) {
1272 switchObject0 = metaData['name']
1273 this[switchObject0] = new Switches({}, 1, true)
1274 } else if (switchObjects == 1) {
1275 switchObject1 = metaData['name']
1276 this[switchObject1] = new Switches({}, 1, true)
1277 } else if (switchObjects == 2) {
1278 switchObject2 = metaData['name']
1279 this[switchObject2] = new Switches({}, 1, true)
1282 switchObjects=switchObjects+1
1284 settings.put(metaData['name'], new Switches({}, 1, true))
1286 if (App == "App1") {
1287 extractedObjectsApp1.append("//Object for class switch!\n")
1288 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1289 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.switchObject\n")
1291 extractedObjectsApp2.append("//Object for class switch!\n")
1292 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1293 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.switchObject\n")
1296 case "capability.switchLevel":
1297 globalObjects.eachLine { line ->
1298 if(line.contains("switchLevelObject")){
1304 globalObjects.append("@Field def switchLevelObject = new SwitchLevels(sendEvent, 1, init)\n")
1306 if (switchLevelObjects == 0) {
1307 switchLevelObject0 = metaData['name']
1308 this[switchLevelObject0] = new SwitchLevels({}, 1, true)
1309 } else if (switchLevelObjects == 1) {
1310 switchLevelObject1 = metaData['name']
1311 this[switchLevelObject1] = new SwitchLevels({}, 1, true)
1312 } else if (switchLevelObjects == 2) {
1313 switchLevelObject2 = metaData['name']
1314 this[switchLevelObject2] = new SwitchLevels({}, 1, true)
1317 switchLevelObjects=switchLevelObjects+1
1319 settings.put(metaData['name'], new SwitchLevels({}, 1, true))
1321 if (App == "App1") {
1322 extractedObjectsApp1.append("//Object for class switch level!\n")
1323 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1324 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.switchLevelObject\n")
1326 extractedObjectsApp2.append("//Object for class switch level!\n")
1327 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1328 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.switchLevelObject\n")
1331 case "capability.temperatureMeasurement":
1332 globalObjects.eachLine { line ->
1333 if(line.contains("temperatureMeasurementObject")){
1339 globalObjects.append("@Field def temperatureMeasurementObject = new TemperatureMeasurements(sendEvent, 1, init)\n")
1341 if (temperatureMeasurementObjects == 0) {
1342 temperatureMeasurementObject0 = metaData['name']
1343 this[temperatureMeasurementObject0] = new TemperatureMeasurements({}, 1, true)
1344 } else if (temperatureMeasurementObjects == 1) {
1345 temperatureMeasurementObject1 = metaData['name']
1346 this[temperatureMeasurementObject1] = new TemperatureMeasurements({}, 1, true)
1347 } else if (temperatureMeasurementObjects == 2) {
1348 temperatureMeasurementObject2 = metaData['name']
1349 this[temperatureMeasurementObject2] = new TemperatureMeasurements({}, 1, true)
1352 temperatureMeasurementObjects=temperatureMeasurementObjects+1
1354 settings.put(metaData['name'], new TemperatureMeasurements({}, 1, true))
1356 if (App == "App1") {
1357 extractedObjectsApp1.append("//Object for class temperature measurement!\n")
1358 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1359 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.temperatureMeasurementObject\n")
1361 extractedObjectsApp2.append("//Object for class temperature measurement!\n")
1362 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1363 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.temperatureMeasurementObject\n")
1366 case "capability.thermostat":
1367 globalObjects.eachLine { line ->
1368 if(line.contains("thermostatObject")){
1374 globalObjects.append("@Field def thermostatObject = new Thermostats(sendEvent, 1, init)\n")
1376 if (thermostatObjects == 0) {
1377 thermostatObject0 = metaData['name']
1378 this[thermostatObject0] = new Thermostats({}, 1, true)
1379 } else if (thermostatObjects == 1) {
1380 thermostatObject1 = metaData['name']
1381 this[thermostatObject1] = new Thermostats({}, 1, true)
1382 } else if (thermostatObjects == 2) {
1383 thermostatObject2 = metaData['name']
1384 this[thermostatObject2] = new Thermostats({}, 1, true)
1387 thermostatObjects=thermostatObjects+1
1389 settings.put(metaData['name'], new Thermostats({}, 1, true))
1391 if (App == "App1") {
1392 extractedObjectsApp1.append("//Object for class thermostat!\n")
1393 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1394 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.thermostatObject\n")
1396 extractedObjectsApp2.append("//Object for class thermostat!\n")
1397 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1398 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.thermostatObject\n")
1401 case "capability.valve":
1402 globalObjects.eachLine { line ->
1403 if(line.contains("valveObject")){
1409 globalObjects.append("@Field def valveObject = new Valves(sendEvent, 1, init)\n")
1411 if (valveObjects == 0) {
1412 valveObject0 = metaData['name']
1413 this[valveObject0] = new Valves({}, 1, true)
1414 } else if (valveObjects == 1) {
1415 valveObject1 = metaData['name']
1416 this[valveObject1] = new Valves({}, 1, true)
1417 } else if (valveObjects == 2) {
1418 valveObject2 = metaData['name']
1419 this[valveObject2] = new Valves({}, 1, true)
1422 valveObjects=valveObjects+1
1424 settings.put(metaData['name'], new Valves({}, 1, true))
1426 if (App == "App1") {
1427 extractedObjectsApp1.append("//Object for class valve!\n")
1428 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1429 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.valveObject\n")
1431 extractedObjectsApp2.append("//Object for class valve!\n")
1432 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1433 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.valveObject\n")
1436 case "capability.speechSynthesis":
1437 globalObjects.eachLine { line ->
1438 if(line.contains("speechSynthesisObject")){
1444 globalObjects.append("@Field def speechSynthesisObject = new SpeechSynthesises(sendEvent, 1, init)\n")
1446 if (speechSynthesisObjects == 0) {
1447 speechSynthesisObject0 = metaData['name']
1448 this[speechSynthesisObject0] = new SpeechSynthesises({}, 1, true)
1449 } else if (speechSynthesisObjects == 1) {
1450 speechSynthesisObject1 = metaData['name']
1451 this[speechSynthesisObject1] = new SpeechSynthesises({}, 1, true)
1452 } else if (speechSynthesisObjects == 2) {
1453 speechSynthesisObject2 = metaData['name']
1454 this[speechSynthesisObject2] = new SpeechSynthesises({}, 1, true)
1457 speechSynthesisObjects=speechSynthesisObjects+1
1459 settings.put(metaData['name'], new SpeechSynthesises({}, 1, true))
1461 if (App == "App1") {
1462 extractedObjectsApp1.append("//Object for class speech synthesis!\n")
1463 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1464 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.speechSynthesisObject\n")
1466 extractedObjectsApp2.append("//Object for class speech synthesis!\n")
1467 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1468 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.speechSynthesisObject\n")
1471 case "capability.waterSensor":
1472 globalObjects.eachLine { line ->
1473 if(line.contains("waterSensorObject")){
1479 globalObjects.append("@Field def waterSensorObject = new WaterSensors(sendEvent, 1, init)\n")
1481 if (waterSensorObjects == 0) {
1482 waterSensorObject0 = metaData['name']
1483 this[waterSensorObject0] = new WaterSensors({}, 1, true)
1484 } else if (waterSensorObjects == 1) {
1485 waterSensorObject1 = metaData['name']
1486 this[waterSensorObject1] = new WaterSensors({}, 1, true)
1487 } else if (waterSensorObjects == 2) {
1488 waterSensorObject2 = metaData['name']
1489 this[waterSensorObject2] = new WaterSensors({}, 1, true)
1492 waterSensorObjects=waterSensorObjects+1
1494 settings.put(metaData['name'], new WaterSensors({}, 1, true))
1496 if (App == "App1") {
1497 extractedObjectsApp1.append("//Object for class water sensor!\n")
1498 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1499 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.waterSensorObject\n")
1501 extractedObjectsApp2.append("//Object for class water sensor!\n")
1502 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1503 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.waterSensorObject\n")
1506 case "capability.touchSensor":
1507 globalObjects.eachLine { line ->
1508 if(line.contains("touchSensorObject")){
1514 globalObjects.append("@Field def touchSensorObject = new NfcTouch(sendEvent, 1)\n")
1516 if (touchSensorObjects == 0) {
1517 touchSensorObject0 = metaData['name']
1518 this[touchSensorObject0] = new NfcTouch({}, 1)
1519 } else if (touchSensorObjects == 1) {
1520 touchSensorObject1 = metaData['name']
1521 this[touchSensorObject1] = new NfcTouch({}, 1)
1522 } else if (touchSensorObjects == 2) {
1523 touchSensorObject2 = metaData['name']
1524 this[touchSensorObject2] = new NfcTouch({}, 1)
1527 touchSensorObjects=touchSensorObjects+1
1529 settings.put(metaData['name'], new NfcTouch({}, 1))
1531 if (App == "App1") {
1532 extractedObjectsApp1.append("//Object for class Touch Sensor!\n")
1533 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1534 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.touchSensorObject\n")
1536 extractedObjectsApp2.append("//Object for class Touch Sensor!\n")
1537 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1538 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.touchSensorObject\n")
1541 case "capability.imageCapture":
1542 globalObjects.eachLine { line ->
1543 if(line.contains("imageCaptureObject")){
1549 globalObjects.append("@Field def imageCaptureObject = new ImageCaptures(sendEvent, 1, init)\n")
1551 if (imageCaptureObjects == 0) {
1552 imageCaptureObject0 = metaData['name']
1553 this[imageCaptureObject0] = new ImageCaptures({}, 1, true)
1554 } else if (imageCaptureObjects == 1) {
1555 imageCaptureObject1 = metaData['name']
1556 this[imageCaptureObject1] = new ImageCaptures({}, 1, true)
1557 } else if (imageCaptureObjects == 2) {
1558 imageCaptureObject2 = metaData['name']
1559 this[imageCaptureObject2] = new ImageCaptures({}, 1, true)
1562 imageCaptureObjects=imageCaptureObjects+1
1564 settings.put(metaData['name'], new ImageCaptures({}, 1, true))
1566 if (App == "App1") {
1567 extractedObjectsApp1.append("//Object for class Image Capture!\n")
1568 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1569 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.imageCaptureObject\n")
1571 extractedObjectsApp2.append("//Object for class Image Capture!\n")
1572 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1573 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.imageCaptureObject\n")
1576 case "device.mobilePresence":
1577 globalObjects.eachLine { line ->
1578 if(line.contains("mobilePresenceObject")){
1584 globalObjects.append("@Field def mobilePresenceObject = new MobilePresences(sendEvent, 1)\n")
1586 if (mobilePresenceObjects == 0) {
1587 mobilePresenceObject0 = metaData['name']
1588 this[mobilePresenceObject0] = new MobilePresences({}, 1)
1589 } else if (mobilePresenceObjects == 1) {
1590 mobilePresenceObject1 = metaData['name']
1591 this[mobilePresenceObject1] = new MobilePresences({}, 1)
1592 } else if (mobilePresenceObjects == 2) {
1593 mobilePresenceObject2 = metaData['name']
1594 this[mobilePresenceObject2] = new MobilePresences({}, 1)
1597 mobilePresenceObjects=mobilePresenceObjects+1
1599 settings.put(metaData['name'], new MobilePresences({}, 1))
1601 if (App == "App1") {
1602 extractedObjectsApp1.append("//Object for class mobile presence!\n")
1603 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1604 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.mobilePresenceObject\n")
1606 extractedObjectsApp2.append("//Object for class mobile presence!\n")
1607 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1608 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.mobilePresenceObject\n")
1611 case "device.aeonKeyFob":
1612 globalObjects.eachLine { line ->
1613 if(line.contains("aeonKeyFobObject")){
1618 globalObjects.append("@Field def aeonKeyFobObject = new AeonKeyFobs(sendEvent, 1)\n")
1620 if (aeonKeyFobObjects == 0) {
1621 aeonKeyFobObject0 = metaData['name']
1622 this[aeonKeyFobObject0] = new AeonKeyFobs({}, 1)
1623 } else if (aeonKeyFobObjects == 1) {
1624 aeonKeyFobObject1 = metaData['name']
1625 this[aeonKeyFobObject1] = new AeonKeyFobs({}, 1)
1626 } else if (aeonKeyFobObjects == 2) {
1627 aeonKeyFobObject2 = metaData['name']
1628 this[aeonKeyFobObject2] = new AeonKeyFobs({}, 1)
1631 aeonKeyFobObjects=aeonKeyFobObjects+1
1633 settings.put(metaData['name'], new AeonKeyFobs({}, 1))
1635 if (App == "App1") {
1636 extractedObjectsApp1.append("//Object for class aeon key fob!\n")
1637 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1638 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.aeonKeyFobObject\n")
1640 extractedObjectsApp2.append("//Object for class aeon key fob!\n")
1641 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1642 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.aeonKeyFobObject\n")
1646 //def randomVariable = Math.abs(new Random().nextInt() % 3)
1647 def modes = ["away", "home", "night"]
1648 // Always assign a different mode to each app
1650 if (assignDifferentModes) {
1651 userInput = modes[chooseMode]
1655 chooseMode = chooseMode%3
1657 userInput = modes[1]
1660 if (modeVariables == 0) {
1661 mode0 = metaData['name']
1662 this[mode0] = userInput
1663 } else if (modeVariables == 1) {
1664 mode1 = metaData['name']
1665 this[mode1] = userInput
1666 } else if (modeVariables == 2) {
1667 mode2 = metaData['name']
1668 this[mode2] = userInput
1669 } else if (modeVariables == 3) {
1670 mode3 = metaData['name']
1671 this[mode3] = userInput
1672 } else if (modeVariables == 4) {
1673 mode4 = metaData['name']
1674 this[mode4] = userInput
1675 } else if (modeVariables == 5) {
1676 mode5 = metaData['name']
1677 this[mode5] = userInput
1680 if (modeVariables != 5)
1681 modeVariables=modeVariables+1
1686 settings.put(metaData['name'], metaData['name'])
1688 if (App == "App1") {
1689 extractedObjectsApp1.append("//Global variable for mode!\n")
1690 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1692 extractedObjectsApp2.append("//Global variable for mode!\n")
1693 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1697 //def userInput = Math.abs(new Random().nextInt() % 60) + 40
1700 if (decimalVariables == 0) {
1701 decimal0 = metaData['name']
1702 this[decimal0] = userInput
1703 } else if (decimalVariables == 1) {
1704 decimal1 = metaData['name']
1705 this[decimal1] = userInput
1706 } else if (decimalVariables == 2) {
1707 decimal2 = metaData['name']
1708 this[decimal2] = userInput
1709 } else if (decimalVariables == 3) {
1710 decimal3 = metaData['name']
1711 this[decimal3] = userInput
1712 } else if (decimalVariables == 4) {
1713 decimal4 = metaData['name']
1714 this[decimal4] = userInput
1715 } else if (decimalVariables == 5) {
1716 decimal5 = metaData['name']
1717 this[decimal5] = userInput
1720 if (decimalVariables != 5)
1721 decimalVariables=decimalVariables+1
1725 settings.put(metaData['name'], metaData['name'])
1727 if (App == "App1") {
1728 extractedObjectsApp1.append("//Global variable for decimal number!\n")
1729 extractedObjectsApp1.append("def "+metaData['name']+" = "+userInput+"\n")
1731 extractedObjectsApp2.append("//Global variable for decimal number!\n")
1732 extractedObjectsApp2.append("def "+metaData['name']+" = "+userInput+"\n")
1736 def userInput = "This is just a text!"
1738 if (textVariables == 0) {
1739 text0 = metaData['name']
1740 this[text0] = userInput
1741 } else if (textVariables == 1) {
1742 text1 = metaData['name']
1743 this[text1] = userInput
1744 } else if (textVariables == 2) {
1745 text2 = metaData['name']
1746 this[text2] = userInput
1747 } else if (textVariables == 3) {
1748 text3 = metaData['name']
1749 this[text3] = userInput
1750 } else if (textVariables == 4) {
1751 text4 = metaData['name']
1752 this[text4] = userInput
1753 } else if (textVariables == 5) {
1754 text5 = metaData['name']
1755 this[text5] = userInput
1758 if (textVariables != 5)
1759 textVariables=textVariables+1
1764 settings.put(metaData['name'], metaData['name'])
1766 if (App == "App1") {
1767 extractedObjectsApp1.append("//Global variable for text!\n")
1768 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1770 extractedObjectsApp2.append("//Global variable for text!\n")
1771 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1775 //def userInput = Math.abs(new Random().nextInt() % 60) + 40
1778 if (numberVariables == 0) {
1779 number0 = metaData['name']
1780 this[number0] = userInput
1781 } else if (numberVariables == 1) {
1782 number1 = metaData['name']
1783 this[number1] = userInput
1784 } else if (numberVariables == 2) {
1785 number2 = metaData['name']
1786 this[number2] = userInput
1787 } else if (numberVariables == 3) {
1788 number3 = metaData['name']
1789 this[number3] = userInput
1790 } else if (numberVariables == 4) {
1791 number4 = metaData['name']
1792 this[number4] = userInput
1793 } else if (numberVariables == 5) {
1794 number5 = metaData['name']
1795 this[number5] = userInput
1799 if (numberVariables != 5)
1800 numberVariables=numberVariables+1
1805 settings.put(metaData['name'], metaData['name'])
1807 if (App == "App1") {
1808 extractedObjectsApp1.append("//Global variable for number!\n")
1809 extractedObjectsApp1.append("def "+metaData['name']+" = "+userInput+"\n")
1811 extractedObjectsApp2.append("//Global variable for number!\n")
1812 extractedObjectsApp2.append("def "+metaData['name']+" = "+userInput+"\n")
1816 def userInput = "15:00"
1818 if (timeVariables == 0) {
1819 time0 = metaData['name']
1820 this[time0] = userInput
1821 } else if (timeVariables == 1) {
1822 time1 = metaData['name']
1823 this[time1] = userInput
1824 } else if (timeVariables == 2) {
1825 time2 = metaData['name']
1826 this[time2] = userInput
1827 } else if (timeVariables == 3) {
1828 time3 = metaData['name']
1829 this[time3] = userInput
1830 } else if (timeVariables == 4) {
1831 time4 = metaData['name']
1832 this[time4] = userInput
1833 } else if (timeVariables == 5) {
1834 time5 = metaData['name']
1835 this[time5] = userInput
1838 if (timeVariables != 5)
1839 timeVariables=timeVariables+1
1843 settings.put(metaData['name'], metaData['name'])
1845 if (App == "App1") {
1846 extractedObjectsApp1.append("//Global variable for time!\n")
1847 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1849 extractedObjectsApp2.append("//Global variable for time!\n")
1850 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1854 if (metaData['options'] != null)
1855 modes = metaData['options']
1856 else if (metaData['metadata'] != null) { // If it is not named 'options' then it is captured as 'metadata'
1857 modes = metaData['metadata']
1858 modes = modes['values']
1860 def userInput = modes[0]
1862 if (enumVariables == 0) {
1863 enum0 = metaData['name']
1864 this[enum0] = userInput
1865 } else if (enumVariables == 1) {
1866 enum1 = metaData['name']
1867 this[enum1] = userInput
1868 } else if (enumVariables == 2) {
1869 enum2 = metaData['name']
1870 this[enum2] = userInput
1871 } else if (enumVariables == 3) {
1872 enum3 = metaData['name']
1873 this[enum3] = userInput
1874 } else if (enumVariables == 4) {
1875 enum4 = metaData['name']
1876 this[enum4] = userInput
1877 } else if (enumVariables == 5) {
1878 enum5 = metaData['name']
1879 this[enum5] = userInput
1882 if (enumVariables != 5)
1883 enumVariables=enumVariables+1
1888 settings.put(metaData['name'], metaData['name'])
1890 if (App == "App1") {
1891 extractedObjectsApp1.append("//Global variable for enum!\n")
1892 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1894 extractedObjectsApp2.append("//Global variable for enum!\n")
1895 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1899 //def userInput = Math.abs(new Random().nextInt() % 2)
1900 def userInput = true
1902 if (boolVariables == 0) {
1903 bool0 = metaData['name']
1904 this[bool0] = userInput
1905 } else if (boolVariables == 1) {
1906 bool1 = metaData['name']
1907 this[bool1] = userInput
1908 } else if (boolVariables == 2) {
1909 bool2 = metaData['name']
1910 this[bool2] = userInput
1911 } else if (boolVariables == 3) {
1912 bool3 = metaData['name']
1913 this[bool3] = userInput
1914 } else if (boolVariables == 4) {
1915 bool4 = metaData['name']
1916 this[bool4] = userInput
1917 } else if (boolVariables == 5) {
1918 bool5 = metaData['name']
1919 this[bool5] = userInput
1922 if (boolVariables != 5)
1923 boolVariables=boolVariables+1
1928 settings.put(metaData['name'], metaData['name'])
1930 if (App == "App1") {
1931 extractedObjectsApp1.append("//Global variable for boolean!\n")
1932 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1934 extractedObjectsApp2.append("//Global variable for boolean!\n")
1935 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1939 //def userInput = Math.abs(new Random().nextInt() % 2)
1940 def userInput = true
1942 if (boolVariables == 0) {
1943 bool0 = metaData['name']
1944 this[bool0] = userInput
1945 } else if (boolVariables == 1) {
1946 bool1 = metaData['name']
1947 this[bool1] = userInput
1948 } else if (boolVariables == 2) {
1949 bool2 = metaData['name']
1950 this[bool2] = userInput
1951 } else if (boolVariables == 3) {
1952 bool3 = metaData['name']
1953 this[bool3] = userInput
1954 } else if (boolVariables == 4) {
1955 bool4 = metaData['name']
1956 this[bool4] = userInput
1957 } else if (boolVariables == 5) {
1958 bool5 = metaData['name']
1959 this[bool5] = userInput
1962 if (boolVariables != 5)
1963 boolVariables=boolVariables+1
1968 settings.put(metaData['name'], metaData['name'])
1970 if (App == "App1") {
1971 extractedObjectsApp1.append("//Global variable for boolean!\n")
1972 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1974 extractedObjectsApp2.append("//Global variable for boolean!\n")
1975 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1979 def userInput = 9495379373
1981 if (phoneVariables == 0) {
1982 phone0 = metaData['name']
1983 this[phone0] = userInput
1984 } else if (phoneVariables == 1) {
1985 phone1 = metaData['name']
1986 this[phone1] = userInput
1987 } else if (phoneVariables == 2) {
1988 phone2 = metaData['name']
1989 this[phone2] = userInput
1990 } else if (phoneVariables == 3) {
1991 phone3 = metaData['name']
1992 this[phone3] = userInput
1993 } else if (phoneVariables == 4) {
1994 phone4 = metaData['name']
1995 this[phone4] = userInput
1996 } else if (phoneVariables == 5) {
1997 phone5 = metaData['name']
1998 this[phone5] = userInput
2001 if (phoneVariables != 5)
2002 phoneVariables=phoneVariables+1
2006 settings.put(metaData['name'], metaData['name'])
2008 if (App == "App1") {
2009 extractedObjectsApp1.append("//Global variable for phone!\n")
2010 extractedObjectsApp1.append("def "+metaData['name']+" = "+userInput+"\n")
2012 extractedObjectsApp2.append("//Global variable for phone!\n")
2013 extractedObjectsApp2.append("def "+metaData['name']+" = "+userInput+"\n")
2017 def userInput = "AJ"
2019 if (contactVariables == 0) {
2020 contact0 = metaData['name']
2021 this[contact0] = userInput
2022 } else if (contactVariables == 1) {
2023 contact1 = metaData['name']
2024 this[contact1] = userInput
2025 } else if (contactVariables == 2) {
2026 contact2 = metaData['name']
2027 this[contact2] = userInput
2028 } else if (contactVariables == 3) {
2029 contact3 = metaData['name']
2030 this[contact3] = userInput
2031 } else if (contactVariables == 4) {
2032 contact4 = metaData['name']
2033 this[contact4] = userInput
2034 } else if (contactVariables == 5) {
2035 contact5 = metaData['name']
2036 this[contact5] = userInput
2039 if (contactVariables != 5)
2040 contactVariables=contactVariables+1
2044 settings.put(metaData['name'], metaData['name'])
2046 if (App == "App1") {
2047 extractedObjectsApp1.append("//Global variable for contact!\n")
2048 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
2050 extractedObjectsApp2.append("//Global variable for contact!\n")
2051 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
2059 def label(LinkedHashMap metaData) {
2060 if (metaData.containsKey('title')) {
2061 println metaData['title']
2063 if (metaData.containsKey('options')) {
2064 println "Options: "+metaData['options']
2067 println("//IGNORE--ForMobileUse//")
2070 def mode(LinkedHashMap metaData) {
2071 if (metaData.containsKey('title')) {
2072 println metaData['title']
2074 if (metaData.containsKey('options')) {
2075 println "Options: "+metaData['options']
2078 println("//IGNORE--ForMobileUse//")
2081 def href(LinkedHashMap metaData) {
2082 println("//IGNORE--some data//")
2085 def href(LinkedHashMap metaData, String name) {
2086 println("//IGNORE--some data//")
2088 /////Input Methods/////
2091 /////MethodsForExtraction/////
2092 def definition(LinkedHashMap metaData) {
2093 println("///Just some information///")
2096 def preferences(Closure inputData) {
2097 find(inputData) //Run the closure to extract pages/sections/inputMethods
2098 settings.put("END", "END")
2099 if (App == "App1") {
2100 extractedObjectsConstructorApp1.append("//Global variable for settings!\n")
2101 extractedObjectsConstructorApp1.append("settings = [")
2105 extractedObjectsConstructorApp1.append("$key: $key, ")
2107 extractedObjectsConstructorApp1.append("END: \"END\"]\n")
2110 extractedObjectsConstructorApp2.append("//Global variable for settings!\n")
2111 extractedObjectsConstructorApp2.append("settings = [")
2115 extractedObjectsConstructorApp2.append("$key: $key, ")
2117 extractedObjectsConstructorApp2.append("END: \"END\"]\n")
2120 File GlobalVariablesBothApps = new File("GlobalVariables/GlobalVariablesBothApps.groovy")
2121 GlobalVariablesBothApps.write("")
2122 GlobalVariablesBothApps.append("//Creating Global variables for both apps\n")
2123 GlobalVariablesBothApps.append("@Field def sendEvent = {eventDataMap -> eventHandler(eventDataMap)}\n")
2124 GlobalVariablesBothApps.append("@Field def locationObject = new LocationVar(sendEvent, init)\n")
2125 GlobalVariablesBothApps.append("@Field def appObject = new Touched(sendEvent, 0)\n")
2127 globalObjects.withReader { reader ->
2128 while ((line = reader.readLine()) != null) {
2129 GlobalVariablesBothApps.append(line)
2130 GlobalVariablesBothApps.append("\n")
2136 def image(String data) {
2137 println("//IGNORE--some image//")
2140 def page(LinkedHashMap metaData, Closure inputData) {
2141 if (metaData.containsKey('name'))
2142 println(metaData['name'])
2143 if (metaData.containsKey('title'))
2144 println(metaData['title'])
2146 find(inputData) //Run the closure to extract sections/inputMethods
2149 def page(LinkedHashMap metaData) {
2150 def nameOfFunction = metaData['name']
2151 "$nameOfFunction"() //Call the page
2154 def dynamicPage(LinkedHashMap metaData, Closure inputData) {
2155 if (metaData.containsKey('name'))
2156 println(metaData['name'])
2157 if (metaData.containsKey('title'))
2158 println(metaData['title'])
2160 find(inputData) //Run the closure to extract sections/inputMethods
2163 def paragraph(String paragraphText) {
2164 println(paragraphText)
2167 def paragraph(LinkedHashMap metaData, String paragraphText) {
2168 println(paragraphText)
2171 def section(String title, Closure inputData) {
2173 find(inputData) //Run the closure to extract inputMethods
2176 def section(Closure inputData) {
2177 find(inputData) //Run the closure to extract inputMethods
2180 def section(LinkedHashMap metaData, Closure inputData) {
2181 find(inputData) //Run the closure to extract inputMethods
2184 def section(LinkedHashMap metaData, String data, Closure inputData) {
2188 def mappings(Closure inputData) {
2189 println("//IGNORE--some data//")
2191 /////MethodsForExtraction/////