//////////////////////////////////////// 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 } }