import Location.Phrase
import appTouch.Touched
import NfcTouch.NfcTouch
+import AeonKeyFob.AeonKeyFob
+import AeonKeyFob.AeonKeyFobs
+import MusicPlayer.MusicPlayer
+import MusicPlayer.MusicPlayers
+import MotionSensor.MotionSensor
+import MotionSensor.MotionSensors
+import ImageCapture.ImageCapture
+import ImageCapture.ImageCaptures
+import SmokeDetector.SmokeDetector
+import SmokeDetector.SmokeDetectors
+import Alarm.Alarm
+import Alarm.Alarms
+import SpeechSynthesis.SpeechSynthesis
+import SpeechSynthesis.SpeechSynthesises
+import AccelerationSensor.AccelerationSensor
+import AccelerationSensor.AccelerationSensors
+import Battery.Battery
+import Battery.Batteries
+import BeaconSensor.BeaconSensor
+import BeaconSensor.BeaconSensors
+import CarbonMonoxideDetector.CarbonMonoxideDetector
+import CarbonMonoxideDetector.CarbonMonoxideDetectors
+import ColorControl.ColorControl
+import ColorControl.ColorControls
+import EnergyMeter.EnergyMeter
+import EnergyMeter.EnergyMeters
import Timer.SimulatedTimer
-
-@Field App //Default
+//GlobalVariables
+@Field def location = new LocationVar()
+//Settings variable defined to settings on purpose
+@Field def settings = [app: "app"]
+//Global variable for state[mode]
+@Field def state = [home:[],away:[],night:[]]
+//Create a global logger object for methods
+@Field def log = new Logger()
+//Create a global variable for optional property
+@Field def optional = false //by default for now
//Global variables for files
-
//Global objects
//Global Object for class Touch Sensor!
-@Field def touchSensorObject
+@Field touchSensorObjects = 0
+@Field def touchSensorObject0
+@Field def touchSensorObject1
+@Field def touchSensorObject2
//Global Object for class switch!
-@Field def switchObject
+@Field switchObjects = 0
+@Field def switchObject0
+@Field def switchObject1
+@Field def switchObject2
//Global Object for class lock!
-@Field def lockObject
+@Field lockObjects = 0
+@Field def lockObject0
+@Field def lockObject1
+@Field def lockObject2
//Global Object for class door control!
-@Field def doorControlObject
+@Field doorControlObjects = 0
+@Field def doorControlObject0
+@Field def doorControlObject1
+@Field def doorControlObject2
//Global Object for class contact sensor!
-@Field def contactObject
+@Field contactObjects = 0
+@Field def contactObject0
+@Field def contactObject1
+@Field def contactObject2
//Global Object for class presence sensor!
-@Field def presenceSensorObject
+@Field presenceSensorObjects = 0
+@Field def presenceSensorObject0
+@Field def presenceSensorObject1
+@Field def presenceSensorObject2
//Global Object for class thermostat!
-@Field def thermostatObject
+@Field thermostatObjects = 0
+@Field def thermostatObject0
+@Field def thermostatObject1
+@Field def thermostatObject2
+//Global Object for class music player!
+@Field musicPlayerObjects = 0
+@Field def musicPlayerObject0
+@Field def musicPlayerObject1
+@Field def musicPlayerObject2
+//Global Object for class aeon key fob!
+@Field aeonKeyFobObjects = 0
+@Field def aeonKeyFobObject0
+@Field def aeonKeyFobObject1
+@Field def aeonKeyFobObject2
+//Global Object for class motion sensor!
+@Field motionSensorObjects = 0
+@Field def motionSensorObject0
+@Field def motionSensorObject1
+@Field def motionSensorObject2
+//Global Object for class image capture!
+@Field imageCaptureObjects = 0
+@Field def imageCaptureObject0
+@Field def imageCaptureObject1
+@Field def imageCaptureObject2
+//Global Object for class smoke detector!
+@Field smokeDetectorObjects = 0
+@Field def smokeDetectorObject0
+@Field def smokeDetectorObject1
+@Field def smokeDetectorObject2
+//Global Object for class alarm!
+@Field alarmObjects = 0
+@Field def alarmObject0
+@Field def alarmObject1
+@Field def alarmObject2
+//Global Object for class speech synthesis!
+@Field speechSynthesisObjects = 0
+@Field def speechSynthesisObject0
+@Field def speechSynthesisObject1
+@Field def speechSynthesisObject2
+//Global Object for class acceleration sensor!
+@Field accelerationSensorObjects = 0
+@Field def accelerationSensorObject0
+@Field def accelerationSensorObject1
+@Field def accelerationSensorObject2
+//Global Object for class battery!
+@Field batteryObjects = 0
+@Field def batteryObject0
+@Field def batteryObject1
+@Field def batteryObject2
+//Global Object for class beacon sensor!
+@Field beaconSensorObjects = 0
+@Field def beaconSensorObject0
+@Field def beaconSensorObject1
+@Field def beaconSensorObject2
+//Global Object for class carbon monoxide detector!
+@Field carbonMonoxideDetectorObjects = 0
+@Field def carbonMonoxideDetectorObject0
+@Field def carbonMonoxideDetectorObject1
+@Field def carbonMonoxideDetectorObject2
+//Global Object for class color control!
+@Field colorControlObjects = 0
+@Field def colorControlObject0
+@Field def colorControlObject1
+@Field def colorControlObject2
+//Global Object for class energy meter!
+@Field energyMeterObjects = 0
+@Field def energyMeterObject0
+@Field def energyMeterObject1
+@Field def energyMeterObject2
+
//Global variables
@Field number3
@Field number4
@Field number5
+//For decimal
+@Field decimalVariables = 0
+@Field decimal0
+@Field decimal1
+@Field decimal2
+@Field decimal3
+@Field decimal4
+@Field decimal5
//For time
@Field timeVariables = 0
@Field time0
@Field enum3
@Field enum4
@Field enum5
-//For phone
-@Field phoneVariables = 0
-@Field phone0
-@Field phone1
-@Field phone2
-@Field phone3
-@Field phone4
-@Field phone5
-//For contact
-@Field contactVariables = 0
-@Field contact0
-@Field contact1
-@Field contact2
-@Field contact3
-@Field contact4
-@Field contact5
-
-
-
-/////Input Methods/////
-//input "",""
-def input(String name, String type) {
- switch(type) {
- case "capability.lock":
- lockObject = name
- this[lockObject] = new Locks({}, 1)
- if (App == "App1") {
- extractedObjectsApp1.append("//Object for class lock!\n")
- extractedObjectsApp1.append("def "+name+"\n")
- extractedObjectsConstructorApp1.append(name+" = obj.lockObject\n")
- } else {
- extractedObjectsApp2.append("//Object for class lock!\n")
- extractedObjectsApp2.append("def "+name+"\n")
- extractedObjectsConstructorApp2.append(name+" = obj.lockObject\n")
- }
- break
- case "capability.alarm":
- break
- case "capability.battery":
- break
- case "capability.beacon":
- break
- case "capability.carbonMonoxideDetector":
- break
- case "capability.colorControl":
- break
- case "capability.contactSensor":
- contactObject = name
- this[contactObject] = new ContactSensors({}, 1)
- if (App == "App1") {
- extractedObjectsApp1.append("//Object for class contactSensor!\n")
- extractedObjectsApp1.append("def "+name+"\n")
- extractedObjectsConstructorApp1.append(name+" = obj.contactObject\n")
- } else {
- extractedObjectsApp2.append("//Object for class contactSensor!\n")
- extractedObjectsApp2.append("def "+name+"\n")
- extractedObjectsConstructorApp2.append(name+" = obj.contactObject\n")
- }
- break
- case "capability.doorControl":
- doorControlObject = name
- this[doorControlObject] = new DoorControls({}, 1)
- if (App == "App1") {
- extractedObjectsApp1.append("//Object for class door control!\n")
- extractedObjectsApp1.append("def "+name+"\n")
- extractedObjectsConstructorApp1.append(name+" = obj.doorControlObject\n")
- } else {
- extractedObjectsApp2.append("//Object for class door control!\n")
- extractedObjectsApp2.append("def "+name+"\n")
- extractedObjectsConstructorApp2.append(name+" = obj.doorControlObject\n")
- }
- break
- case "capability.energyMeter":
- break
- case "capability.illuminanceMeasurement":
- break
- case "capability.accelerationSensor":
- break
- case "capability.motionSensor":
- break
- case "capability.musicPlayer":
- break
- case "capability.powerMeter":
- break
- case "capability.presenceSensor":
- presenceSensorObject = name
- this[presenceSensorObject] = new PresenceSensors({}, 1)
- if (App == "App1") {
- extractedObjectsApp1.append("//Object for class presence sensor!\n")
- extractedObjectsApp1.append("def "+name+"\n")
- extractedObjectsConstructorApp1.append(name+" = obj.presenceSensorObject\n")
- } else {
- extractedObjectsApp2.append("//Object for class presence sensor!\n")
- extractedObjectsApp2.append("def "+name+"\n")
- extractedObjectsConstructorApp2.append(name+" = obj.presenceSensorObject\n")
- }
- break
- case "capability.relativeHumidityMeasurement":
- break
- case "capability.relaySwitch":
- break
- case "capability.sleepSensor":
- break
- case "capability.smokeDetector":
- break
- case "capability.stepSensor":
- break
- case "capability.switch":
- switchObject = name
- this[switchObject] = new Switches({}, 1)
- if (App == "App1") {
- extractedObjectsApp1.append("//Object for class switch!\n")
- extractedObjectsApp1.append("def "+name+"\n")
- extractedObjectsConstructorApp1.append(name+" = obj.switchObject\n")
- } else {
- extractedObjectsApp2.append("//Object for class switch!\n")
- extractedObjectsApp2.append("def "+name+"\n")
- extractedObjectsConstructorApp2.append(name+" = obj.switchObject\n")
- }
- break
- case "capability.switchLevel":
- break
- case "capability.temperatureMeasurement":
- break
- case "capability.thermostat":
- thermostatObject = name
- this[thermostatObject] = new Thermostats({}, 1)
- if (App == "App1") {
- extractedObjectsApp1.append("//Object for class thermostat!\n")
- extractedObjectsApp1.append("def "+name+"\n")
- extractedObjectsConstructorApp1.append(name+" = obj.thermostatObject\n")
- } else {
- extractedObjectsApp2.append("//Object for class thermostat!\n")
- extractedObjectsApp2.append("def "+name+"\n")
- extractedObjectsConstructorApp2.append(name+" = obj.thermostatObject\n")
- }
- break
- case "capability.valve":
- break
- case "capability.waterSensor":
- break
- case "capability.touchSensor":
- touchSensorObject = name
- this[touchSensorObject] = new NfcTouch({}, 1)
- if (App == "App1") {
- extractedObjectsApp1.append("//Object for class Touch Sensor!\n")
- extractedObjectsApp1.append("def "+name+"\n")
- extractedObjectsConstructorApp1.append(name+" = obj.touchSensorObject\n")
- } else {
- extractedObjectsApp2.append("//Object for class Touch Sensor!\n")
- extractedObjectsApp2.append("def "+name+"\n")
- extractedObjectsConstructorApp2.append(name+" = obj.touchSensorObject\n")
- }
- break
- case "capability.imageCapture":
- break
- case "device.mobilePresence":
- break
- case "device.aeonKeyFob":
- break
- case "mode":
- def userInput = System.console().readLine 'Enter the mode:'
-
- if (modeVariables == 0) {
- mode0 = name
- this[mode0] = userInput
- } else if (modeVariables == 1) {
- mode1 = name
- this[mode1] = userInput
- } else if (modeVariables == 2) {
- mode2 = name
- this[mode2] = userInput
- } else if (modeVariables == 3) {
- mode3 = name
- this[mode3] = userInput
- } else if (modeVariables == 4) {
- mode4 = name
- this[mode4] = userInput
- } else if (modeVariables == 5) {
- mode5 = name
- this[mode5] = userInput
- }
-
- if (App == "App1") {
- extractedObjectsApp1.append("//Global variable for mode!\n")
- extractedObjectsApp1.append("def "+name+" = \""+userInput+"\"\n")
- } else {
- extractedObjectsApp2.append("//Global variable for mode!\n")
- extractedObjectsApp2.append("def "+name+" = \""+userInput+"\"\n")
- }
- break
- case "decimal":
- break
- case "text":
- break
- case "number":
- def userInput = System.console().readLine 'Enter the number:'
-
- if (numberVariables == 0) {
- number0 = name
- this[number0] = userInput
- } else if (numberVariables == 1) {
- number1 = name
- this[number1] = userInput
- } else if (numberVariables == 2) {
- number2 = name
- this[number2] = userInput
- } else if (numberVariables == 3) {
- number3 = name
- this[number3] = userInput
- } else if (numberVariables == 4) {
- number4 = name
- this[number4] = userInput
- } else if (numberVariables == 5) {
- number5 = name
- this[number5] = userInput
- }
-
- if (App == "App1") {
- extractedObjectsApp1.append("//Global variable for number!\n")
- extractedObjectsApp1.append("def "+name+" = "+userInput+"\n")
- } else {
- extractedObjectsApp2.append("//Global variable for number!\n")
- extractedObjectsApp2.append("def "+name+" = "+userInput+"\n")
- }
- break
- case "time":
- def userInput = System.console().readLine 'Enter the time:'
-
- if (timeVariables == 0) {
- time0 = name
- this[time0] = userInput
- } else if (timeVariables == 1) {
- time1 = name
- this[time1] = userInput
- } else if (timeVariables == 2) {
- time2 = name
- this[time2] = userInput
- } else if (timeVariables == 3) {
- time3 = name
- this[time3] = userInput
- } else if (timeVariables == 4) {
- time4 = name
- this[time4] = userInput
- } else if (timeVariables == 5) {
- time5 = name
- this[time5] = userInput
- }
-
- if (App == "App1") {
- extractedObjectsApp1.append("//Global variable for time!\n")
- extractedObjectsApp1.append("def "+name+" = \""+userInput+"\"\n")
- } else {
- extractedObjectsApp2.append("//Global variable for time!\n")
- extractedObjectsApp2.append("def "+name+" = \""+userInput+"\"\n")
- }
- break
- case "enum":
- def userInput = System.console().readLine 'Enter the enum:'
-
- if (enumVariables == 0) {
- enum0 = name
- this[enum0] = userInput
- } else if (enumVariables == 1) {
- enum1 = name
- this[enum1] = userInput
- } else if (enumVariables == 2) {
- enum2 = name
- this[enum2] = userInput
- } else if (enumVariables == 3) {
- enum3 = name
- this[enum3] = userInput
- } else if (enumVariables == 4) {
- enum4 = name
- this[enum4] = userInput
- } else if (enumVariables == 5) {
- enum5 = name
- this[enum5] = userInput
- }
-
- if (App == "App1") {
- extractedObjectsApp1.append("//Global variable for enum!\n")
- extractedObjectsApp1.append("def "+name+" = \""+userInput+"\"\n")
- } else {
- extractedObjectsApp2.append("//Global variable for enum!\n")
- extractedObjectsApp2.append("def "+name+" = \""+userInput+"\"\n")
- }
- break
- case "bool":
- break
- case "phone":
- def userInput = System.console().readLine 'Enter the phone:'
-
- if (phoneVariables == 0) {
- phone0 = name
- this[phone0] = userInput
- } else if (phoneVariables == 1) {
- phone1 = name
- this[phone1] = userInput
- } else if (phoneVariables == 2) {
- phone2 = name
- this[phone2] = userInput
- } else if (phoneVariables == 3) {
- phone3 = name
- this[phone3] = userInput
- } else if (phoneVariables == 4) {
- phone4 = name
- this[phone4] = userInput
- } else if (phoneVariables == 5) {
- phone5 = name
- this[phone5] = userInput
- }
-
- if (App == "App1") {
- extractedObjectsApp1.append("//Global variable for phone!\n")
- extractedObjectsApp1.append("def "+name+" = "+userInput+"\n")
- } else {
- extractedObjectsApp2.append("//Global variable for phone!\n")
- extractedObjectsApp2.append("def "+name+" = "+userInput+"\n")
- }
- break
- case "contact":
- def userInput = System.console().readLine 'Enter the name of the contact:'
-
- if (contactVariables == 0) {
- contact0 = name
- this[contact0] = userInput
- } else if (contactVariables == 1) {
- contact1 = name
- this[contact1] = userInput
- } else if (contactVariables == 2) {
- contact2 = name
- this[contact2] = userInput
- } else if (contactVariables == 3) {
- contact3 = name
- this[contact3] = userInput
- } else if (contactVariables == 4) {
- contact4 = name
- this[contact4] = userInput
- } else if (contactVariables == 5) {
- contact5 = name
- this[contact5] = userInput
- }
-
- if (App == "App1") {
- extractedObjectsApp1.append("//Global variable for contact!\n")
- extractedObjectsApp1.append("def "+name+" = \""+userInput+"\"\n")
- } else {
- extractedObjectsApp2.append("//Global variable for contact!\n")
- extractedObjectsApp2.append("def "+name+" = \""+userInput+"\"\n")
- }
- break
- default:
- break
- }
-}
-
-//input "","",linkedHashMap
-def input(LinkedHashMap metaData, String name, String type) {
- switch(type) {
- case "capability.lock":
- if (metaData.containsKey('title')) {
- println metaData['title']
- }
- if (metaData.containsKey('options')) {
- println "Options: "+metaData['options']
- }
- lockObject = name
- this[lockObject] = new Locks({}, 1)
- if (App == "App1") {
- extractedObjectsApp1.append("//Object for class lock!\n")
- extractedObjectsApp1.append("def "+name+"\n")
- extractedObjectsConstructorApp1.append(name+" = obj.lockObject\n")
- } else {
- extractedObjectsApp2.append("//Object for class lock!\n")
- extractedObjectsApp2.append("def "+name+"\n")
- extractedObjectsConstructorApp2.append(name+" = obj.lockObject\n")
- }
- break
- case "capability.alarm":
- break
- case "capability.battery":
- break
- case "capability.beacon":
- break
- case "capability.carbonMonoxideDetector":
- break
- case "capability.colorControl":
- break
- case "capability.contactSensor":
- if (metaData.containsKey('title')) {
- println metaData['title']
- }
- if (metaData.containsKey('options')) {
- println "Options: "+metaData['options']
- }
- contactObject = name
- this[contactObject] = new ContactSensors({}, 1)
- if (App == "App1") {
- extractedObjectsApp1.append("//Object for class contactSensor!\n")
- extractedObjectsApp1.append("def "+name+"\n")
- extractedObjectsConstructorApp1.append(name+" = obj.contactObject\n")
- } else {
- extractedObjectsApp2.append("//Object for class contactSensor!\n")
- extractedObjectsApp2.append("def "+name+"\n")
- extractedObjectsConstructorApp2.append(name+" = obj.contactObject\n")
- }
- break
- case "capability.doorControl":
- if (metaData.containsKey('title')) {
- println metaData['title']
- }
- if (metaData.containsKey('options')) {
- println "Options: "+metaData['options']
- }
- doorControlObject = name
- this[doorControlObject] = new DoorControls({}, 1)
- if (App == "App1") {
- extractedObjectsApp1.append("//Object for class door control!\n")
- extractedObjectsApp1.append("def "+name+"\n")
- extractedObjectsConstructorApp1.append(name+" = obj.doorControlObject\n")
- } else {
- extractedObjectsApp2.append("//Object for class door control!\n")
- extractedObjectsApp2.append("def "+name+"\n")
- extractedObjectsConstructorApp2.append(name+" = obj.doorControlObject\n")
- }
- break
- case "capability.energyMeter":
- break
- case "capability.illuminanceMeasurement":
- break
- case "capability.accelerationSensor":
- break
- case "capability.motionSensor":
- break
- case "capability.musicPlayer":
- break
- case "capability.powerMeter":
- break
- case "capability.presenceSensor":
- if (metaData.containsKey('title')) {
- println metaData['title']
- }
- if (metaData.containsKey('options')) {
- println "Options: "+metaData['options']
- }
- presenceSensorObject = name
- this[presenceSensorObject] = new PresenceSensors({}, 1)
- if (App == "App1") {
- extractedObjectsApp1.append("//Object for class presence sensor!\n")
- extractedObjectsApp1.append("def "+name+"\n")
- extractedObjectsConstructorApp1.append(name+" = obj.presenceSensorObject\n")
- } else {
- extractedObjectsApp2.append("//Object for class presence sensor!\n")
- extractedObjectsApp2.append("def "+name+"\n")
- extractedObjectsConstructorApp2.append(name+" = obj.presenceSensorObject\n")
- }
- break
- case "capability.relativeHumidityMeasurement":
- break
- case "capability.relaySwitch":
- break
- case "capability.sleepSensor":
- break
- case "capability.smokeDetector":
- break
- case "capability.stepSensor":
- break
- case "capability.switch":
- if (metaData.containsKey('title')) {
- println metaData['title']
- }
- if (metaData.containsKey('options')) {
- println "Options: "+metaData['options']
- }
- switchObject = name
- this[switchObject] = new Switches({}, 1)
- if (App == "App1") {
- extractedObjectsApp1.append("//Object for class switch!\n")
- extractedObjectsApp1.append("def "+name+"\n")
- extractedObjectsConstructorApp1.append(name+" = obj.switchObject\n")
- } else {
- extractedObjectsApp2.append("//Object for class switch!\n")
- extractedObjectsApp2.append("def "+name+"\n")
- extractedObjectsConstructorApp2.append(name+" = obj.switchObject\n")
- }
- break
- case "capability.switchLevel":
- break
- case "capability.temperatureMeasurement":
- break
- case "capability.thermostat":
- if (metaData.containsKey('title')) {
- println metaData['title']
- }
- if (metaData.containsKey('options')) {
- println "Options: "+metaData['options']
- }
- thermostatObject = name
- this[thermostatObject] = new Thermostats({}, 1)
- if (App == "App1") {
- extractedObjectsApp1.append("//Object for class thermostat!\n")
- extractedObjectsApp1.append("def "+name+"\n")
- extractedObjectsConstructorApp1.append(name+" = obj.thermostatObject\n")
- } else {
- extractedObjectsApp2.append("//Object for class thermostat!\n")
- extractedObjectsApp2.append("def "+name+"\n")
- extractedObjectsConstructorApp2.append(name+" = obj.thermostatObject\n")
- }
- break
- case "capability.valve":
- break
- case "capability.waterSensor":
- break
- case "capability.touchSensor":
- if (metaData.containsKey('title')) {
- println metaData['title']
- }
- if (metaData.containsKey('options')) {
- println "Options: "+metaData['options']
- }
- touchSensorObject = name
- this[touchSensorObject] = new NfcTouch({}, 1)
- if (App == "App1") {
- extractedObjectsApp1.append("//Object for class Touch Sensor!\n")
- extractedObjectsApp1.append("def "+name+"\n")
- extractedObjectsConstructorApp1.append(name+" = obj.touchSensorObject\n")
- } else {
- extractedObjectsApp2.append("//Object for class Touch Sensor!\n")
- extractedObjectsApp2.append("def "+name+"\n")
- extractedObjectsConstructorApp2.append(name+" = obj.touchSensorObject\n")
- }
- break
- case "capability.imageCapture":
- break
- case "device.mobilePresence":
- break
- case "device.aeonKeyFob":
- break
- case "mode":
- if (metaData.containsKey('title')) {
- println metaData['title']
- }
- if (metaData.containsKey('options')) {
- println "Options: "+metaData['options']
- }
- def userInput = System.console().readLine 'Enter the mode:'
-
- if (modeVariables == 0) {
- mode0 = name
- this[mode0] = userInput
- } else if (modeVariables == 1) {
- mode1 = name
- this[mode1] = userInput
- } else if (modeVariables == 2) {
- mode2 = name
- this[mode2] = userInput
- } else if (modeVariables == 3) {
- mode3 = name
- this[mode3] = userInput
- } else if (modeVariables == 4) {
- mode4 = name
- this[mode4] = userInput
- } else if (modeVariables == 5) {
- mode5 = name
- this[mode5] = userInput
- }
-
- modeVariables=modeVariables+1
-
- if (App == "App1") {
- extractedObjectsApp1.append("//Global variable for mode!\n")
- extractedObjectsApp1.append("def "+name+" = \""+userInput+"\"\n")
- } else {
- extractedObjectsApp2.append("//Global variable for mode!\n")
- extractedObjectsApp2.append("def "+name+" = \""+userInput+"\"\n")
- }
- break
- case "decimal":
- break
- case "text":
- break
- case "number":
- if (metaData.containsKey('title')) {
- println metaData['title']
- }
- if (metaData.containsKey('options')) {
- println "Options: "+metaData['options']
- }
- def userInput = System.console().readLine 'Enter the number:'
-
- if (numberVariables == 0) {
- number0 = name
- this[number0] = userInput
- } else if (numberVariables == 1) {
- number1 = name
- this[number1] = userInput
- } else if (numberVariables == 2) {
- number2 = name
- this[number2] = userInput
- } else if (numberVariables == 3) {
- number3 = name
- this[number3] = userInput
- } else if (numberVariables == 4) {
- number4 = name
- this[number4] = userInput
- } else if (numberVariables == 5) {
- number5 = name
- this[number5] = userInput
- }
-
- numberVariables=numberVariables+1
-
- if (App == "App1") {
- extractedObjectsApp1.append("//Global variable for number!\n")
- extractedObjectsApp1.append("def "+name+" = "+userInput+"\n")
- } else {
- extractedObjectsApp2.append("//Global variable for number!\n")
- extractedObjectsApp2.append("def "+name+" = "+userInput+"\n")
- }
- break
- case "time":
- if (metaData.containsKey('title')) {
- println metaData['title']
- }
- if (metaData.containsKey('options')) {
- println "Options: "+metaData['options']
- }
- def userInput = System.console().readLine 'Enter the time:'
-
- if (timeVariables == 0) {
- time0 = name
- this[time0] = userInput
- } else if (timeVariables == 1) {
- time1 = name
- this[time1] = userInput
- } else if (timeVariables == 2) {
- time2 = name
- this[time2] = userInput
- } else if (timeVariables == 3) {
- time3 = name
- this[time3] = userInput
- } else if (timeVariables == 4) {
- time4 = name
- this[time4] = userInput
- } else if (timeVariables == 5) {
- time5 = name
- this[time5] = userInput
- }
-
- timeVariables=timeVariables+1
-
- if (App == "App1") {
- extractedObjectsApp1.append("//Global variable for time!\n")
- extractedObjectsApp1.append("def "+name+" = \""+userInput+"\"\n")
- } else {
- extractedObjectsApp2.append("//Global variable for time!\n")
- extractedObjectsApp2.append("def "+name+" = \""+userInput+"\"\n")
- }
- break
- case "enum":
- if (metaData.containsKey('title')) {
- println metaData['title']
- }
- if (metaData.containsKey('options')) {
- println "Options: "+metaData['options']
- }
- def userInput = System.console().readLine 'Enter the enum:'
-
- if (enumVariables == 0) {
- enum0 = name
- this[enum0] = userInput
- } else if (enumVariables == 1) {
- enum1 = name
- this[enum1] = userInput
- } else if (enumVariables == 2) {
- enum2 = name
- this[enum2] = userInput
- } else if (enumVariables == 3) {
- enum3 = name
- this[enum3] = userInput
- } else if (enumVariables == 4) {
- enum4 = name
- this[enum4] = userInput
- } else if (enumVariables == 5) {
- enum5 = name
- this[enum5] = userInput
- }
-
- enumVariables=enumVariables+1
-
- if (App == "App1") {
- extractedObjectsApp1.append("//Global variable for enum!\n")
- extractedObjectsApp1.append("def "+name+" = \""+userInput+"\"\n")
- } else {
- extractedObjectsApp2.append("//Global variable for enum!\n")
- extractedObjectsApp2.append("def "+name+" = \""+userInput+"\"\n")
- }
- break
- case "bool":
- break
- case "phone":
- if (metaData.containsKey('title')) {
- println metaData['title']
- }
- if (metaData.containsKey('options')) {
- println "Options: "+metaData['options']
- }
- def userInput = System.console().readLine 'Enter the phone:'
-
- if (phoneVariables == 0) {
- phone0 = name
- this[phone0] = userInput
- } else if (phoneVariables == 1) {
- phone1 = name
- this[phone1] = userInput
- } else if (phoneVariables == 2) {
- phone2 = name
- this[phone2] = userInput
- } else if (phoneVariables == 3) {
- phone3 = name
- this[phone3] = userInput
- } else if (phoneVariables == 4) {
- phone4 = name
- this[phone4] = userInput
- } else if (phoneVariables == 5) {
- phone5 = name
- this[phone5] = userInput
- }
-
- phoneVariables=phoneVariables+1
-
- if (App == "App1") {
- extractedObjectsApp1.append("//Global variable for phone!\n")
- extractedObjectsApp1.append("def "+name+" = "+userInput+"\n")
- } else {
- extractedObjectsApp2.append("//Global variable for phone!\n")
- extractedObjectsApp2.append("def "+name+" = "+userInput+"\n")
- }
- break
- case "contact":
- if (metaData.containsKey('title')) {
- println metaData['title']
- }
- if (metaData.containsKey('options')) {
- println "Options: "+metaData['options']
- }
- def userInput = System.console().readLine 'Enter the name of the contact:'
-
- if (contactVariables == 0) {
- contact0 = name
- this[contact0] = userInput
- } else if (contactVariables == 1) {
- contact1 = name
- this[contact1] = userInput
- } else if (contactVariables == 2) {
- contact2 = name
- this[contact2] = userInput
- } else if (contactVariables == 3) {
- contact3 = name
- this[contact3] = userInput
- } else if (contactVariables == 4) {
- contact4 = name
- this[contact4] = userInput
- } else if (contactVariables == 5) {
- contact5 = name
- this[contact5] = userInput
- }
+//For phone
+@Field phoneVariables = 0
+@Field phone0
+@Field phone1
+@Field phone2
+@Field phone3
+@Field phone4
+@Field phone5
+//For contact
+@Field contactVariables = 0
+@Field contact0
+@Field contact1
+@Field contact2
+@Field contact3
+@Field contact4
+@Field contact5
+//For text
+@Field textVariables = 0
+@Field textVariable0
+@Field textVariable1
+@Field textVariable2
+@Field textVariable3
+@Field textVariable4
+@Field textVariable5
+//For boolean
+@Field boolVariables = 0
+@Field boolVariable0
+@Field boolVariable1
+@Field boolVariable2
+@Field boolVariable3
+@Field boolVariable4
+@Field boolVariable5
- contactVariables=contactVariables+1
- if (App == "App1") {
- extractedObjectsApp1.append("//Global variable for contact!\n")
- extractedObjectsApp1.append("def "+name+" = \""+userInput+"\"\n")
- } else {
- extractedObjectsApp2.append("//Global variable for contact!\n")
- extractedObjectsApp2.append("def "+name+" = \""+userInput+"\"\n")
- }
- break
- default:
- break
- }
+/////Input Methods/////
+//input "",""
+def input(String name, String type) {
+ LinkedHashMap metaData = []
+ metaData.put('name',name)
+ metaData.put('type',type)
+ input(metaData)
+}
+
+//input "","",linkedHashMap
+def input(LinkedHashMap metaData, String name, String type) {
+ metaData.put('name',name)
+ metaData.put('type',type)
+ input(metaData)
+}
+
+//input "", "", linkedHashMap, Closure
+def input(LinkedHashMap metaData, String name, String type, Closure Input) {
+ metaData.put('name',name)
+ metaData.put('type',type)
+ input(metaData)
+ find(Input)
}
+
//input linkedHashMap
def input(LinkedHashMap metaData) {
+ if (metaData.containsKey('title')) {
+ println metaData['title']
+ }
+ if (metaData.containsKey('options')) {
+ println "Options: "+metaData['options']
+ }
switch(metaData['type']) {
case "capability.lock":
- if (metaData.containsKey('title')) {
- println metaData['title']
+ if (lockObjects == 0) {
+ lockObject0 = metaData['name']
+ this[lockObject0] = new Locks({}, 1)
+ } else if (lockObjects == 1) {
+ lockObject1 = metaData['name']
+ this[lockObject1] = new Locks({}, 1)
+ } else if (lockObjects == 2) {
+ lockObject2 = metaData['name']
+ this[lockObject2] = new Locks({}, 1)
}
- if (metaData.containsKey('options')) {
- println "Options: "+metaData['options']
- }
- lockObject = metaData['name']
- this[lockObject] = new Locks({}, 1)
+
+ lockObjects=lockObjects+1
+
+ settings.put(metaData['name'], metaData['name'])
+
if (App == "App1") {
extractedObjectsApp1.append("//Object for class lock!\n")
extractedObjectsApp1.append("def "+metaData['name']+"\n")
}
break
case "capability.alarm":
+ if (alarmObjects == 0) {
+ alarmObject0 = metaData['name']
+ this[alarmObject0] = new Alarms({}, 1)
+ } else if (alarmObjects == 1) {
+ alarmObject1 = metaData['name']
+ this[alarmObject1] = new Alarms({}, 1)
+ } else if (alarmObjects == 2) {
+ alarmObject2 = metaData['name']
+ this[alarmObject2] = new Alarms({}, 1)
+ }
+
+ alarmObjects=alarmObjects+1
+
+ settings.put(metaData['name'], metaData['name'])
+
+ if (App == "App1") {
+ extractedObjectsApp1.append("//Object for class alarm!\n")
+ extractedObjectsApp1.append("def "+metaData['name']+"\n")
+ extractedObjectsConstructorApp1.append(metaData['name']+" = obj.alarmObject\n")
+ } else {
+ extractedObjectsApp2.append("//Object for class alarm!\n")
+ extractedObjectsApp2.append("def "+metaData['name']+"\n")
+ extractedObjectsConstructorApp2.append(metaData['name']+" = obj.alarmObject\n")
+ }
break
case "capability.battery":
+ if (batteryObjects == 0) {
+ batteryObject0 = metaData['name']
+ this[batteryObject0] = new Batteries({}, 1)
+ } else if (batteryObjects == 1) {
+ batteryObject1 = metaData['name']
+ this[batteryObject1] = new Batteries({}, 1)
+ } else if (batteryObjects == 2) {
+ batteryObject2 = metaData['name']
+ this[batteryObject2] = new Batteries({}, 1)
+ }
+
+ batteryObjects=batteryObjects+1
+
+ settings.put(metaData['name'], metaData['name'])
+
+ if (App == "App1") {
+ extractedObjectsApp1.append("//Object for class Battery!\n")
+ extractedObjectsApp1.append("def "+metaData['name']+"\n")
+ extractedObjectsConstructorApp1.append(metaData['name']+" = obj.batteryObject\n")
+ } else {
+ extractedObjectsApp2.append("//Object for class Battery!\n")
+ extractedObjectsApp2.append("def "+metaData['name']+"\n")
+ extractedObjectsConstructorApp2.append(metaData['name']+" = obj.batteryObject\n")
+ }
break
case "capability.beacon":
+ if (beaconSensorObjects == 0) {
+ beaconSensorObject0 = metaData['name']
+ this[beaconSensorObject0] = new BeaconSensors({}, 1)
+ } else if (beaconSensorObjects == 1) {
+ beaconSensorObject1 = metaData['name']
+ this[beaconSensorObject1] = new BeaconSensors({}, 1)
+ } else if (beaconSensorObjects == 2) {
+ beaconSensorObject2 = metaData['name']
+ this[beaconSensorObject2] = new BeaconSensors({}, 1)
+ }
+
+ beaconSensorObjects=beaconSensorObjects+1
+
+ settings.put(metaData['name'], metaData['name'])
+
+ if (App == "App1") {
+ extractedObjectsApp1.append("//Object for class beacon sensor!\n")
+ extractedObjectsApp1.append("def "+metaData['name']+"\n")
+ extractedObjectsConstructorApp1.append(metaData['name']+" = obj.beaconSensorObject\n")
+ } else {
+ extractedObjectsApp2.append("//Object for class beacon sensor!\n")
+ extractedObjectsApp2.append("def "+metaData['name']+"\n")
+ extractedObjectsConstructorApp2.append(metaData['name']+" = obj.beaconSensorObject\n")
+ }
break
case "capability.carbonMonoxideDetector":
+ if (carbonMonoxideDetectorObjects == 0) {
+ carbonMonoxideDetectorObject0 = metaData['name']
+ this[carbonMonoxideDetectorObject0] = new CarbonMonoxideDetectors({}, 1)
+ } else if (carbonMonoxideDetectorObjects == 1) {
+ carbonMonoxideDetectorObject1 = metaData['name']
+ this[carbonMonoxideDetectorObject1] = new CarbonMonoxideDetectors({}, 1)
+ } else if (carbonMonoxideDetectorObjects == 2) {
+ carbonMonoxideDetectorObject2 = metaData['name']
+ this[carbonMonoxideDetectorObject2] = new CarbonMonoxideDetectors({}, 1)
+ }
+
+ carbonMonoxideDetectorObjects=carbonMonoxideDetectorObjects+1
+
+ settings.put(metaData['name'], metaData['name'])
+
+ if (App == "App1") {
+ extractedObjectsApp1.append("//Object for class carbon monoxide detector!\n")
+ extractedObjectsApp1.append("def "+metaData['name']+"\n")
+ extractedObjectsConstructorApp1.append(metaData['name']+" = obj.carbonMonoxideDetectorObject\n")
+ } else {
+ extractedObjectsApp2.append("//Object for class carbon monoxide detector!\n")
+ extractedObjectsApp2.append("def "+metaData['name']+"\n")
+ extractedObjectsConstructorApp2.append(metaData['name']+" = obj.carbonMonoxideDetectorObject\n")
+ }
break
case "capability.colorControl":
+ if (colorControlObjects == 0) {
+ colorControlObject0 = metaData['name']
+ this[colorControlObject0] = new ColorControls({}, 1)
+ } else if (colorControlObjects == 1) {
+ colorControlObject1 = metaData['name']
+ this[colorControlObject1] = new ColorControls({}, 1)
+ } else if (colorControlObjects == 2) {
+ colorControlObject2 = metaData['name']
+ this[colorControlObject2] = new ColorControls({}, 1)
+ }
+
+ colorControlObjects=colorControlObjects+1
+
+ settings.put(metaData['name'], metaData['name'])
+
+ if (App == "App1") {
+ extractedObjectsApp1.append("//Object for class color control!\n")
+ extractedObjectsApp1.append("def "+metaData['name']+"\n")
+ extractedObjectsConstructorApp1.append(metaData['name']+" = obj.colorControlObject\n")
+ } else {
+ extractedObjectsApp2.append("//Object for class color control!\n")
+ extractedObjectsApp2.append("def "+metaData['name']+"\n")
+ extractedObjectsConstructorApp2.append(metaData['name']+" = obj.colorControlObject\n")
+ }
break
case "capability.contactSensor":
- if (metaData.containsKey('title')) {
- println metaData['title']
- }
- if (metaData.containsKey('options')) {
- println "Options: "+metaData['options']
+ if (contactObjects == 0) {
+ contactObject0 = metaData['name']
+ this[contactObject0] = new ContactSensors({}, 1)
+ } else if (contactObjects == 1) {
+ contactObject1 = metaData['name']
+ this[contactObject1] = new ContactSensors({}, 1)
+ } else if (contactObjects == 2) {
+ contactObject2 = metaData['name']
+ this[contactObject2] = new ContactSensors({}, 1)
}
- contactObject = metaData['name']
- this[contactObject] = new ContactSensors({}, 1)
+
+ contactObjects=contactObjects+1
+
+ settings.put(metaData['name'], metaData['name'])
+
if (App == "App1") {
extractedObjectsApp1.append("//Object for class contactSensor!\n")
extractedObjectsApp1.append("def "+metaData['name']+"\n")
}
break
case "capability.doorControl":
- doorControlObject = metaData['name']
- this[doorControlObject] = new DoorControls({}, 1)
+ if (doorControlObjects == 0) {
+ doorControlObject0 = metaData['name']
+ this[doorControlObject0] = new DoorControls({}, 1)
+ } else if (doorControlObjects == 1) {
+ doorControlObject1 = metaData['name']
+ this[doorControlObject1] = new DoorControls({}, 1)
+ } else if (doorControlObjects == 2) {
+ doorControlObject2 = metaData['name']
+ this[doorControlObject2] = new DoorControls({}, 1)
+ }
+
+ doorControlObjects=doorControlObjects+1
+
+ settings.put(metaData['name'], metaData['name'])
+
if (App == "App1") {
extractedObjectsApp1.append("//Object for class door control!\n")
extractedObjectsApp1.append("def "+metaData['name']+"\n")
}
break
case "capability.energyMeter":
+ if (energyMeterObjects == 0) {
+ energyMeterObject0 = metaData['name']
+ this[energyMeterObject0] = new EnergyMeters({}, 1)
+ } else if (energyMeterObjects == 1) {
+ energyMeterObject1 = metaData['name']
+ this[energyMeterObject1] = new EnergyMeters({}, 1)
+ } else if (energyMeterObjects == 2) {
+ energyMeterObject2 = metaData['name']
+ this[energyMeterObject2] = new EnergyMeters({}, 1)
+ }
+
+ energyMeterObjects=energyMeterObjects+1
+
+ settings.put(metaData['name'], metaData['name'])
+
+ if (App == "App1") {
+ extractedObjectsApp1.append("//Object for class energy meter!\n")
+ extractedObjectsApp1.append("def "+metaData['name']+"\n")
+ extractedObjectsConstructorApp1.append(metaData['name']+" = obj.energyMeterObject\n")
+ } else {
+ extractedObjectsApp2.append("//Object for class energy meter!\n")
+ extractedObjectsApp2.append("def "+metaData['name']+"\n")
+ extractedObjectsConstructorApp2.append(metaData['name']+" = obj.energyMeterObject\n")
+ }
break
case "capability.illuminanceMeasurement":
break
case "capability.accelerationSensor":
+ if (accelerationSensorObjects == 0) {
+ accelerationSensorObject0 = metaData['name']
+ this[accelerationSensorObject0] = new AccelerationSensors({}, 1)
+ } else if (accelerationSensorObjects == 1) {
+ accelerationSensorObject1 = metaData['name']
+ this[accelerationSensorObject1] = new AccelerationSensors({}, 1)
+ } else if (accelerationSensorObjects == 2) {
+ accelerationSensorObject2 = metaData['name']
+ this[accelerationSensorObject2] = new AccelerationSensors({}, 1)
+ }
+
+ accelerationSensorObjects=accelerationSensorObjects+1
+
+ settings.put(metaData['name'], metaData['name'])
+
+ if (App == "App1") {
+ extractedObjectsApp1.append("//Object for class Acceleration Sensor!\n")
+ extractedObjectsApp1.append("def "+metaData['name']+"\n")
+ extractedObjectsConstructorApp1.append(metaData['name']+" = obj.accelerationSensorObject\n")
+ } else {
+ extractedObjectsApp2.append("//Object for class Acceleration Sensor!\n")
+ extractedObjectsApp2.append("def "+metaData['name']+"\n")
+ extractedObjectsConstructorApp2.append(metaData['name']+" = obj.accelerationSensorObject\n")
+ }
break
case "capability.motionSensor":
+ if (motionSensorObjects == 0) {
+ motionSensorObject0 = metaData['name']
+ this[motionSensorObject0] = new MotionSensors({}, 1)
+ } else if (motionSensorObjects == 1) {
+ motionSensorObject1 = metaData['name']
+ this[motionSensorObject1] = new MotionSensors({}, 1)
+ } else if (motionSensorObjects == 2) {
+ motionSensorObject2 = metaData['name']
+ this[motionSensorObject2] = new MotionSensors({}, 1)
+ }
+
+ motionSensorObjects=motionSensorObjects+1
+
+ settings.put(metaData['name'], metaData['name'])
+
+ if (App == "App1") {
+ extractedObjectsApp1.append("//Object for class Motion Sensor!\n")
+ extractedObjectsApp1.append("def "+metaData['name']+"\n")
+ extractedObjectsConstructorApp1.append(metaData['name']+" = obj.motionSensorObject\n")
+ } else {
+ extractedObjectsApp2.append("//Object for class Motion Sensor!\n")
+ extractedObjectsApp2.append("def "+metaData['name']+"\n")
+ extractedObjectsConstructorApp2.append(metaData['name']+" = obj.motionSensorObject\n")
+ }
break
case "capability.musicPlayer":
+ if (musicPlayerObjects == 0) {
+ musicPlayerObject0 = metaData['name']
+ this[musicPlayerObject0] = new MusicPlayers({}, 1)
+ } else if (musicPlayerObjects == 1) {
+ musicPlayerObject1 = metaData['name']
+ this[musicPlayerObject1] = new MusicPlayers({}, 1)
+ } else if (musicPlayerObjects == 2) {
+ musicPlayerObject2 = metaData['name']
+ this[musicPlayerObject2] = new MusicPlayers({}, 1)
+ }
+
+ musicPlayerObjects=musicPlayerObjects+1
+
+ settings.put(metaData['name'], metaData['name'])
+
+ if (App == "App1") {
+ extractedObjectsApp1.append("//Object for class music player!\n")
+ extractedObjectsApp1.append("def "+metaData['name']+"\n")
+ extractedObjectsConstructorApp1.append(metaData['name']+" = obj.musicPlayerObject\n")
+ } else {
+ extractedObjectsApp2.append("//Object for class music player!\n")
+ extractedObjectsApp2.append("def "+metaData['name']+"\n")
+ extractedObjectsConstructorApp2.append(metaData['name']+" = obj.musicPlayerObject\n")
+ }
break
case "capability.powerMeter":
break
case "capability.presenceSensor":
- if (metaData.containsKey('title')) {
- println metaData['title']
- }
- if (metaData.containsKey('options')) {
- println "Options: "+metaData['options']
+ if (presenceSensorObjects == 0) {
+ presenceSensorObject0 = metaData['name']
+ this[presenceSensorObject0] = new PresenceSensors({}, 1)
+ } else if (presenceSensorObjects == 1) {
+ presenceSensorObject1 = metaData['name']
+ this[presenceSensorObject1] = new PresenceSensors({}, 1)
+ } else if (presenceSensorObjects == 2) {
+ presenceSensorObject2 = metaData['name']
+ this[presenceSensorObject2] = new PresenceSensors({}, 1)
}
- presenceSensorObject = metaData['name']
- this[presenceSensorObject] = new PresenceSensors({}, 1)
+
+ presenceSensorObjects=presenceSensorObjects+1
+
+ settings.put(metaData['name'], metaData['name'])
+
if (App == "App1") {
extractedObjectsApp1.append("//Object for class presence sensor!\n")
extractedObjectsApp1.append("def "+metaData['name']+"\n")
case "capability.sleepSensor":
break
case "capability.smokeDetector":
+ if (smokeDetectorObjects == 0) {
+ smokeDetectorObject0 = metaData['name']
+ this[smokeDetectorObject0] = new SmokeDetectors({}, 1)
+ } else if (smokeDetectorObjects == 1) {
+ smokeDetectorObject1 = metaData['name']
+ this[smokeDetectorObject1] = new SmokeDetectors({}, 1)
+ } else if (smokeDetectorObjects == 2) {
+ smokeDetectorObject2 = metaData['name']
+ this[smokeDetectorObject2] = new SmokeDetectors({}, 1)
+ }
+
+ smokeDetectorObjects=smokeDetectorObjects+1
+
+ settings.put(metaData['name'], metaData['name'])
+
+ if (App == "App1") {
+ extractedObjectsApp1.append("//Object for class smoke detector!\n")
+ extractedObjectsApp1.append("def "+metaData['name']+"\n")
+ extractedObjectsConstructorApp1.append(metaData['name']+" = obj.smokeDetectorObject\n")
+ } else {
+ extractedObjectsApp2.append("//Object for class smoke detector!\n")
+ extractedObjectsApp2.append("def "+metaData['name']+"\n")
+ extractedObjectsConstructorApp2.append(metaData['name']+" = obj.smokeDetectorObject\n")
+ }
break
case "capability.stepSensor":
break
case "capability.switch":
- if (metaData.containsKey('title')) {
- println metaData['title']
+ if (switchObjects == 0) {
+ switchObject0 = metaData['name']
+ this[switchObject0] = new Switches({}, 1)
+ } else if (switchObjects == 1) {
+ switchObject1 = metaData['name']
+ this[switchObject1] = new Switches({}, 1)
+ } else if (switchObjects == 2) {
+ switchObject2 = metaData['name']
+ this[switchObject2] = new Switches({}, 1)
}
- if (metaData.containsKey('options')) {
- println "Options: "+metaData['options']
- }
- switchObject = metaData['name']
- this[switchObject] = new Switches({}, 1)
+
+ switchObjects=switchObjects+1
+
+ settings.put(metaData['name'], metaData['name'])
+
if (App == "App1") {
extractedObjectsApp1.append("//Object for class switch!\n")
extractedObjectsApp1.append("def "+metaData['name']+"\n")
case "capability.temperatureMeasurement":
break
case "capability.thermostat":
- if (metaData.containsKey('title')) {
- println metaData['title']
+ if (thermostatObjects == 0) {
+ thermostatObject0 = metaData['name']
+ this[thermostatObject0] = new Thermostats({}, 1)
+ } else if (thermostatObjects == 1) {
+ thermostatObject1 = metaData['name']
+ this[thermostatObject1] = new Thermostats({}, 1)
+ } else if (thermostatObjects == 2) {
+ thermostatObject2 = metaData['name']
+ this[thermostatObject2] = new Thermostats({}, 1)
}
- if (metaData.containsKey('options')) {
- println "Options: "+metaData['options']
- }
- thermostatObject = metaData['name']
- this[thermostatObject] = new Thermostats({}, 1)
+
+ thermostatObjects=thermostatObjects+1
+
+ settings.put(metaData['name'], metaData['name'])
+
if (App == "App1") {
extractedObjectsApp1.append("//Object for class thermostat!\n")
extractedObjectsApp1.append("def "+metaData['name']+"\n")
break
case "capability.valve":
break
+ case "capability.speechSynthesis":
+ if (speechSynthesisObjects == 0) {
+ speechSynthesisObject0 = metaData['name']
+ this[speechSynthesisObject0] = new SpeechSynthesises({}, 1)
+ } else if (speechSynthesisObjects == 1) {
+ speechSynthesisObject1 = metaData['name']
+ this[speechSynthesisObject1] = new SpeechSynthesises({}, 1)
+ } else if (speechSynthesisObjects == 2) {
+ speechSynthesisObject2 = metaData['name']
+ this[speechSynthesisObject2] = new SpeechSynthesises({}, 1)
+ }
+
+ speechSynthesisObjects=speechSynthesisObjects+1
+
+ settings.put(metaData['name'], metaData['name'])
+
+ if (App == "App1") {
+ extractedObjectsApp1.append("//Object for class speech synthesis!\n")
+ extractedObjectsApp1.append("def "+metaData['name']+"\n")
+ extractedObjectsConstructorApp1.append(metaData['name']+" = obj.speechSynthesisObject\n")
+ } else {
+ extractedObjectsApp2.append("//Object for class speech synthesis!\n")
+ extractedObjectsApp2.append("def "+metaData['name']+"\n")
+ extractedObjectsConstructorApp2.append(metaData['name']+" = obj.speechSynthesisObject\n")
+ }
+ break
case "capability.waterSensor":
break
case "capability.touchSensor":
- if (metaData.containsKey('title')) {
- println metaData['title']
+ if (touchSensorObjects == 0) {
+ touchSensorObject0 = metaData['name']
+ this[touchSensorObject0] = new NfcTouch({}, 1)
+ } else if (touchSensorObjects == 1) {
+ touchSensorObject1 = metaData['name']
+ this[touchSensorObject1] = new NfcTouch({}, 1)
+ } else if (touchSensorObjects == 2) {
+ touchSensorObject2 = metaData['name']
+ this[touchSensorObject2] = new NfcTouch({}, 1)
}
- if (metaData.containsKey('options')) {
- println "Options: "+metaData['options']
- }
- touchSensorObject = metaData['name']
- this[touchSensorObject] = new NfcTouch({}, 1)
+
+ touchSensorObjects=touchSensorObjects+1
+
+ settings.put(metaData['name'], metaData['name'])
+
if (App == "App1") {
extractedObjectsApp1.append("//Object for class Touch Sensor!\n")
extractedObjectsApp1.append("def "+metaData['name']+"\n")
}
break
case "capability.imageCapture":
+ if (imageCaptureObjects == 0) {
+ imageCaptureObject0 = metaData['name']
+ this[imageCaptureObject0] = new ImageCaptures({}, 1)
+ } else if (imageCaptureObjects == 1) {
+ imageCaptureObject1 = metaData['name']
+ this[imageCaptureObject1] = new ImageCaptures({}, 1)
+ } else if (imageCaptureObjects == 2) {
+ imageCaptureObject2 = metaData['name']
+ this[imageCaptureObject2] = new ImageCaptures({}, 1)
+ }
+
+ imageCaptureObjects=imageCaptureObjects+1
+
+ settings.put(metaData['name'], metaData['name'])
+
+ if (App == "App1") {
+ extractedObjectsApp1.append("//Object for class Image Capture!\n")
+ extractedObjectsApp1.append("def "+metaData['name']+"\n")
+ extractedObjectsConstructorApp1.append(metaData['name']+" = obj.imageCaptureObject\n")
+ } else {
+ extractedObjectsApp2.append("//Object for class Image Capture!\n")
+ extractedObjectsApp2.append("def "+metaData['name']+"\n")
+ extractedObjectsConstructorApp2.append(metaData['name']+" = obj.imageCaptureObject\n")
+ }
break
case "device.mobilePresence":
break
case "device.aeonKeyFob":
- break
- case "mode":
- if (metaData.containsKey('title')) {
- println metaData['title']
+ if (aeonKeyFobObjects == 0) {
+ aeonKeyFobObject0 = metaData['name']
+ this[aeonKeyFobObject0] = new AeonKeyFobs({}, 1)
+ } else if (aeonKeyFobObjects == 1) {
+ aeonKeyFobObject1 = metaData['name']
+ this[aeonKeyFobObject1] = new AeonKeyFobs({}, 1)
+ } else if (aeonKeyFobObjects == 2) {
+ aeonKeyFobObject2 = metaData['name']
+ this[aeonKeyFobObject2] = new AeonKeyFobs({}, 1)
}
- if (metaData.containsKey('options')) {
- println "Options: "+metaData['options']
+
+ aeonKeyFobObjects=aeonKeyFobObjects+1
+
+ settings.put(metaData['name'], metaData['name'])
+
+ if (App == "App1") {
+ extractedObjectsApp1.append("//Object for class aeon key fob!\n")
+ extractedObjectsApp1.append("def "+metaData['name']+"\n")
+ extractedObjectsConstructorApp1.append(metaData['name']+" = obj.aeonKeyFobObject\n")
+ } else {
+ extractedObjectsApp2.append("//Object for class aeon key fob!\n")
+ extractedObjectsApp2.append("def "+metaData['name']+"\n")
+ extractedObjectsConstructorApp2.append(metaData['name']+" = obj.aeonKeyFobObject\n")
}
- def userInput = System.console().readLine 'Enter the mode:'
+ break
+ case "mode":
+ def randomVariable = Math.abs(new Random().nextInt() % 3)
+ def modes = ["away", "home", "night"]
+ def userInput = modes[randomVariable]
if (modeVariables == 0) {
mode0 = metaData['name']
this[mode5] = userInput
}
+ modeVariables=modeVariables+1
+
+ settings.put(metaData['name'], metaData['name'])
+
if (App == "App1") {
extractedObjectsApp1.append("//Global variable for mode!\n")
extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
}
break
case "decimal":
+ def userInput = Math.abs(new Random().nextInt() % 60) + 40
+
+ if (decimalVariables == 0) {
+ decimal0 = metaData['name']
+ this[decimal0] = userInput
+ } else if (decimalVariables == 1) {
+ decimal1 = metaData['name']
+ this[decimal1] = userInput
+ } else if (decimalVariables == 2) {
+ decimal2 = metaData['name']
+ this[decimal2] = userInput
+ } else if (decimalVariables == 3) {
+ decimal3 = metaData['name']
+ this[decimal3] = userInput
+ } else if (decimalVariables == 4) {
+ decimal4 = metaData['name']
+ this[decimal4] = userInput
+ } else if (decimalVariables == 5) {
+ decimal5 = metaData['name']
+ this[decimal5] = userInput
+ }
+
+ decimalVariables=decimalVariables+1
+
+ settings.put(metaData['name'], metaData['name'])
+
+ if (App == "App1") {
+ extractedObjectsApp1.append("//Global variable for decimal number!\n")
+ extractedObjectsApp1.append("def "+metaData['name']+" = "+userInput+"\n")
+ } else {
+ extractedObjectsApp2.append("//Global variable for decimal number!\n")
+ extractedObjectsApp2.append("def "+metaData['name']+" = "+userInput+"\n")
+ }
break
case "text":
- break
- case "number":
- if (metaData.containsKey('title')) {
- println metaData['title']
+ def userInput = "This is just a text!"
+
+ if (textVariables == 0) {
+ text0 = metaData['name']
+ this[text0] = userInput
+ } else if (textVariables == 1) {
+ text1 = metaData['name']
+ this[text1] = userInput
+ } else if (textVariables == 2) {
+ text2 = metaData['name']
+ this[text2] = userInput
+ } else if (textVariables == 3) {
+ text3 = metaData['name']
+ this[text3] = userInput
+ } else if (textVariables == 4) {
+ text4 = metaData['name']
+ this[text4] = userInput
+ } else if (textVariables == 5) {
+ text5 = metaData['name']
+ this[text5] = userInput
}
- if (metaData.containsKey('options')) {
- println "Options: "+metaData['options']
+
+ textVariables=textVariables+1
+
+ settings.put(metaData['name'], metaData['name'])
+
+ if (App == "App1") {
+ extractedObjectsApp1.append("//Global variable for text!\n")
+ extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
+ } else {
+ extractedObjectsApp2.append("//Global variable for text!\n")
+ extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
}
- def userInput = System.console().readLine 'Enter the number:'
+ break
+ case "number":
+ def userInput = Math.abs(new Random().nextInt() % 60) + 40
if (numberVariables == 0) {
number0 = metaData['name']
this[number5] = userInput
}
+ numberVariables=numberVariables+1
+
+ settings.put(metaData['name'], metaData['name'])
+
if (App == "App1") {
extractedObjectsApp1.append("//Global variable for number!\n")
extractedObjectsApp1.append("def "+metaData['name']+" = "+userInput+"\n")
}
break
case "time":
- if (metaData.containsKey('title')) {
- println metaData['title']
- }
- if (metaData.containsKey('options')) {
- println "Options: "+metaData['options']
- }
- def userInput = System.console().readLine 'Enter the time:'
+ def userInput = "15:00"
if (timeVariables == 0) {
time0 = metaData['name']
this[time5] = userInput
}
+ timeVariables=timeVariables+1
+
+ settings.put(metaData['name'], metaData['name'])
+
if (App == "App1") {
extractedObjectsApp1.append("//Global variable for time!\n")
extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
}
break
case "enum":
- if (metaData.containsKey('title')) {
- println metaData['title']
- }
- if (metaData.containsKey('options')) {
- println "Options: "+metaData['options']
- }
- def userInput = System.console().readLine 'Enter the enum:'
+ def randomVariable = Math.abs(new Random().nextInt() % 2)
+ def modes = ["Yes", "No"]
+ //def userInput = modes[randomVariable]
+ //def modes = metaData['options']
+ if (metaData['options'] != null)
+ modes = metaData['options']
+ else // If it is not named 'options' then it is captured as 'metadata'
+ modes = metaData['metadata']
+ def userInput = modes[0]
if (enumVariables == 0) {
enum0 = metaData['name']
this[enum5] = userInput
}
+ enumVariables=enumVariables+1
+
+ settings.put(metaData['name'], metaData['name'])
+
if (App == "App1") {
extractedObjectsApp1.append("//Global variable for enum!\n")
extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
}
break
case "bool":
- break
- case "phone":
- if (metaData.containsKey('title')) {
- println metaData['title']
+ def userInput = Math.abs(new Random().nextInt() % 2)
+
+ 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 (metaData.containsKey('options')) {
- println "Options: "+metaData['options']
+
+ boolVariables=boolVariables+1
+
+ 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")
}
- def userInput = System.console().readLine 'Enter the phone:'
+ break
+ case "phone":
+ def userInput = 9495379373
if (phoneVariables == 0) {
phone0 = metaData['name']
this[phone5] = userInput
}
+ phoneVariables=phoneVariables+1
+
+ settings.put(metaData['name'], metaData['name'])
+
if (App == "App1") {
extractedObjectsApp1.append("//Global variable for phone!\n")
extractedObjectsApp1.append("def "+metaData['name']+" = "+userInput+"\n")
}
break
case "contact":
- if (metaData.containsKey('title')) {
- println metaData['title']
- }
- if (metaData.containsKey('options')) {
- println "Options: "+metaData['options']
- }
- def userInput = System.console().readLine 'Enter the metaData['name'] of the contact:'
+ def userInput = "AJ"
if (contactVariables == 0) {
contact0 = metaData['name']
this[contact5] = userInput
}
+ contactVariables=contactVariables+1
+
+ settings.put(metaData['name'], metaData['name'])
+
if (App == "App1") {
extractedObjectsApp1.append("//Global variable for contact!\n")
extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
println("//IGNORE--ForMobileUse//")
}
+
+def href(LinkedHashMap metaData) {
+ println("//IGNORE--some data//")
+}
/////Input Methods/////
def preferences(Closure inputData) {
find(inputData) //Run the closure to extract pages/sections/inputMethods
+ if (App == "App1") {
+ extractedObjectsConstructorApp1.append("//Global variable for settings!\n")
+ extractedObjectsConstructorApp1.append("settings = $settings\n")
+ } else {
+ extractedObjectsConstructorApp2.append("//Global variable for settings!\n")
+ extractedObjectsConstructorApp2.append("settings = $settings\n")
+ }
}
def page(LinkedHashMap metaData, Closure inputData) {
find(inputData) //Run the closure to extract sections/inputMethods
}
+def paragraph(String paragraphText) {
+ println(paragraphText)
+}
+
def section(String title, Closure inputData) {
println(title)
find(inputData) //Run the closure to extract inputMethods
}
+def section(Closure inputData) {
+ find(inputData) //Run the closure to extract inputMethods
+}
+
def section(LinkedHashMap metaData, Closure inputData) {
find(inputData) //Run the closure to extract inputMethods
}