X-Git-Url: http://plrg.eecs.uci.edu/git/?p=smartthings-infrastructure.git;a=blobdiff_plain;f=Extractor%2FExtractor.groovy;h=16038e3b078f450b6f02b7e9b7d182de96ad8751;hp=502fdc3bb8f3a8be7e47d8bd7e26eae8c96beebd;hb=e9196e0f9b6d29e4f5d9fbe51e15b5a6e7fe00b7;hpb=d3802bd96ca8963ae52b9740443f9be6896f0e18 diff --git a/Extractor/Extractor.groovy b/Extractor/Extractor.groovy index 502fdc3..16038e3 100644 --- a/Extractor/Extractor.groovy +++ b/Extractor/Extractor.groovy @@ -70,6 +70,14 @@ import Valve.Valve import Valve.Valves import MobilePresence.MobilePresence import MobilePresence.MobilePresences +import ColorTemperature.ColorTemperature +import ColorTemperature.ColorTemperatures +import Button.Button +import Button.Buttons +import ThreeAxis.ThreeAxis +import ThreeAxis.ThreeAxises +import Momentary.Momentary +import Momentary.Momentaries import Timer.SimulatedTimer //GlobalVariables @@ -87,6 +95,7 @@ import Timer.SimulatedTimer //Global variables for files +@Field File globalObjects = new File("Extractor/globalObjects.groovy") @Field File extractedObjectsApp1 = new File("Extractor/App1/extractedObjectsApp1.groovy") @Field File extractedObjectsApp2 = new File("Extractor/App2/extractedObjectsApp2.groovy") @Field File extractedObjectsConstructorApp1 = new File("Extractor/App1/extractedObjectsConstructorApp1.groovy") @@ -95,6 +104,7 @@ import Timer.SimulatedTimer //Empty the files if (App == "App1") { + globalObjects.write("") extractedObjectsApp1.write("") extractedObjectsConstructorApp1.write("") } else if (App == "App2") { @@ -242,7 +252,7 @@ def timeToday(String time, Object timeZone) { @Field def sleepSensorObject0 @Field def sleepSensorObject1 @Field def sleepSensorObject2 -//Global Object for class sleep sensor! +//Global Object for class step sensor! @Field stepSensorObjects = 0 @Field def stepSensorObject0 @Field def stepSensorObject1 @@ -257,7 +267,7 @@ def timeToday(String time, Object timeZone) { @Field def temperatureMeasurementObject0 @Field def temperatureMeasurementObject1 @Field def temperatureMeasurementObject2 -//Global Object for class temperature measurement! +//Global Object for class water sensor! @Field waterSensorObjects = 0 @Field def waterSensorObject0 @Field def waterSensorObject1 @@ -267,12 +277,31 @@ def timeToday(String time, Object timeZone) { @Field def valveObject0 @Field def valveObject1 @Field def valveObject2 -//Global Object for class valve! +//Global Object for class mobile presence! @Field mobilePresenceObjects = 0 @Field def mobilePresenceObject0 @Field def mobilePresenceObject1 @Field def mobilePresenceObject2 - +//Global Object for class color temperature! +@Field colorTemperatureObjects = 0 +@Field def colorTemperatureObject0 +@Field def colorTemperatureObject1 +@Field def colorTemperatureObject2 +//Global Object for class button! +@Field buttonObjects = 0 +@Field def buttonObject0 +@Field def buttonObject1 +@Field def buttonObject2 +//Global Object for class three axis! +@Field threeAxisObjects = 0 +@Field def threeAxisObject0 +@Field def threeAxisObject1 +@Field def threeAxisObject2 +//Global Object for class momentary switch device! +@Field momentaryObjects = 0 +@Field def momentaryObject0 +@Field def momentaryObject1 +@Field def momentaryObject2 //Global variables @@ -349,8 +378,6 @@ def timeToday(String time, Object timeZone) { @Field boolVariable4 @Field boolVariable5 - - /////Input Methods///// //input "","" def input(String name, String type) { @@ -383,22 +410,32 @@ def input(LinkedHashMap metaData) { if (metaData.containsKey('options')) { println "Options: "+metaData['options'] } + def contains = 0 switch(metaData['type']) { case "capability.lock": + globalObjects.eachLine { line -> + if(line.contains("lockObject")){ + contains = 1 + } + } + + if (contains == 0) + globalObjects.append("@Field def lockObject = new Locks(sendEvent, 1, init)\n") + if (lockObjects == 0) { lockObject0 = metaData['name'] - this[lockObject0] = new Locks({}, 1) + this[lockObject0] = new Locks({}, 1, true) } else if (lockObjects == 1) { lockObject1 = metaData['name'] - this[lockObject1] = new Locks({}, 1) + this[lockObject1] = new Locks({}, 1, true) } else if (lockObjects == 2) { lockObject2 = metaData['name'] - this[lockObject2] = new Locks({}, 1) + this[lockObject2] = new Locks({}, 1, true) } lockObjects=lockObjects+1 - settings.put(metaData['name'], new Locks({}, 1)) + settings.put(metaData['name'], new Locks({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class lock!\n") @@ -411,20 +448,29 @@ def input(LinkedHashMap metaData) { } break case "capability.alarm": + globalObjects.eachLine { line -> + if(line.contains("alarmObject")){ + contains = 1 + } + } + + if (contains == 0) + globalObjects.append("@Field def alarmObject = new Alarms(sendEvent, 1, init)\n") + if (alarmObjects == 0) { alarmObject0 = metaData['name'] - this[alarmObject0] = new Alarms({}, 1) + this[alarmObject0] = new Alarms({}, 1, true) } else if (alarmObjects == 1) { alarmObject1 = metaData['name'] - this[alarmObject1] = new Alarms({}, 1) + this[alarmObject1] = new Alarms({}, 1, true) } else if (alarmObjects == 2) { alarmObject2 = metaData['name'] - this[alarmObject2] = new Alarms({}, 1) + this[alarmObject2] = new Alarms({}, 1, true) } alarmObjects=alarmObjects+1 - settings.put(metaData['name'], new Alarms({}, 1)) + settings.put(metaData['name'], new Alarms({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class alarm!\n") @@ -436,21 +482,65 @@ def input(LinkedHashMap metaData) { extractedObjectsConstructorApp2.append(metaData['name']+" = obj.alarmObject\n") } break + case "capability.button": + globalObjects.eachLine { line -> + if(line.contains("buttonObject")){ + contains = 1 + } + } + + if (contains == 0) + globalObjects.append("@Field def buttonObject = new Buttons(sendEvent, 1, init)\n") + + if (buttonObjects == 0) { + buttonObject0 = metaData['name'] + this[buttonObject0] = new Buttons({}, 1, true) + } else if (buttonObjects == 1) { + buttonObject1 = metaData['name'] + this[buttonObject1] = new Buttons({}, 1, true) + } else if (buttonObjects == 2) { + buttonObject2 = metaData['name'] + this[buttonObject2] = new Buttons({}, 1, true) + } + + buttonObjects=buttonObjects+1 + + settings.put(metaData['name'], new Buttons({}, 1, true)) + + if (App == "App1") { + extractedObjectsApp1.append("//Object for class Button!\n") + extractedObjectsApp1.append("def "+metaData['name']+"\n") + extractedObjectsConstructorApp1.append(metaData['name']+" = obj.buttonObject\n") + } else { + extractedObjectsApp2.append("//Object for class Button!\n") + extractedObjectsApp2.append("def "+metaData['name']+"\n") + extractedObjectsConstructorApp2.append(metaData['name']+" = obj.buttonObject\n") + } + break case "capability.battery": + globalObjects.eachLine { line -> + if(line.contains("batteryObject")){ + contains = 1 + } + } + + if (contains == 0) + globalObjects.append("@Field def batteryObject = new Batteries(sendEvent, 1, init)\n") + if (batteryObjects == 0) { batteryObject0 = metaData['name'] - this[batteryObject0] = new Batteries({}, 1) + this[batteryObject0] = new Batteries({}, 1, true) } else if (batteryObjects == 1) { batteryObject1 = metaData['name'] - this[batteryObject1] = new Batteries({}, 1) + this[batteryObject1] = new Batteries({}, 1, true) } else if (batteryObjects == 2) { batteryObject2 = metaData['name'] - this[batteryObject2] = new Batteries({}, 1) + this[batteryObject2] = new Batteries({}, 1, true) } batteryObjects=batteryObjects+1 - settings.put(metaData['name'], new Batteries({}, 1)) + settings.put(metaData['name'], new Batteries({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class Battery!\n") @@ -463,20 +553,29 @@ def input(LinkedHashMap metaData) { } break case "capability.beacon": + globalObjects.eachLine { line -> + if(line.contains("beaconSensorObject")){ + contains = 1 + } + } + + if (contains == 0) + globalObjects.append("@Field def beaconSensorObject = new BeaconSensors(sendEvent, 1, init)\n") + if (beaconSensorObjects == 0) { beaconSensorObject0 = metaData['name'] - this[beaconSensorObject0] = new BeaconSensors({}, 1) + this[beaconSensorObject0] = new BeaconSensors({}, 1, true) } else if (beaconSensorObjects == 1) { beaconSensorObject1 = metaData['name'] - this[beaconSensorObject1] = new BeaconSensors({}, 1) + this[beaconSensorObject1] = new BeaconSensors({}, 1, true) } else if (beaconSensorObjects == 2) { beaconSensorObject2 = metaData['name'] - this[beaconSensorObject2] = new BeaconSensors({}, 1) + this[beaconSensorObject2] = new BeaconSensors({}, 1, true) } beaconSensorObjects=beaconSensorObjects+1 - settings.put(metaData['name'], new BeaconSensors({}, 1)) + settings.put(metaData['name'], new BeaconSensors({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class beacon sensor!\n") @@ -489,20 +588,29 @@ def input(LinkedHashMap metaData) { } break case "capability.carbonMonoxideDetector": + globalObjects.eachLine { line -> + if(line.contains("carbonMonoxideDetectorObject")){ + contains = 1 + } + } + + if (contains == 0) + globalObjects.append("@Field def carbonMonoxideDetectorObject = new CarbonMonoxideDetectors(sendEvent, 1, init)\n") + if (carbonMonoxideDetectorObjects == 0) { carbonMonoxideDetectorObject0 = metaData['name'] - this[carbonMonoxideDetectorObject0] = new CarbonMonoxideDetectors({}, 1) + this[carbonMonoxideDetectorObject0] = new CarbonMonoxideDetectors({}, 1, true) } else if (carbonMonoxideDetectorObjects == 1) { carbonMonoxideDetectorObject1 = metaData['name'] - this[carbonMonoxideDetectorObject1] = new CarbonMonoxideDetectors({}, 1) + this[carbonMonoxideDetectorObject1] = new CarbonMonoxideDetectors({}, 1, true) } else if (carbonMonoxideDetectorObjects == 2) { carbonMonoxideDetectorObject2 = metaData['name'] - this[carbonMonoxideDetectorObject2] = new CarbonMonoxideDetectors({}, 1) + this[carbonMonoxideDetectorObject2] = new CarbonMonoxideDetectors({}, 1, true) } carbonMonoxideDetectorObjects=carbonMonoxideDetectorObjects+1 - settings.put(metaData['name'], new CarbonMonoxideDetectors({}, 1)) + settings.put(metaData['name'], new CarbonMonoxideDetectors({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class carbon monoxide detector!\n") @@ -514,21 +622,65 @@ def input(LinkedHashMap metaData) { extractedObjectsConstructorApp2.append(metaData['name']+" = obj.carbonMonoxideDetectorObject\n") } break + case "capability.colorTemperature": + globalObjects.eachLine { line -> + if(line.contains("colorTemperatureObject")){ + contains = 1 + } + } + + if (contains == 0) + globalObjects.append("@Field def colorTemperatureObject = new ColorTemperatures(sendEvent, 1, init)\n") + + if (colorTemperatureObjects == 0) { + colorTemperatureObject0 = metaData['name'] + this[colorTemperatureObject0] = new ColorTemperatures({}, 1, true) + } else if (colorTemperatureObjects == 1) { + colorTemperatureObject1 = metaData['name'] + this[colorTemperatureObject1] = new ColorTemperatures({}, 1, true) + } else if (colorTemperatureObjects == 2) { + colorTemperatureObject2 = metaData['name'] + this[colorTemperatureObject2] = new ColorTemperatures({}, 1, true) + } + + colorTemperatureObjects=colorTemperatureObjects+1 + + settings.put(metaData['name'], new ColorTemperatures({}, 1, true)) + + if (App == "App1") { + extractedObjectsApp1.append("//Object for class color temperature!\n") + extractedObjectsApp1.append("def "+metaData['name']+"\n") + extractedObjectsConstructorApp1.append(metaData['name']+" = obj.colorTemperatureObject\n") + } else { + extractedObjectsApp2.append("//Object for class color control!\n") + extractedObjectsApp2.append("def "+metaData['name']+"\n") + extractedObjectsConstructorApp2.append(metaData['name']+" = obj.colorTemperatureObject\n") + } + break case "capability.colorControl": + globalObjects.eachLine { line -> + if(line.contains("colorControlObject")){ + contains = 1 + } + } + + if (contains == 0) + globalObjects.append("@Field def colorControlObject = new ColorControls(sendEvent, 1, init)\n") + if (colorControlObjects == 0) { colorControlObject0 = metaData['name'] - this[colorControlObject0] = new ColorControls({}, 1) + this[colorControlObject0] = new ColorControls({}, 1, true) } else if (colorControlObjects == 1) { colorControlObject1 = metaData['name'] - this[colorControlObject1] = new ColorControls({}, 1) + this[colorControlObject1] = new ColorControls({}, 1, true) } else if (colorControlObjects == 2) { colorControlObject2 = metaData['name'] - this[colorControlObject2] = new ColorControls({}, 1) + this[colorControlObject2] = new ColorControls({}, 1, true) } colorControlObjects=colorControlObjects+1 - settings.put(metaData['name'], new ColorControls({}, 1)) + settings.put(metaData['name'], new ColorControls({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class color control!\n") @@ -541,20 +693,29 @@ def input(LinkedHashMap metaData) { } break case "capability.contactSensor": + globalObjects.eachLine { line -> + if(line.contains("contactObject")){ + contains = 1 + } + } + + if (contains == 0) + globalObjects.append("@Field def contactObject = new ContactSensors(sendEvent, 1, init)\n") + if (contactObjects == 0) { contactObject0 = metaData['name'] - this[contactObject0] = new ContactSensors({}, 1) + this[contactObject0] = new ContactSensors({}, 1, true) } else if (contactObjects == 1) { contactObject1 = metaData['name'] - this[contactObject1] = new ContactSensors({}, 1) + this[contactObject1] = new ContactSensors({}, 1, true) } else if (contactObjects == 2) { contactObject2 = metaData['name'] - this[contactObject2] = new ContactSensors({}, 1) + this[contactObject2] = new ContactSensors({}, 1, true) } contactObjects=contactObjects+1 - settings.put(metaData['name'], new ContactSensors({}, 1)) + settings.put(metaData['name'], new ContactSensors({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class contactSensor!\n") @@ -566,21 +727,65 @@ def input(LinkedHashMap metaData) { extractedObjectsConstructorApp2.append(metaData['name']+" = obj.contactObject\n") } break + case "capability.threeAxis": + globalObjects.eachLine { line -> + if(line.contains("threeAxisObject")){ + contains = 1 + } + } + + if (contains == 0) + globalObjects.append("@Field def threeAxisObject = new ThreeAxises(sendEvent, 1, init)\n") + + if (threeAxisObjects == 0) { + threeAxisObject0 = metaData['name'] + this[threeAxisObject0] = new ThreeAxises({}, 1, true) + } else if (threeAxisObjects == 1) { + threeAxisObject1 = metaData['name'] + this[threeAxisObject1] = new ThreeAxises({}, 1, true) + } else if (threeAxisObjects == 2) { + threeAxisObject2 = metaData['name'] + this[threeAxisObject2] = new ThreeAxises({}, 1, true) + } + + threeAxisObjects=threeAxisObjects+1 + + settings.put(metaData['name'], new ThreeAxises({}, 1, true)) + + if (App == "App1") { + extractedObjectsApp1.append("//Object for class three axis!\n") + extractedObjectsApp1.append("def "+metaData['name']+"\n") + extractedObjectsConstructorApp1.append(metaData['name']+" = obj.threeAxisObject\n") + } else { + extractedObjectsApp2.append("//Object for class three axis!\n") + extractedObjectsApp2.append("def "+metaData['name']+"\n") + extractedObjectsConstructorApp2.append(metaData['name']+" = obj.threeAxisObject\n") + } + break case "capability.doorControl": + globalObjects.eachLine { line -> + if(line.contains("doorControlObject")){ + contains = 1 + } + } + + if (contains == 0) + globalObjects.append("@Field def doorControlObject = new DoorControls(sendEvent, 1, init)\n") + if (doorControlObjects == 0) { doorControlObject0 = metaData['name'] - this[doorControlObject0] = new DoorControls({}, 1) + this[doorControlObject0] = new DoorControls({}, 1, true) } else if (doorControlObjects == 1) { doorControlObject1 = metaData['name'] - this[doorControlObject1] = new DoorControls({}, 1) + this[doorControlObject1] = new DoorControls({}, 1, true) } else if (doorControlObjects == 2) { doorControlObject2 = metaData['name'] - this[doorControlObject2] = new DoorControls({}, 1) + this[doorControlObject2] = new DoorControls({}, 1, true) } doorControlObjects=doorControlObjects+1 - settings.put(metaData['name'], new DoorControls({}, 1)) + settings.put(metaData['name'], new DoorControls({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class door control!\n") @@ -593,20 +798,29 @@ def input(LinkedHashMap metaData) { } break case "capability.energyMeter": + globalObjects.eachLine { line -> + if(line.contains("energyMeterObject")){ + contains = 1 + } + } + + if (contains == 0) + globalObjects.append("@Field def energyMeterObject = new EnergyMeters(sendEvent, 1, init)\n") + if (energyMeterObjects == 0) { energyMeterObject0 = metaData['name'] - this[energyMeterObject0] = new EnergyMeters({}, 1) + this[energyMeterObject0] = new EnergyMeters({}, 1, true) } else if (energyMeterObjects == 1) { energyMeterObject1 = metaData['name'] - this[energyMeterObject1] = new EnergyMeters({}, 1) + this[energyMeterObject1] = new EnergyMeters({}, 1, true) } else if (energyMeterObjects == 2) { energyMeterObject2 = metaData['name'] - this[energyMeterObject2] = new EnergyMeters({}, 1) + this[energyMeterObject2] = new EnergyMeters({}, 1, true) } energyMeterObjects=energyMeterObjects+1 - settings.put(metaData['name'], new EnergyMeters({}, 1)) + settings.put(metaData['name'], new EnergyMeters({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class energy meter!\n") @@ -619,20 +833,29 @@ def input(LinkedHashMap metaData) { } break case "capability.illuminanceMeasurement": + globalObjects.eachLine { line -> + if(line.contains("illuminanceMeasurementObject")){ + contains = 1 + } + } + + if (contains == 0) + globalObjects.append("@Field def illuminanceMeasurementObject = new IlluminanceMeasurements(sendEvent, 1, init)\n") + if (illuminanceMeasurementObjects == 0) { illuminanceMeasurementObject0 = metaData['name'] - this[illuminanceMeasurementObject0] = new IlluminanceMeasurements({}, 1) + this[illuminanceMeasurementObject0] = new IlluminanceMeasurements({}, 1, true) } else if (illuminanceMeasurementObjects == 1) { illuminanceMeasurementObject1 = metaData['name'] - this[illuminanceMeasurementObject1] = new IlluminanceMeasurements({}, 1) + this[illuminanceMeasurementObject1] = new IlluminanceMeasurements({}, 1, true) } else if (illuminanceMeasurementObjects == 2) { illuminanceMeasurementObject2 = metaData['name'] - this[illuminanceMeasurementObject2] = new IlluminanceMeasurements({}, 1) + this[illuminanceMeasurementObject2] = new IlluminanceMeasurements({}, 1, true) } illuminanceMeasurementObjects=illuminanceMeasurementObjects+1 - settings.put(metaData['name'], new IlluminanceMeasurements({}, 1)) + settings.put(metaData['name'], new IlluminanceMeasurements({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class illuminance measurement!\n") @@ -645,20 +868,29 @@ def input(LinkedHashMap metaData) { } break case "capability.accelerationSensor": + globalObjects.eachLine { line -> + if(line.contains("accelerationSensorObject")){ + contains = 1 + } + } + + if (contains == 0) + globalObjects.append("@Field def accelerationSensorObject = new AccelerationSensors(sendEvent, 1, init)\n") + if (accelerationSensorObjects == 0) { accelerationSensorObject0 = metaData['name'] - this[accelerationSensorObject0] = new AccelerationSensors({}, 1) + this[accelerationSensorObject0] = new AccelerationSensors({}, 1, true) } else if (accelerationSensorObjects == 1) { accelerationSensorObject1 = metaData['name'] - this[accelerationSensorObject1] = new AccelerationSensors({}, 1) + this[accelerationSensorObject1] = new AccelerationSensors({}, 1, true) } else if (accelerationSensorObjects == 2) { accelerationSensorObject2 = metaData['name'] - this[accelerationSensorObject2] = new AccelerationSensors({}, 1) + this[accelerationSensorObject2] = new AccelerationSensors({}, 1, true) } accelerationSensorObjects=accelerationSensorObjects+1 - settings.put(metaData['name'], new AccelerationSensors({}, 1)) + settings.put(metaData['name'], new AccelerationSensors({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class Acceleration Sensor!\n") @@ -670,21 +902,65 @@ def input(LinkedHashMap metaData) { extractedObjectsConstructorApp2.append(metaData['name']+" = obj.accelerationSensorObject\n") } break + case "capability.momentary": + globalObjects.eachLine { line -> + if(line.contains("momentoryObject")){ + contains = 1 + } + } + + if (contains == 0) + globalObjects.append("@Field def momentaryObject = new Momentaries(sendEvent, 1)\n") + + if (momentaryObjects == 0) { + momentaryObject0 = metaData['name'] + this[momentaryObject0] = new Momentaries({}, 1) + } else if (momentaryObjects == 1) { + momentaryObject1 = metaData['name'] + this[momentaryObject1] = new Momentaries({}, 1) + } else if (momentaryObjects == 2) { + momentaryObject2 = metaData['name'] + this[momentaryObject2] = new Momentaries({}, 1) + } + + momentaryObjects=momentaryObjects+1 + + settings.put(metaData['name'], new Momentaries({}, 1)) + + if (App == "App1") { + extractedObjectsApp1.append("//Object for class momentory switch class!\n") + extractedObjectsApp1.append("def "+metaData['name']+"\n") + extractedObjectsConstructorApp1.append(metaData['name']+" = obj.momentaryObject\n") + } else { + extractedObjectsApp2.append("//Object for class momentory Sensor!\n") + extractedObjectsApp2.append("def "+metaData['name']+"\n") + extractedObjectsConstructorApp2.append(metaData['name']+" = obj.momentaryObject\n") + } + break case "capability.motionSensor": + globalObjects.eachLine { line -> + if(line.contains("motionSensorObject")){ + contains = 1 + } + } + + if (contains == 0) + globalObjects.append("@Field def motionSensorObject = new MotionSensors(sendEvent, 1, init)\n") + if (motionSensorObjects == 0) { motionSensorObject0 = metaData['name'] - this[motionSensorObject0] = new MotionSensors({}, 1) + this[motionSensorObject0] = new MotionSensors({}, 1, true) } else if (motionSensorObjects == 1) { motionSensorObject1 = metaData['name'] - this[motionSensorObject1] = new MotionSensors({}, 1) + this[motionSensorObject1] = new MotionSensors({}, 1, true) } else if (motionSensorObjects == 2) { motionSensorObject2 = metaData['name'] - this[motionSensorObject2] = new MotionSensors({}, 1) + this[motionSensorObject2] = new MotionSensors({}, 1, true) } motionSensorObjects=motionSensorObjects+1 - settings.put(metaData['name'], new MotionSensors({}, 1)) + settings.put(metaData['name'], new MotionSensors({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class Motion Sensor!\n") @@ -697,20 +973,29 @@ def input(LinkedHashMap metaData) { } break case "capability.musicPlayer": + globalObjects.eachLine { line -> + if(line.contains("musicPlayerObject")){ + contains = 1 + } + } + + if (contains == 0) + globalObjects.append("@Field def musicPlayerObject = new MusicPlayers(sendEvent, 1, init)\n") + if (musicPlayerObjects == 0) { musicPlayerObject0 = metaData['name'] - this[musicPlayerObject0] = new MusicPlayers({}, 1) + this[musicPlayerObject0] = new MusicPlayers({}, 1, true) } else if (musicPlayerObjects == 1) { musicPlayerObject1 = metaData['name'] - this[musicPlayerObject1] = new MusicPlayers({}, 1) + this[musicPlayerObject1] = new MusicPlayers({}, 1, true) } else if (musicPlayerObjects == 2) { musicPlayerObject2 = metaData['name'] - this[musicPlayerObject2] = new MusicPlayers({}, 1) + this[musicPlayerObject2] = new MusicPlayers({}, 1, true) } musicPlayerObjects=musicPlayerObjects+1 - settings.put(metaData['name'], new MusicPlayers({}, 1)) + settings.put(metaData['name'], new MusicPlayers({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class music player!\n") @@ -723,20 +1008,29 @@ def input(LinkedHashMap metaData) { } break case "capability.powerMeter": + globalObjects.eachLine { line -> + if(line.contains("powerMeterObject")){ + contains = 1 + } + } + + if (contains == 0) + globalObjects.append("@Field def powerMeterObject = new PowerMeters(sendEvent, 1, init)\n") + if (powerMeterObjects == 0) { powerMeterObject0 = metaData['name'] - this[powerMeterObject0] = new PowerMeters({}, 1) + this[powerMeterObject0] = new PowerMeters({}, 1, true) } else if (powerMeterObjects == 1) { powerMeterObject1 = metaData['name'] - this[powerMeterObject1] = new PowerMeters({}, 1) + this[powerMeterObject1] = new PowerMeters({}, 1, true) } else if (powerMeterObjects == 2) { powerMeterObject2 = metaData['name'] - this[powerMeterObject2] = new PowerMeters({}, 1) + this[powerMeterObject2] = new PowerMeters({}, 1, true) } powerMeterObjects=powerMeterObjects+1 - settings.put(metaData['name'], new PowerMeters({}, 1)) + settings.put(metaData['name'], new PowerMeters({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class power meter!\n") @@ -749,20 +1043,29 @@ def input(LinkedHashMap metaData) { } break case "capability.presenceSensor": + globalObjects.eachLine { line -> + if(line.contains("presenceSensorObject")){ + contains = 1 + } + } + + if (contains == 0) + globalObjects.append("@Field def presenceSensorObject = new PresenceSensors(sendEvent, 1, init)\n") + if (presenceSensorObjects == 0) { presenceSensorObject0 = metaData['name'] - this[presenceSensorObject0] = new PresenceSensors({}, 1) + this[presenceSensorObject0] = new PresenceSensors({}, 1, true) } else if (presenceSensorObjects == 1) { presenceSensorObject1 = metaData['name'] - this[presenceSensorObject1] = new PresenceSensors({}, 1) + this[presenceSensorObject1] = new PresenceSensors({}, 1, true) } else if (presenceSensorObjects == 2) { presenceSensorObject2 = metaData['name'] - this[presenceSensorObject2] = new PresenceSensors({}, 1) + this[presenceSensorObject2] = new PresenceSensors({}, 1, true) } presenceSensorObjects=presenceSensorObjects+1 - settings.put(metaData['name'], new PresenceSensors({}, 1)) + settings.put(metaData['name'], new PresenceSensors({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class presence sensor!\n") @@ -775,20 +1078,29 @@ def input(LinkedHashMap metaData) { } break case "capability.relativeHumidityMeasurement": + globalObjects.eachLine { line -> + if(line.contains("humidityMeasurementObject")){ + contains = 1 + } + } + + if (contains == 0) + globalObjects.append("@Field def humidityMeasurementObject = new RelativeHumidityMeasurements(sendEvent, 1, init)\n") + if (humidityMeasurementObjects == 0) { humidityMeasurementObject0 = metaData['name'] - this[humidityMeasurementObject0] = new RelativeHumidityMeasurements({}, 1) + this[humidityMeasurementObject0] = new RelativeHumidityMeasurements({}, 1, true) } else if (humidityMeasurementObjects == 1) { humidityMeasurementObject1 = metaData['name'] - this[humidityMeasurementObject1] = new RelativeHumidityMeasurements({}, 1) + this[humidityMeasurementObject1] = new RelativeHumidityMeasurements({}, 1, true) } else if (humidityMeasurementObjects == 2) { humidityMeasurementObject2 = metaData['name'] - this[humidityMeasurementObject2] = new RelativeHumidityMeasurements({}, 1) + this[humidityMeasurementObject2] = new RelativeHumidityMeasurements({}, 1, true) } humidityMeasurementObjects=humidityMeasurementObjects+1 - settings.put(metaData['name'], new RelativeHumidityMeasurements({}, 1)) + settings.put(metaData['name'], new RelativeHumidityMeasurements({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class humidity measurement!\n") @@ -801,20 +1113,29 @@ def input(LinkedHashMap metaData) { } break case "capability.relaySwitch": + globalObjects.eachLine { line -> + if(line.contains("relaySwitchObject")){ + contains = 1 + } + } + + if (contains == 0) + globalObjects.append("@Field def relaySwitchObject = new RelaySwitches(sendEvent, 1, init)\n") + if (relaySwitchObjects == 0) { relaySwitchObject0 = metaData['name'] - this[relaySwitchObject0] = new RelaySwitches({}, 1) + this[relaySwitchObject0] = new RelaySwitches({}, 1, true) } else if (relaySwitchObjects == 1) { relaySwitchObject1 = metaData['name'] - this[relaySwitchObject1] = new RelaySwitches({}, 1) + this[relaySwitchObject1] = new RelaySwitches({}, 1, true) } else if (relaySwitchObjects == 2) { relaySwitchObject2 = metaData['name'] - this[relaySwitchObject2] = new RelaySwitches({}, 1) + this[relaySwitchObject2] = new RelaySwitches({}, 1, true) } relaySwitchObjects=relaySwitchObjects+1 - settings.put(metaData['name'], new RelaySwitches({}, 1)) + settings.put(metaData['name'], new RelaySwitches({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class relay switch!\n") @@ -827,20 +1148,29 @@ def input(LinkedHashMap metaData) { } break case "capability.sleepSensor": + globalObjects.eachLine { line -> + if(line.contains("sleepSensorObject")){ + contains = 1 + } + } + + if (contains == 0) + globalObjects.append("@Field def sleepSensorObject = new SleepSensors(sendEvent, 1, init)\n") + if (sleepSensorObjects == 0) { sleepSensorObject0 = metaData['name'] - this[sleepSensorObject0] = new SleepSensors({}, 1) + this[sleepSensorObject0] = new SleepSensors({}, 1, true) } else if (sleepSensorObjects == 1) { sleepSensorObject1 = metaData['name'] - this[sleepSensorObject1] = new SleepSensors({}, 1) + this[sleepSensorObject1] = new SleepSensors({}, 1, true) } else if (sleepSensorObjects == 2) { sleepSensorObject2 = metaData['name'] - this[sleepSensorObject2] = new SleepSensors({}, 1) + this[sleepSensorObject2] = new SleepSensors({}, 1, true) } sleepSensorObjects=sleepSensorObjects+1 - settings.put(metaData['name'], new SleepSensors({}, 1)) + settings.put(metaData['name'], new SleepSensors({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class sleep sensor!\n") @@ -853,20 +1183,29 @@ def input(LinkedHashMap metaData) { } break case "capability.smokeDetector": + globalObjects.eachLine { line -> + if(line.contains("smokeDetectorObject")){ + contains = 1 + } + } + + if (contains == 0) + globalObjects.append("@Field def smokeDetectorObject = new SmokeDetectors(sendEvent, 1, init)\n") + if (smokeDetectorObjects == 0) { smokeDetectorObject0 = metaData['name'] - this[smokeDetectorObject0] = new SmokeDetectors({}, 1) + this[smokeDetectorObject0] = new SmokeDetectors({}, 1, true) } else if (smokeDetectorObjects == 1) { smokeDetectorObject1 = metaData['name'] - this[smokeDetectorObject1] = new SmokeDetectors({}, 1) + this[smokeDetectorObject1] = new SmokeDetectors({}, 1, true) } else if (smokeDetectorObjects == 2) { smokeDetectorObject2 = metaData['name'] - this[smokeDetectorObject2] = new SmokeDetectors({}, 1) + this[smokeDetectorObject2] = new SmokeDetectors({}, 1, true) } smokeDetectorObjects=smokeDetectorObjects+1 - settings.put(metaData['name'], new SmokeDetectors({}, 1)) + settings.put(metaData['name'], new SmokeDetectors({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class smoke detector!\n") @@ -879,20 +1218,29 @@ def input(LinkedHashMap metaData) { } break case "capability.stepSensor": + globalObjects.eachLine { line -> + if(line.contains("stepSensorObject")){ + contains = 1 + } + } + + if (contains == 0) + globalObjects.append("@Field def stepSensorObject = new StepSensors(sendEvent, 1, init)\n") + if (stepSensorObjects == 0) { stepSensorObject0 = metaData['name'] - this[stepSensorObject0] = new StepSensors({}, 1) + this[stepSensorObject0] = new StepSensors({}, 1, true) } else if (stepSensorObjects == 1) { stepSensorObject1 = metaData['name'] - this[stepSensorObject1] = new StepSensors({}, 1) + this[stepSensorObject1] = new StepSensors({}, 1, true) } else if (stepSensorObjects == 2) { stepSensorObject2 = metaData['name'] - this[stepSensorObject2] = new StepSensors({}, 1) + this[stepSensorObject2] = new StepSensors({}, 1, true) } stepSensorObjects=stepSensorObjects+1 - settings.put(metaData['name'], new StepSensors({}, 1)) + settings.put(metaData['name'], new StepSensors({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class step sensor!\n") @@ -904,21 +1252,30 @@ def input(LinkedHashMap metaData) { extractedObjectsConstructorApp2.append(metaData['name']+" = obj.stepSensorObject\n") } break - case "capability.switch": + case "capability.switch": + globalObjects.eachLine { line -> + if(line.contains("switchObject")){ + contains = 1 + } + } + + if (contains == 0) + globalObjects.append("@Field def switchObject = new Switches(sendEvent, 1, init)\n") + if (switchObjects == 0) { switchObject0 = metaData['name'] - this[switchObject0] = new Switches({}, 1) + this[switchObject0] = new Switches({}, 1, true) } else if (switchObjects == 1) { switchObject1 = metaData['name'] - this[switchObject1] = new Switches({}, 1) + this[switchObject1] = new Switches({}, 1, true) } else if (switchObjects == 2) { switchObject2 = metaData['name'] - this[switchObject2] = new Switches({}, 1) + this[switchObject2] = new Switches({}, 1, true) } switchObjects=switchObjects+1 - settings.put(metaData['name'], new Switches({}, 1)) + settings.put(metaData['name'], new Switches({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class switch!\n") @@ -931,20 +1288,29 @@ def input(LinkedHashMap metaData) { } break case "capability.switchLevel": + globalObjects.eachLine { line -> + if(line.contains("switchLevelObject")){ + contains = 1 + } + } + + if (contains == 0) + globalObjects.append("@Field def switchLevelObject = new SwitchLevels(sendEvent, 1, init)\n") + if (switchLevelObjects == 0) { switchLevelObject0 = metaData['name'] - this[switchLevelObject0] = new SwitchLevels({}, 1) + this[switchLevelObject0] = new SwitchLevels({}, 1, true) } else if (switchLevelObjects == 1) { switchLevelObject1 = metaData['name'] - this[switchLevelObject1] = new SwitchLevels({}, 1) + this[switchLevelObject1] = new SwitchLevels({}, 1, true) } else if (switchLevelObjects == 2) { switchLevelObject2 = metaData['name'] - this[switchLevelObject2] = new SwitchLevels({}, 1) + this[switchLevelObject2] = new SwitchLevels({}, 1, true) } switchLevelObjects=switchLevelObjects+1 - settings.put(metaData['name'], new SwitchLevels({}, 1)) + settings.put(metaData['name'], new SwitchLevels({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class switch level!\n") @@ -957,20 +1323,29 @@ def input(LinkedHashMap metaData) { } break case "capability.temperatureMeasurement": + globalObjects.eachLine { line -> + if(line.contains("temperatureMeasurementObject")){ + contains = 1 + } + } + + if (contains == 0) + globalObjects.append("@Field def temperatureMeasurementObject = new TemperatureMeasurements(sendEvent, 1, init)\n") + if (temperatureMeasurementObjects == 0) { temperatureMeasurementObject0 = metaData['name'] - this[temperatureMeasurementObject0] = new TemperatureMeasurements({}, 1) + this[temperatureMeasurementObject0] = new TemperatureMeasurements({}, 1, true) } else if (temperatureMeasurementObjects == 1) { temperatureMeasurementObject1 = metaData['name'] - this[temperatureMeasurementObject1] = new TemperatureMeasurements({}, 1) + this[temperatureMeasurementObject1] = new TemperatureMeasurements({}, 1, true) } else if (temperatureMeasurementObjects == 2) { temperatureMeasurementObject2 = metaData['name'] - this[temperatureMeasurementObject2] = new TemperatureMeasurements({}, 1) + this[temperatureMeasurementObject2] = new TemperatureMeasurements({}, 1, true) } temperatureMeasurementObjects=temperatureMeasurementObjects+1 - settings.put(metaData['name'], new TemperatureMeasurements({}, 1)) + settings.put(metaData['name'], new TemperatureMeasurements({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class temperature measurement!\n") @@ -983,20 +1358,29 @@ def input(LinkedHashMap metaData) { } break case "capability.thermostat": + globalObjects.eachLine { line -> + if(line.contains("thermostatObject")){ + contains = 1 + } + } + + if (contains == 0) + globalObjects.append("@Field def thermostatObject = new Thermostats(sendEvent, 1, init)\n") + if (thermostatObjects == 0) { thermostatObject0 = metaData['name'] - this[thermostatObject0] = new Thermostats({}, 1) + this[thermostatObject0] = new Thermostats({}, 1, true) } else if (thermostatObjects == 1) { thermostatObject1 = metaData['name'] - this[thermostatObject1] = new Thermostats({}, 1) + this[thermostatObject1] = new Thermostats({}, 1, true) } else if (thermostatObjects == 2) { thermostatObject2 = metaData['name'] - this[thermostatObject2] = new Thermostats({}, 1) + this[thermostatObject2] = new Thermostats({}, 1, true) } thermostatObjects=thermostatObjects+1 - settings.put(metaData['name'], new Thermostats({}, 1)) + settings.put(metaData['name'], new Thermostats({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class thermostat!\n") @@ -1009,20 +1393,29 @@ def input(LinkedHashMap metaData) { } break case "capability.valve": + globalObjects.eachLine { line -> + if(line.contains("valveObject")){ + contains = 1 + } + } + + if (contains == 0) + globalObjects.append("@Field def valveObject = new Valves(sendEvent, 1, init)\n") + if (valveObjects == 0) { valveObject0 = metaData['name'] - this[valveObject0] = new Valves({}, 1) + this[valveObject0] = new Valves({}, 1, true) } else if (valveObjects == 1) { valveObject1 = metaData['name'] - this[valveObject1] = new Valves({}, 1) + this[valveObject1] = new Valves({}, 1, true) } else if (valveObjects == 2) { valveObject2 = metaData['name'] - this[valveObject2] = new Valves({}, 1) + this[valveObject2] = new Valves({}, 1, true) } valveObjects=valveObjects+1 - settings.put(metaData['name'], new Valves({}, 1)) + settings.put(metaData['name'], new Valves({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class valve!\n") @@ -1035,20 +1428,29 @@ def input(LinkedHashMap metaData) { } break case "capability.speechSynthesis": + globalObjects.eachLine { line -> + if(line.contains("speechSynthesisObject")){ + contains = 1 + } + } + + if (contains == 0) + globalObjects.append("@Field def speechSynthesisObject = new SpeechSynthesises(sendEvent, 1, init)\n") + if (speechSynthesisObjects == 0) { speechSynthesisObject0 = metaData['name'] - this[speechSynthesisObject0] = new SpeechSynthesises({}, 1) + this[speechSynthesisObject0] = new SpeechSynthesises({}, 1, true) } else if (speechSynthesisObjects == 1) { speechSynthesisObject1 = metaData['name'] - this[speechSynthesisObject1] = new SpeechSynthesises({}, 1) + this[speechSynthesisObject1] = new SpeechSynthesises({}, 1, true) } else if (speechSynthesisObjects == 2) { speechSynthesisObject2 = metaData['name'] - this[speechSynthesisObject2] = new SpeechSynthesises({}, 1) + this[speechSynthesisObject2] = new SpeechSynthesises({}, 1, true) } speechSynthesisObjects=speechSynthesisObjects+1 - settings.put(metaData['name'], new SpeechSynthesises({}, 1)) + settings.put(metaData['name'], new SpeechSynthesises({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class speech synthesis!\n") @@ -1061,20 +1463,29 @@ def input(LinkedHashMap metaData) { } break case "capability.waterSensor": + globalObjects.eachLine { line -> + if(line.contains("waterSensorObject")){ + contains = 1 + } + } + + if (contains == 0) + globalObjects.append("@Field def waterSensorObject = new WaterSensors(sendEvent, 1, init)\n") + if (waterSensorObjects == 0) { waterSensorObject0 = metaData['name'] - this[waterSensorObject0] = new WaterSensors({}, 1) + this[waterSensorObject0] = new WaterSensors({}, 1, true) } else if (waterSensorObjects == 1) { waterSensorObject1 = metaData['name'] - this[waterSensorObject1] = new WaterSensors({}, 1) + this[waterSensorObject1] = new WaterSensors({}, 1, true) } else if (waterSensorObjects == 2) { waterSensorObject2 = metaData['name'] - this[waterSensorObject2] = new WaterSensors({}, 1) + this[waterSensorObject2] = new WaterSensors({}, 1, true) } waterSensorObjects=waterSensorObjects+1 - settings.put(metaData['name'], new WaterSensors({}, 1)) + settings.put(metaData['name'], new WaterSensors({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class water sensor!\n") @@ -1087,6 +1498,15 @@ def input(LinkedHashMap metaData) { } break case "capability.touchSensor": + globalObjects.eachLine { line -> + if(line.contains("touchSensorObject")){ + contains = 1 + } + } + + if (contains == 0) + globalObjects.append("@Field def touchSensorObject = new NfcTouch(sendEvent, 1)\n") + if (touchSensorObjects == 0) { touchSensorObject0 = metaData['name'] this[touchSensorObject0] = new NfcTouch({}, 1) @@ -1113,20 +1533,29 @@ def input(LinkedHashMap metaData) { } break case "capability.imageCapture": + globalObjects.eachLine { line -> + if(line.contains("imageCaptureObject")){ + contains = 1 + } + } + + if (contains == 0) + globalObjects.append("@Field def imageCaptureObject = new ImageCaptures(sendEvent, 1, init)\n") + if (imageCaptureObjects == 0) { imageCaptureObject0 = metaData['name'] - this[imageCaptureObject0] = new ImageCaptures({}, 1) + this[imageCaptureObject0] = new ImageCaptures({}, 1, true) } else if (imageCaptureObjects == 1) { imageCaptureObject1 = metaData['name'] - this[imageCaptureObject1] = new ImageCaptures({}, 1) + this[imageCaptureObject1] = new ImageCaptures({}, 1, true) } else if (imageCaptureObjects == 2) { imageCaptureObject2 = metaData['name'] - this[imageCaptureObject2] = new ImageCaptures({}, 1) + this[imageCaptureObject2] = new ImageCaptures({}, 1, true) } imageCaptureObjects=imageCaptureObjects+1 - settings.put(metaData['name'], new ImageCaptures({}, 1)) + settings.put(metaData['name'], new ImageCaptures({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class Image Capture!\n") @@ -1139,6 +1568,15 @@ def input(LinkedHashMap metaData) { } break case "device.mobilePresence": + globalObjects.eachLine { line -> + if(line.contains("mobilePresenceObject")){ + contains = 1 + } + } + + if (contains == 0) + globalObjects.append("@Field def mobilePresenceObject = new MobilePresences(sendEvent, 1)\n") + if (mobilePresenceObjects == 0) { mobilePresenceObject0 = metaData['name'] this[mobilePresenceObject0] = new MobilePresences({}, 1) @@ -1165,6 +1603,14 @@ def input(LinkedHashMap metaData) { } break case "device.aeonKeyFob": + globalObjects.eachLine { line -> + if(line.contains("aeonKeyFobObject")){ + contains = 1 + } + } + if (contains == 0) + globalObjects.append("@Field def aeonKeyFobObject = new AeonKeyFobs(sendEvent, 1)\n") + if (aeonKeyFobObjects == 0) { aeonKeyFobObject0 = metaData['name'] this[aeonKeyFobObject0] = new AeonKeyFobs({}, 1) @@ -1191,9 +1637,9 @@ def input(LinkedHashMap metaData) { } break case "mode": - def randomVariable = Math.abs(new Random().nextInt() % 3) + //def randomVariable = Math.abs(new Random().nextInt() % 3) def modes = ["away", "home", "night"] - def userInput = modes[randomVariable] + def userInput = modes[1] if (modeVariables == 0) { mode0 = metaData['name'] @@ -1232,8 +1678,9 @@ def input(LinkedHashMap metaData) { } break case "decimal": - def userInput = Math.abs(new Random().nextInt() % 60) + 40 - + //def userInput = Math.abs(new Random().nextInt() % 60) + 40 + def userInput = 50 + if (decimalVariables == 0) { decimal0 = metaData['name'] this[decimal0] = userInput @@ -1271,7 +1718,7 @@ def input(LinkedHashMap metaData) { break case "text": def userInput = "This is just a text!" - + if (textVariables == 0) { text0 = metaData['name'] this[text0] = userInput @@ -1309,8 +1756,9 @@ def input(LinkedHashMap metaData) { } break case "number": - def userInput = Math.abs(new Random().nextInt() % 60) + 40 - + //def userInput = Math.abs(new Random().nextInt() % 60) + 40 + def userInput = 50 + if (numberVariables == 0) { number0 = metaData['name'] this[number0] = userInput @@ -1431,9 +1879,50 @@ def input(LinkedHashMap metaData) { extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n") } break + case "boolean": + //def userInput = Math.abs(new Random().nextInt() % 2) + def userInput = true + + if (boolVariables == 0) { + bool0 = metaData['name'] + this[bool0] = userInput + } else if (boolVariables == 1) { + bool1 = metaData['name'] + this[bool1] = userInput + } else if (boolVariables == 2) { + bool2 = metaData['name'] + this[bool2] = userInput + } else if (boolVariables == 3) { + bool3 = metaData['name'] + this[bool3] = userInput + } else if (boolVariables == 4) { + bool4 = metaData['name'] + this[bool4] = userInput + } else if (boolVariables == 5) { + bool5 = metaData['name'] + this[bool5] = userInput + } + + if (boolVariables != 5) + boolVariables=boolVariables+1 + else + boolVariables=0 + + + settings.put(metaData['name'], metaData['name']) + + if (App == "App1") { + extractedObjectsApp1.append("//Global variable for boolean!\n") + extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n") + } else { + extractedObjectsApp2.append("//Global variable for boolean!\n") + extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n") + } + break case "bool": - def userInput = Math.abs(new Random().nextInt() % 2) - + //def userInput = Math.abs(new Random().nextInt() % 2) + def userInput = true + if (boolVariables == 0) { bool0 = metaData['name'] this[bool0] = userInput @@ -1611,9 +2100,27 @@ def preferences(Closure inputData) { else extractedObjectsConstructorApp2.append("END: \"END\"]\n") } + def line + File GlobalVariablesBothApps = new File("GlobalVariables/GlobalVariablesBothApps.groovy") + GlobalVariablesBothApps.write("") + GlobalVariablesBothApps.append("//Creating Global variables for both apps\n") + GlobalVariablesBothApps.append("@Field def sendEvent = {eventDataMap -> eventHandler(eventDataMap)}\n") + GlobalVariablesBothApps.append("@Field def locationObject = new LocationVar(sendEvent)\n") + GlobalVariablesBothApps.append("@Field def appObject = new Touched(sendEvent, 0)\n") + + globalObjects.withReader { reader -> + while ((line = reader.readLine()) != null) { + GlobalVariablesBothApps.append(line) + GlobalVariablesBothApps.append("\n") + } + } } } +def image(String data) { + println("//IGNORE--some image//") +} + def page(LinkedHashMap metaData, Closure inputData) { if (metaData.containsKey('name')) println(metaData['name']) @@ -1641,6 +2148,10 @@ def paragraph(String paragraphText) { println(paragraphText) } +def paragraph(LinkedHashMap metaData, String paragraphText) { + println(paragraphText) +} + def section(String title, Closure inputData) { println(title) find(inputData) //Run the closure to extract inputMethods