--- /dev/null
+////////////////////////////////////////
+import groovy.transform.Field
+@Field File outGlobal = new File("Extractor/outGlobal.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")
+@Field File extractedObjectsConstructorApp2 = new File("Extractor/App2/extractedObjectsConstructorApp2.groovy")
+
+
+//Empty the files
+outGlobal.write("")
+extractedObjectsApp1.write("")
+extractedObjectsApp2.write("")
+extractedObjectsConstructorApp1.write("")
+extractedObjectsConstructorApp2.write("")
+
+
+@Field lockIsSet = 0
+@Field contactIsSet = 0
+@Field switchIsSet = 0
+@Field presenceIsSet = 0
+@Field thermostatIsSet = 0
+@Field touchSensorIsSet = 0
+@Field doorControlIsSet = 0
+
+//input "",""
+def input(String name, String type, String App) {
+ switch(type) {
+ case "capability.lock":
+ if (lockIsSet != 1) {
+ lockIsSet = 1
+ outGlobal.append("//Global Object for class lock!\n")
+ outGlobal.append("@Field def lockObject = new Locks(sendEvent,1)\n")
+ }
+ 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 (contactIsSet != 1) {
+ contactIsSet = 1
+ outGlobal.append("//Global Object for class contactSensor!\n")
+ outGlobal.append("@Field def contactObject = new ContactSensors(sendEvent,1)\n")
+ }
+ 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 (doorControlIsSet != 1) {
+ doorControlIsSet = 1
+ outGlobal.append("//Global Object for class door control!\n")
+ outGlobal.append("@Field def doorControlObject = new DoorControls(sendEvent,1)\n")
+ }
+ 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 (presenceIsSet != 1) {
+ presenceIsSet = 1
+ outGlobal.append("//Global Object for class presence sensor!\n")
+ outGlobal.append("@Field def presenceSensorObject = new PresenceSensors(sendEvent,1)\n")
+ }
+ 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 (switchIsSet != 1) {
+ switchIsSet = 1
+ outGlobal.append("//Global Object for class switch!\n")
+ outGlobal.append("@Field def switchObject = new Switches(sendEvent,1)\n")
+ }
+ 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 (thermostatIsSet != 1) {
+ thermostatIsSet = 1
+ outGlobal.append("//Global Object for class thermostat!\n")
+ outGlobal.append("@Field def thermostatObject = new Thermostats(sendEvent,1)\n")
+ }
+ 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 (touchSensorIsSet != 1) {
+ touchSensorIsSet = 1
+ outGlobal.append("//Global Object for class Touch Sensor!\n")
+ outGlobal.append("@Field def touchSensorObject = new NfcTouch(sendEvent,1)\n")
+ }
+ 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 (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 (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 (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 (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 (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 (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, String App) {
+ switch(type) {
+ case "capability.lock":
+ if (metaData.containsKey('title')) {
+ println metaData['title']
+ }
+ if (metaData.containsKey('multiple')) {
+ if (metaData['multiple'] == true) {
+ if (lockIsSet != 1) {
+ lockIsSet = 1
+ def count = System.console().readLine 'Enter the number of locks to control?(1,2, or 3)'
+ outGlobal.append("//Global Object for class lock!\n")
+ outGlobal.append("@Field def lockObject = new Locks(sendEvent, ")
+ outGlobal.append(count+")\n")
+ }
+ }
+ }
+ if (lockIsSet != 1) {
+ lockIsSet = 1
+ outGlobal.append("//Global Object for class lock!\n")
+ outGlobal.append("@Field def lockObject = new Locks(sendEvent,1)\n")
+ }
+ 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('multiple')) {
+ if (metaData['multiple'] == true) {
+ if (contactIsSet != 1) {
+ contactIsSet = 1
+ def count = System.console().readLine 'Enter the number of contact sensors to control?(1,2, or 3)'
+ outGlobal.append("//Global Object for class contactSensor!\n")
+ outGlobal.append("@Field def contactObject = new ContactSensors(sendEvent, ")
+ outGlobal.append(count+")\n")
+ }
+ }
+ }
+ if (contactIsSet != 1) {
+ contactIsSet = 1
+ outGlobal.append("//Global Object for class contactSensor!\n")
+ outGlobal.append("@Field def contactObject = new ContactSensors(sendEvent,1)\n")
+ }
+ 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('multiple')) {
+ if (metaData['multiple'] == true) {
+ if (contactIsSet != 1) {
+ contactIsSet = 1
+ def count = System.console().readLine 'Enter the number of doors to control?(1,2, or 3)'
+ outGlobal.append("//Global Object for class door control!\n")
+ outGlobal.append("@Field def doorControlObject = new DoorControls(sendEvent, ")
+ outGlobal.append(count+")\n")
+ }
+ }
+ }
+ if (doorControlIsSet != 1) {
+ doorControlIsSet = 1
+ outGlobal.append("//Global Object for class door control!\n")
+ outGlobal.append("@Field def doorControlObject = new DoorControls(sendEvent,1)\n")
+ }
+ 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('multiple')) {
+ if (metaData['multiple'] == true) {
+ if (presenceIsSet != 1) {
+ presenceIsSet = 1
+ def count = System.console().readLine 'Enter the number of presence sensors to control?(1,2, or 3)'
+ outGlobal.append("//Global Object for class presence sensor!\n")
+ outGlobal.append("@Field def presenceSensorObject = new PresenceSensors(sendEvent, ")
+ outGlobal.append(count+")\n")
+ }
+ }
+ }
+ if (presenceIsSet != 1) {
+ presenceIsSet = 1
+ outGlobal.append("//Global Object for class presence sensor!\n")
+ outGlobal.append("@Field def presenceSensorObject = new PresenceSensors(sendEvent,1)\n")
+ }
+ 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('multiple')) {
+ if (metaData['multiple'] == true) {
+ if (switchIsSet != 1) {
+ switchIsSet = 1
+ def count = System.console().readLine 'Enter the number of switches to control?(1,2, or 3)'
+ outGlobal.append("//Global Object for class switch!\n")
+ outGlobal.append("@Field def switchObject = new Switches(sendEvent, ")
+ outGlobal.append(count+")\n")
+ }
+ }
+ }
+ if (switchIsSet != 1) {
+ switchIsSet = 1
+ outGlobal.append("//Global Object for class switch!\n")
+ outGlobal.append("@Field def switchObject = new Switches(sendEvent,1)\n")
+ }
+ 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('multiple')) {
+ if (metaData['multiple'] == true) {
+ if (thermostatIsSet != 1) {
+ thermostatIsSet = 1
+ def count = System.console().readLine 'Enter the number of thermostats to control?(1,2, or 3)'
+ outGlobal.append("//Global Object for class thermostat!\n")
+ outGlobal.append("@Field def thermostatObject = new Thermostats(sendEvent, ")
+ outGlobal.append(count+")\n")
+ }
+ }
+ }
+ if (thermostatIsSet != 1) {
+ thermostatIsSet = 1
+ outGlobal.append("//Global Object for class thermostat!\n")
+ outGlobal.append("@Field def thermostatObject = new Thermostats(sendEvent,1)\n")
+ }
+ 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 (touchSensorIsSet != 1) {
+ touchSensorIsSet = 1
+ outGlobal.append("//Global Object for class Touch Sensor!\n")
+ outGlobal.append("@Field def touchSensorObject = new NfcTouch(sendEvent,1)\n")
+ }
+ 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 (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']
+ }
+ if (metaData.containsKey('metadata')) {
+ println "metaData: "+metaData['metadata']
+ }
+ def userInput = System.console().readLine 'Enter the number:'
+ 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']
+ }
+ if (metaData.containsKey('metadata')) {
+ println "metaData: "+metaData['metadata']
+ }
+ def userInput = System.console().readLine 'Enter the time:'
+ 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']
+ }
+ if (metaData.containsKey('metadata')) {
+ println "metaData: "+metaData['metadata']
+ }
+ def userInput = System.console().readLine 'Enter the enum:'
+ 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']
+ }
+ if (metaData.containsKey('metadata')) {
+ println "metaData: "+metaData['metadata']
+ }
+ def userInput = System.console().readLine 'Enter the phone:'
+ 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']
+ }
+ if (metaData.containsKey('metadata')) {
+ println "metaData: "+metaData['metadata']
+ }
+ def userInput = System.console().readLine 'Enter the name of the contact:'
+ 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 App) {
+ switch(metaData['type']) {
+ case "capability.lock":
+ if (metaData.containsKey('title')) {
+ println metaData['title']
+ }
+ if (metaData.containsKey('multiple')) {
+ if (metaData['multiple'] == true) {
+ if (lockIsSet != 1) {
+ lockIsSet = 1
+ def count = System.console().readLine 'Enter the number of locks to control?(1,2, or 3)'
+ outGlobal.append("//Global Object for class lock!\n")
+ outGlobal.append("@Field def lockObject = new Locks(sendEvent, ")
+ outGlobal.append(count+")\n")
+ }
+ }
+ }
+ if (lockIsSet != 1) {
+ lockIsSet = 1
+ outGlobal.append("//Global Object for class lock!\n")
+ outGlobal.append("@Field def lockObject = new Locks(sendEvent,1)\n")
+ }
+ if (App == "App1") {
+ extractedObjectsApp1.append("//Object for class lock!\n")
+ extractedObjectsApp1.append("def "+metaData['input']+"\n")
+ extractedObjectsConstructorApp1.append(metaData['input']+" = obj.lockObject\n")
+ } else {
+ extractedObjectsApp2.append("//Object for class lock!\n")
+ extractedObjectsApp2.append("def "+metaData['input']+"\n")
+ extractedObjectsConstructorApp2.append(metaData['input']+" = 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('multiple')) {
+ if (metaData['multiple'] == true) {
+ if (contactIsSet != 1) {
+ contactIsSet = 1
+ def count = System.console().readLine 'Enter the number of contact sensors to control?(1,2, or 3)'
+ outGlobal.append("//Global Object for class contactSensor!\n")
+ outGlobal.append("@Field def contactObject = new ContactSensors(sendEvent, ")
+ outGlobal.append(count+")\n")
+ }
+ }
+ }
+ if (contactIsSet != 1) {
+ contactIsSet = 1
+ outGlobal.append("//Global Object for class contactSensor!\n")
+ outGlobal.append("@Field def contactObject = new ContactSensors(sendEvent,1)\n")
+ }
+ if (App == "App1") {
+ extractedObjectsApp1.append("//Object for class contactSensor!\n")
+ extractedObjectsApp1.append("def "+metaData['input']+"\n")
+ extractedObjectsConstructorApp1.append(metaData['input']+" = obj.contactObject\n")
+ } else {
+ extractedObjectsApp2.append("//Object for class contactSensor!\n")
+ extractedObjectsApp2.append("def "+metaData['input']+"\n")
+ extractedObjectsConstructorApp2.append(metaData['input']+" = obj.contactObject\n")
+ }
+ break
+ case "capability.doorControl":
+ if (metaData.containsKey('title')) {
+ println metaData['title']
+ }
+ if (metaData.containsKey('multiple')) {
+ if (metaData['multiple'] == true) {
+ if (contactIsSet != 1) {
+ contactIsSet = 1
+ def count = System.console().readLine 'Enter the number of doors to control?(1,2, or 3)'
+ outGlobal.append("//Global Object for class door control!\n")
+ outGlobal.append("@Field def doorControlObject = new DoorControls(sendEvent, ")
+ outGlobal.append(count+")\n")
+ }
+ }
+ }
+ if (doorControlIsSet != 1) {
+ doorControlIsSet = 1
+ outGlobal.append("//Global Object for class door control!\n")
+ outGlobal.append("@Field def doorControlObject = new DoorControls(sendEvent,1)\n")
+ }
+ if (App == "App1") {
+ extractedObjectsApp1.append("//Object for class door control!\n")
+ extractedObjectsApp1.append("def "+metaData['input']+"\n")
+ extractedObjectsConstructorApp1.append(metaData['input']+" = obj.doorControlObject\n")
+ } else {
+ extractedObjectsApp2.append("//Object for class door control!\n")
+ extractedObjectsApp2.append("def "+metaData['input']+"\n")
+ extractedObjectsConstructorApp2.append(metaData['input']+" = 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('multiple')) {
+ if (metaData['multiple'] == true) {
+ if (presenceIsSet != 1) {
+ presenceIsSet = 1
+ def count = System.console().readLine 'Enter the number of presence sensors to control?(1,2, or 3)'
+ outGlobal.append("//Global Object for class presence sensor!\n")
+ outGlobal.append("@Field def presenceSensorObject = new PresenceSensors(sendEvent, ")
+ outGlobal.append(count+")\n")
+ }
+ }
+ }
+ if (presenceIsSet != 1) {
+ presenceIsSet = 1
+ outGlobal.append("//Global Object for class presence sensor!\n")
+ outGlobal.append("@Field def presenceSensorObject = new PresenceSensors(sendEvent,1)\n")
+ }
+ if (App == "App1") {
+ extractedObjectsApp1.append("//Object for class presence sensor!\n")
+ extractedObjectsApp1.append("def "+metaData['input']+"\n")
+ extractedObjectsConstructorApp1.append(metaData['input']+" = obj.presenceSensorObject\n")
+ } else {
+ extractedObjectsApp2.append("//Object for class presence sensor!\n")
+ extractedObjectsApp2.append("def "+metaData['input']+"\n")
+ extractedObjectsConstructorApp2.append(metaData['input']+" = 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('multiple')) {
+ if (metaData['multiple'] == true) {
+ if (switchIsSet != 1) {
+ switchIsSet = 1
+ def count = System.console().readLine 'Enter the number of switches to control?(1,2, or 3)'
+ outGlobal.append("//Global Object for class switch!\n")
+ outGlobal.append("@Field def switchObject = new Switches(sendEvent, ")
+ outGlobal.append(count+")\n")
+ }
+ }
+ }
+ if (switchIsSet != 1) {
+ switchIsSet = 1
+ outGlobal.append("//Global Object for class switch!\n")
+ outGlobal.append("@Field def switchObject = new Switches(sendEvent,1)\n")
+ }
+ if (App == "App1") {
+ extractedObjectsApp1.append("//Object for class switch!\n")
+ extractedObjectsApp1.append("def "+metaData['input']+"\n")
+ extractedObjectsConstructorApp1.append(metaData['input']+" = obj.switchObject\n")
+ } else {
+ extractedObjectsApp2.append("//Object for class switch!\n")
+ extractedObjectsApp2.append("def "+metaData['input']+"\n")
+ extractedObjectsConstructorApp2.append(metaData['input']+" = 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('multiple')) {
+ if (metaData['multiple'] == true) {
+ if (thermostatIsSet != 1) {
+ thermostatIsSet = 1
+ def count = System.console().readLine 'Enter the number of thermostats to control?(1,2, or 3)'
+ outGlobal.append("//Global Object for class thermostat!\n")
+ outGlobal.append("@Field def thermostatObject = new Thermostats(sendEvent, ")
+ outGlobal.append(count+")\n")
+ }
+ }
+ }
+ if (thermostatIsSet != 1) {
+ thermostatIsSet = 1
+ outGlobal.append("//Global Object for class thermostat!\n")
+ outGlobal.append("@Field def thermostatObject = new Thermostats(sendEvent,1)\n")
+ }
+ if (App == "App1") {
+ extractedObjectsApp1.append("//Object for class thermostat!\n")
+ extractedObjectsApp1.append("def "+metaData['input']+"\n")
+ extractedObjectsConstructorApp1.append(metaData['input']+" = obj.thermostatObject\n")
+ } else {
+ extractedObjectsApp2.append("//Object for class thermostat!\n")
+ extractedObjectsApp2.append("def "+metaData['input']+"\n")
+ extractedObjectsConstructorApp2.append(metaData['input']+" = obj.thermostatObject\n")
+ }
+ break
+ case "capability.valve":
+ break
+ case "capability.waterSensor":
+ break
+ case "capability.touchSensor":
+ if (touchSensorIsSet != 1) {
+ touchSensorIsSet = 1
+ outGlobal.append("//Global Object for class Touch Sensor!\n")
+ outGlobal.append("@Field def touchSensorObject = new NfcTouch(sendEvent,1)\n")
+ }
+ if (App == "App1") {
+ extractedObjectsApp1.append("//Object for class Touch Sensor!\n")
+ extractedObjectsApp1.append("def "+metaData['input']+"\n")
+ extractedObjectsConstructorApp1.append(metaData['input']+" = obj.touchSensorObject\n")
+ } else {
+ extractedObjectsApp2.append("//Object for class Touch Sensor!\n")
+ extractedObjectsApp2.append("def "+metaData['input']+"\n")
+ extractedObjectsConstructorApp2.append(metaData['input']+" = 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']
+ }
+ if (metaData.containsKey('metadata')) {
+ println "metaData: "+metaData['metadata']
+ }
+ def userInput = System.console().readLine 'Enter the mode:'
+ if (App == "App1") {
+ extractedObjectsApp1.append("//Global variable for mode!\n")
+ extractedObjectsApp1.append("def "+metaData['input']+" = \""+userInput+"\"\n")
+ } else {
+ extractedObjectsApp2.append("//Global variable for mode!\n")
+ extractedObjectsApp2.append("def "+metaData['input']+" = \""+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']
+ }
+ if (metaData.containsKey('metadata')) {
+ println "metaData: "+metaData['metadata']
+ }
+ def userInput = System.console().readLine 'Enter the number:'
+ if (App == "App1") {
+ extractedObjectsApp1.append("//Global variable for number!\n")
+ extractedObjectsApp1.append("def "+metaData['input']+" = "+userInput+"\n")
+ } else {
+ extractedObjectsApp2.append("//Global variable for number!\n")
+ extractedObjectsApp2.append("def "+metaData['input']+" = "+userInput+"\n")
+ }
+ break
+ case "time":
+ if (metaData.containsKey('title')) {
+ println metaData['title']
+ }
+ if (metaData.containsKey('options')) {
+ println "Options: "+metaData['options']
+ }
+ if (metaData.containsKey('metadata')) {
+ println "metaData: "+metaData['metadata']
+ }
+ def userInput = System.console().readLine 'Enter the time:'
+ if (App == "App1") {
+ extractedObjectsApp1.append("//Global variable for time!\n")
+ extractedObjectsApp1.append("def "+metaData['input']+" = \""+userInput+"\"\n")
+ } else {
+ extractedObjectsApp2.append("//Global variable for time!\n")
+ extractedObjectsApp2.append("def "+metaData['input']+" = \""+userInput+"\"\n")
+ }
+ break
+ case "enum":
+ if (metaData.containsKey('title')) {
+ println metaData['title']
+ }
+ if (metaData.containsKey('options')) {
+ println "Options: "+metaData['options']
+ }
+ if (metaData.containsKey('metadata')) {
+ println "metaData: "+metaData['metadata']
+ }
+ def userInput = System.console().readLine 'Enter the enum:'
+ if (App == "App1") {
+ extractedObjectsApp1.append("//Global variable for enum!\n")
+ extractedObjectsApp1.append("def "+metaData['input']+" = \""+userInput+"\"\n")
+ } else {
+ extractedObjectsApp2.append("//Global variable for enum!\n")
+ extractedObjectsApp2.append("def "+metaData['input']+" = \""+userInput+"\"\n")
+ }
+ break
+ case "bool":
+ break
+ case "phone":
+ if (metaData.containsKey('title')) {
+ println metaData['title']
+ }
+ if (metaData.containsKey('options')) {
+ println "Options: "+metaData['options']
+ }
+ if (metaData.containsKey('metadata')) {
+ println "metaData: "+metaData['metadata']
+ }
+ def userInput = System.console().readLine 'Enter the phone:'
+ if (App == "App1") {
+ extractedObjectsApp1.append("//Global variable for phone!\n")
+ extractedObjectsApp1.append("def "+metaData['input']+" = "+userInput+"\n")
+ } else {
+ extractedObjectsApp2.append("//Global variable for phone!\n")
+ extractedObjectsApp2.append("def "+metaData['input']+" = "+userInput+"\n")
+ }
+ break
+ case "contact":
+ if (metaData.containsKey('title')) {
+ println metaData['title']
+ }
+ if (metaData.containsKey('options')) {
+ println "Options: "+metaData['options']
+ }
+ if (metaData.containsKey('metadata')) {
+ println "metaData: "+metaData['metadata']
+ }
+ def userInput = System.console().readLine 'Enter the name of the contact:'
+ if (App == "App1") {
+ extractedObjectsApp1.append("//Global variable for contact!\n")
+ extractedObjectsApp1.append("def "+metaData['input']+" = \""+userInput+"\"\n")
+ } else {
+ extractedObjectsApp2.append("//Global variable for contact!\n")
+ extractedObjectsApp2.append("def "+metaData['input']+" = \""+userInput+"\"\n")
+ }
+ break
+ default:
+ break
+ }
+}