1 ////////////////////////////////////////
2 import groovy.transform.Field
3 @Field File outGlobal = new File("Extractor/outGlobal.groovy")
4 @Field File extractedObjectsApp1 = new File("Extractor/App1/extractedObjectsApp1.groovy")
5 @Field File extractedObjectsApp2 = new File("Extractor/App2/extractedObjectsApp2.groovy")
6 @Field File extractedObjectsConstructorApp1 = new File("Extractor/App1/extractedObjectsConstructorApp1.groovy")
7 @Field File extractedObjectsConstructorApp2 = new File("Extractor/App2/extractedObjectsConstructorApp2.groovy")
12 extractedObjectsApp1.write("")
13 extractedObjectsApp2.write("")
14 extractedObjectsConstructorApp1.write("")
15 extractedObjectsConstructorApp2.write("")
19 @Field contactIsSet = 0
20 @Field switchIsSet = 0
21 @Field presenceIsSet = 0
22 @Field thermostatIsSet = 0
23 @Field touchSensorIsSet = 0
24 @Field doorControlIsSet = 0
27 def input(String name, String type, String App) {
29 case "capability.lock":
32 outGlobal.append("//Global Object for class lock!\n")
33 outGlobal.append("@Field def lockObject = new Locks(sendEvent,1)\n")
36 extractedObjectsApp1.append("//Object for class lock!\n")
37 extractedObjectsApp1.append("def "+name+"\n")
38 extractedObjectsConstructorApp1.append(name+" = obj.lockObject\n")
40 extractedObjectsApp2.append("//Object for class lock!\n")
41 extractedObjectsApp2.append("def "+name+"\n")
42 extractedObjectsConstructorApp2.append(name+" = obj.lockObject\n")
45 case "capability.alarm":
47 case "capability.battery":
49 case "capability.beacon":
51 case "capability.carbonMonoxideDetector":
53 case "capability.colorControl":
55 case "capability.contactSensor":
56 if (contactIsSet != 1) {
58 outGlobal.append("//Global Object for class contactSensor!\n")
59 outGlobal.append("@Field def contactObject = new ContactSensors(sendEvent,1)\n")
62 extractedObjectsApp1.append("//Object for class contactSensor!\n")
63 extractedObjectsApp1.append("def "+name+"\n")
64 extractedObjectsConstructorApp1.append(name+" = obj.contactObject\n")
66 extractedObjectsApp2.append("//Object for class contactSensor!\n")
67 extractedObjectsApp2.append("def "+name+"\n")
68 extractedObjectsConstructorApp2.append(name+" = obj.contactObject\n")
71 case "capability.doorControl":
72 if (doorControlIsSet != 1) {
74 outGlobal.append("//Global Object for class door control!\n")
75 outGlobal.append("@Field def doorControlObject = new DoorControls(sendEvent,1)\n")
78 extractedObjectsApp1.append("//Object for class door control!\n")
79 extractedObjectsApp1.append("def "+name+"\n")
80 extractedObjectsConstructorApp1.append(name+" = obj.doorControlObject\n")
82 extractedObjectsApp2.append("//Object for class door control!\n")
83 extractedObjectsApp2.append("def "+name+"\n")
84 extractedObjectsConstructorApp2.append(name+" = obj.doorControlObject\n")
87 case "capability.energyMeter":
89 case "capability.illuminanceMeasurement":
91 case "capability.accelerationSensor":
93 case "capability.motionSensor":
95 case "capability.musicPlayer":
97 case "capability.powerMeter":
99 case "capability.presenceSensor":
100 if (presenceIsSet != 1) {
102 outGlobal.append("//Global Object for class presence sensor!\n")
103 outGlobal.append("@Field def presenceSensorObject = new PresenceSensors(sendEvent,1)\n")
106 extractedObjectsApp1.append("//Object for class presence sensor!\n")
107 extractedObjectsApp1.append("def "+name+"\n")
108 extractedObjectsConstructorApp1.append(name+" = obj.presenceSensorObject\n")
110 extractedObjectsApp2.append("//Object for class presence sensor!\n")
111 extractedObjectsApp2.append("def "+name+"\n")
112 extractedObjectsConstructorApp2.append(name+" = obj.presenceSensorObject\n")
115 case "capability.relativeHumidityMeasurement":
117 case "capability.relaySwitch":
119 case "capability.sleepSensor":
121 case "capability.smokeDetector":
123 case "capability.stepSensor":
125 case "capability.switch":
126 if (switchIsSet != 1) {
128 outGlobal.append("//Global Object for class switch!\n")
129 outGlobal.append("@Field def switchObject = new Switches(sendEvent,1)\n")
132 extractedObjectsApp1.append("//Object for class switch!\n")
133 extractedObjectsApp1.append("def "+name+"\n")
134 extractedObjectsConstructorApp1.append(name+" = obj.switchObject\n")
136 extractedObjectsApp2.append("//Object for class switch!\n")
137 extractedObjectsApp2.append("def "+name+"\n")
138 extractedObjectsConstructorApp2.append(name+" = obj.switchObject\n")
141 case "capability.switchLevel":
143 case "capability.temperatureMeasurement":
145 case "capability.thermostat":
146 if (thermostatIsSet != 1) {
148 outGlobal.append("//Global Object for class thermostat!\n")
149 outGlobal.append("@Field def thermostatObject = new Thermostats(sendEvent,1)\n")
152 extractedObjectsApp1.append("//Object for class thermostat!\n")
153 extractedObjectsApp1.append("def "+name+"\n")
154 extractedObjectsConstructorApp1.append(name+" = obj.thermostatObject\n")
156 extractedObjectsApp2.append("//Object for class thermostat!\n")
157 extractedObjectsApp2.append("def "+name+"\n")
158 extractedObjectsConstructorApp2.append(name+" = obj.thermostatObject\n")
161 case "capability.valve":
163 case "capability.waterSensor":
165 case "capability.touchSensor":
166 if (touchSensorIsSet != 1) {
168 outGlobal.append("//Global Object for class Touch Sensor!\n")
169 outGlobal.append("@Field def touchSensorObject = new NfcTouch(sendEvent,1)\n")
172 extractedObjectsApp1.append("//Object for class Touch Sensor!\n")
173 extractedObjectsApp1.append("def "+name+"\n")
174 extractedObjectsConstructorApp1.append(name+" = obj.touchSensorObject\n")
176 extractedObjectsApp2.append("//Object for class Touch Sensor!\n")
177 extractedObjectsApp2.append("def "+name+"\n")
178 extractedObjectsConstructorApp2.append(name+" = obj.touchSensorObject\n")
181 case "capability.imageCapture":
183 case "device.mobilePresence":
185 case "device.aeonKeyFob":
188 def userInput = System.console().readLine 'Enter the mode:'
190 extractedObjectsApp1.append("//Global variable for mode!\n")
191 extractedObjectsApp1.append("def "+name+" = \""+userInput+"\"\n")
193 extractedObjectsApp2.append("//Global variable for mode!\n")
194 extractedObjectsApp2.append("def "+name+" = \""+userInput+"\"\n")
202 def userInput = System.console().readLine 'Enter the number:'
204 extractedObjectsApp1.append("//Global variable for number!\n")
205 extractedObjectsApp1.append("def "+name+" = "+userInput+"\n")
207 extractedObjectsApp2.append("//Global variable for number!\n")
208 extractedObjectsApp2.append("def "+name+" = "+userInput+"\n")
212 def userInput = System.console().readLine 'Enter the time:'
214 extractedObjectsApp1.append("//Global variable for time!\n")
215 extractedObjectsApp1.append("def "+name+" = \""+userInput+"\"\n")
217 extractedObjectsApp2.append("//Global variable for time!\n")
218 extractedObjectsApp2.append("def "+name+" = \""+userInput+"\"\n")
222 def userInput = System.console().readLine 'Enter the enum:'
224 extractedObjectsApp1.append("//Global variable for enum!\n")
225 extractedObjectsApp1.append("def "+name+" = \""+userInput+"\"\n")
227 extractedObjectsApp2.append("//Global variable for enum!\n")
228 extractedObjectsApp2.append("def "+name+" = \""+userInput+"\"\n")
234 def userInput = System.console().readLine 'Enter the phone:'
236 extractedObjectsApp1.append("//Global variable for phone!\n")
237 extractedObjectsApp1.append("def "+name+" = "+userInput+"\n")
239 extractedObjectsApp2.append("//Global variable for phone!\n")
240 extractedObjectsApp2.append("def "+name+" = "+userInput+"\n")
244 def userInput = System.console().readLine 'Enter the name of the contact:'
246 extractedObjectsApp1.append("//Global variable for contact!\n")
247 extractedObjectsApp1.append("def "+name+" = \""+userInput+"\"\n")
249 extractedObjectsApp2.append("//Global variable for contact!\n")
250 extractedObjectsApp2.append("def "+name+" = \""+userInput+"\"\n")
258 //input "","",linkedHashMap
259 def input(LinkedHashMap metaData, String name, String type, String App) {
261 case "capability.lock":
262 if (metaData.containsKey('title')) {
263 println metaData['title']
265 if (metaData.containsKey('multiple')) {
266 if (metaData['multiple'] == true) {
267 if (lockIsSet != 1) {
269 def count = System.console().readLine 'Enter the number of locks to control?(1,2, or 3)'
270 outGlobal.append("//Global Object for class lock!\n")
271 outGlobal.append("@Field def lockObject = new Locks(sendEvent, ")
272 outGlobal.append(count+")\n")
276 if (lockIsSet != 1) {
278 outGlobal.append("//Global Object for class lock!\n")
279 outGlobal.append("@Field def lockObject = new Locks(sendEvent,1)\n")
282 extractedObjectsApp1.append("//Object for class lock!\n")
283 extractedObjectsApp1.append("def "+name+"\n")
284 extractedObjectsConstructorApp1.append(name+" = obj.lockObject\n")
286 extractedObjectsApp2.append("//Object for class lock!\n")
287 extractedObjectsApp2.append("def "+name+"\n")
288 extractedObjectsConstructorApp2.append(name+" = obj.lockObject\n")
291 case "capability.alarm":
293 case "capability.battery":
295 case "capability.beacon":
297 case "capability.carbonMonoxideDetector":
299 case "capability.colorControl":
301 case "capability.contactSensor":
302 if (metaData.containsKey('title')) {
303 println metaData['title']
305 if (metaData.containsKey('multiple')) {
306 if (metaData['multiple'] == true) {
307 if (contactIsSet != 1) {
309 def count = System.console().readLine 'Enter the number of contact sensors to control?(1,2, or 3)'
310 outGlobal.append("//Global Object for class contactSensor!\n")
311 outGlobal.append("@Field def contactObject = new ContactSensors(sendEvent, ")
312 outGlobal.append(count+")\n")
316 if (contactIsSet != 1) {
318 outGlobal.append("//Global Object for class contactSensor!\n")
319 outGlobal.append("@Field def contactObject = new ContactSensors(sendEvent,1)\n")
322 extractedObjectsApp1.append("//Object for class contactSensor!\n")
323 extractedObjectsApp1.append("def "+name+"\n")
324 extractedObjectsConstructorApp1.append(name+" = obj.contactObject\n")
326 extractedObjectsApp2.append("//Object for class contactSensor!\n")
327 extractedObjectsApp2.append("def "+name+"\n")
328 extractedObjectsConstructorApp2.append(name+" = obj.contactObject\n")
331 case "capability.doorControl":
332 if (metaData.containsKey('title')) {
333 println metaData['title']
335 if (metaData.containsKey('multiple')) {
336 if (metaData['multiple'] == true) {
337 if (contactIsSet != 1) {
339 def count = System.console().readLine 'Enter the number of doors to control?(1,2, or 3)'
340 outGlobal.append("//Global Object for class door control!\n")
341 outGlobal.append("@Field def doorControlObject = new DoorControls(sendEvent, ")
342 outGlobal.append(count+")\n")
346 if (doorControlIsSet != 1) {
348 outGlobal.append("//Global Object for class door control!\n")
349 outGlobal.append("@Field def doorControlObject = new DoorControls(sendEvent,1)\n")
352 extractedObjectsApp1.append("//Object for class door control!\n")
353 extractedObjectsApp1.append("def "+name+"\n")
354 extractedObjectsConstructorApp1.append(name+" = obj.doorControlObject\n")
356 extractedObjectsApp2.append("//Object for class door control!\n")
357 extractedObjectsApp2.append("def "+name+"\n")
358 extractedObjectsConstructorApp2.append(name+" = obj.doorControlObject\n")
361 case "capability.energyMeter":
363 case "capability.illuminanceMeasurement":
365 case "capability.accelerationSensor":
367 case "capability.motionSensor":
369 case "capability.musicPlayer":
371 case "capability.powerMeter":
373 case "capability.presenceSensor":
374 if (metaData.containsKey('title')) {
375 println metaData['title']
377 if (metaData.containsKey('multiple')) {
378 if (metaData['multiple'] == true) {
379 if (presenceIsSet != 1) {
381 def count = System.console().readLine 'Enter the number of presence sensors to control?(1,2, or 3)'
382 outGlobal.append("//Global Object for class presence sensor!\n")
383 outGlobal.append("@Field def presenceSensorObject = new PresenceSensors(sendEvent, ")
384 outGlobal.append(count+")\n")
388 if (presenceIsSet != 1) {
390 outGlobal.append("//Global Object for class presence sensor!\n")
391 outGlobal.append("@Field def presenceSensorObject = new PresenceSensors(sendEvent,1)\n")
394 extractedObjectsApp1.append("//Object for class presence sensor!\n")
395 extractedObjectsApp1.append("def "+name+"\n")
396 extractedObjectsConstructorApp1.append(name+" = obj.presenceSensorObject\n")
398 extractedObjectsApp2.append("//Object for class presence sensor!\n")
399 extractedObjectsApp2.append("def "+name+"\n")
400 extractedObjectsConstructorApp2.append(name+" = obj.presenceSensorObject\n")
403 case "capability.relativeHumidityMeasurement":
405 case "capability.relaySwitch":
407 case "capability.sleepSensor":
409 case "capability.smokeDetector":
411 case "capability.stepSensor":
413 case "capability.switch":
414 if (metaData.containsKey('title')) {
415 println metaData['title']
417 if (metaData.containsKey('multiple')) {
418 if (metaData['multiple'] == true) {
419 if (switchIsSet != 1) {
421 def count = System.console().readLine 'Enter the number of switches to control?(1,2, or 3)'
422 outGlobal.append("//Global Object for class switch!\n")
423 outGlobal.append("@Field def switchObject = new Switches(sendEvent, ")
424 outGlobal.append(count+")\n")
428 if (switchIsSet != 1) {
430 outGlobal.append("//Global Object for class switch!\n")
431 outGlobal.append("@Field def switchObject = new Switches(sendEvent,1)\n")
434 extractedObjectsApp1.append("//Object for class switch!\n")
435 extractedObjectsApp1.append("def "+name+"\n")
436 extractedObjectsConstructorApp1.append(name+" = obj.switchObject\n")
438 extractedObjectsApp2.append("//Object for class switch!\n")
439 extractedObjectsApp2.append("def "+name+"\n")
440 extractedObjectsConstructorApp2.append(name+" = obj.switchObject\n")
443 case "capability.switchLevel":
445 case "capability.temperatureMeasurement":
447 case "capability.thermostat":
448 if (metaData.containsKey('title')) {
449 println metaData['title']
451 if (metaData.containsKey('multiple')) {
452 if (metaData['multiple'] == true) {
453 if (thermostatIsSet != 1) {
455 def count = System.console().readLine 'Enter the number of thermostats to control?(1,2, or 3)'
456 outGlobal.append("//Global Object for class thermostat!\n")
457 outGlobal.append("@Field def thermostatObject = new Thermostats(sendEvent, ")
458 outGlobal.append(count+")\n")
462 if (thermostatIsSet != 1) {
464 outGlobal.append("//Global Object for class thermostat!\n")
465 outGlobal.append("@Field def thermostatObject = new Thermostats(sendEvent,1)\n")
468 extractedObjectsApp1.append("//Object for class thermostat!\n")
469 extractedObjectsApp1.append("def "+name+"\n")
470 extractedObjectsConstructorApp1.append(name+" = obj.thermostatObject\n")
472 extractedObjectsApp2.append("//Object for class thermostat!\n")
473 extractedObjectsApp2.append("def "+name+"\n")
474 extractedObjectsConstructorApp2.append(name+" = obj.thermostatObject\n")
477 case "capability.valve":
479 case "capability.waterSensor":
481 case "capability.touchSensor":
482 if (touchSensorIsSet != 1) {
484 outGlobal.append("//Global Object for class Touch Sensor!\n")
485 outGlobal.append("@Field def touchSensorObject = new NfcTouch(sendEvent,1)\n")
488 extractedObjectsApp1.append("//Object for class Touch Sensor!\n")
489 extractedObjectsApp1.append("def "+name+"\n")
490 extractedObjectsConstructorApp1.append(name+" = obj.touchSensorObject\n")
492 extractedObjectsApp2.append("//Object for class Touch Sensor!\n")
493 extractedObjectsApp2.append("def "+name+"\n")
494 extractedObjectsConstructorApp2.append(name+" = obj.touchSensorObject\n")
497 case "capability.imageCapture":
499 case "device.mobilePresence":
501 case "device.aeonKeyFob":
504 if (metaData.containsKey('title')) {
505 println metaData['title']
507 if (metaData.containsKey('options')) {
508 println "Options: "+metaData['options']
510 def userInput = System.console().readLine 'Enter the mode:'
512 extractedObjectsApp1.append("//Global variable for mode!\n")
513 extractedObjectsApp1.append("def "+name+" = \""+userInput+"\"\n")
515 extractedObjectsApp2.append("//Global variable for mode!\n")
516 extractedObjectsApp2.append("def "+name+" = \""+userInput+"\"\n")
524 if (metaData.containsKey('title')) {
525 println metaData['title']
527 if (metaData.containsKey('options')) {
528 println "Options: "+metaData['options']
530 if (metaData.containsKey('metadata')) {
531 println "metaData: "+metaData['metadata']
533 def userInput = System.console().readLine 'Enter the number:'
535 extractedObjectsApp1.append("//Global variable for number!\n")
536 extractedObjectsApp1.append("def "+name+" = "+userInput+"\n")
538 extractedObjectsApp2.append("//Global variable for number!\n")
539 extractedObjectsApp2.append("def "+name+" = "+userInput+"\n")
543 if (metaData.containsKey('title')) {
544 println metaData['title']
546 if (metaData.containsKey('options')) {
547 println "Options: "+metaData['options']
549 if (metaData.containsKey('metadata')) {
550 println "metaData: "+metaData['metadata']
552 def userInput = System.console().readLine 'Enter the time:'
554 extractedObjectsApp1.append("//Global variable for time!\n")
555 extractedObjectsApp1.append("def "+name+" = \""+userInput+"\"\n")
557 extractedObjectsApp2.append("//Global variable for time!\n")
558 extractedObjectsApp2.append("def "+name+" = \""+userInput+"\"\n")
562 if (metaData.containsKey('title')) {
563 println metaData['title']
565 if (metaData.containsKey('options')) {
566 println "Options: "+metaData['options']
568 if (metaData.containsKey('metadata')) {
569 println "metaData: "+metaData['metadata']
571 def userInput = System.console().readLine 'Enter the enum:'
573 extractedObjectsApp1.append("//Global variable for enum!\n")
574 extractedObjectsApp1.append("def "+name+" = \""+userInput+"\"\n")
576 extractedObjectsApp2.append("//Global variable for enum!\n")
577 extractedObjectsApp2.append("def "+name+" = \""+userInput+"\"\n")
583 if (metaData.containsKey('title')) {
584 println metaData['title']
586 if (metaData.containsKey('options')) {
587 println "Options: "+metaData['options']
589 if (metaData.containsKey('metadata')) {
590 println "metaData: "+metaData['metadata']
592 def userInput = System.console().readLine 'Enter the phone:'
594 extractedObjectsApp1.append("//Global variable for phone!\n")
595 extractedObjectsApp1.append("def "+name+" = "+userInput+"\n")
597 extractedObjectsApp2.append("//Global variable for phone!\n")
598 extractedObjectsApp2.append("def "+name+" = "+userInput+"\n")
602 if (metaData.containsKey('title')) {
603 println metaData['title']
605 if (metaData.containsKey('options')) {
606 println "Options: "+metaData['options']
608 if (metaData.containsKey('metadata')) {
609 println "metaData: "+metaData['metadata']
611 def userInput = System.console().readLine 'Enter the name of the contact:'
613 extractedObjectsApp1.append("//Global variable for contact!\n")
614 extractedObjectsApp1.append("def "+name+" = \""+userInput+"\"\n")
616 extractedObjectsApp2.append("//Global variable for contact!\n")
617 extractedObjectsApp2.append("def "+name+" = \""+userInput+"\"\n")
624 //input linkedHashMap
625 def input(LinkedHashMap metaData, String App) {
626 switch(metaData['type']) {
627 case "capability.lock":
628 if (metaData.containsKey('title')) {
629 println metaData['title']
631 if (metaData.containsKey('multiple')) {
632 if (metaData['multiple'] == true) {
633 if (lockIsSet != 1) {
635 def count = System.console().readLine 'Enter the number of locks to control?(1,2, or 3)'
636 outGlobal.append("//Global Object for class lock!\n")
637 outGlobal.append("@Field def lockObject = new Locks(sendEvent, ")
638 outGlobal.append(count+")\n")
642 if (lockIsSet != 1) {
644 outGlobal.append("//Global Object for class lock!\n")
645 outGlobal.append("@Field def lockObject = new Locks(sendEvent,1)\n")
648 extractedObjectsApp1.append("//Object for class lock!\n")
649 extractedObjectsApp1.append("def "+metaData['input']+"\n")
650 extractedObjectsConstructorApp1.append(metaData['input']+" = obj.lockObject\n")
652 extractedObjectsApp2.append("//Object for class lock!\n")
653 extractedObjectsApp2.append("def "+metaData['input']+"\n")
654 extractedObjectsConstructorApp2.append(metaData['input']+" = obj.lockObject\n")
657 case "capability.alarm":
659 case "capability.battery":
661 case "capability.beacon":
663 case "capability.carbonMonoxideDetector":
665 case "capability.colorControl":
667 case "capability.contactSensor":
668 if (metaData.containsKey('title')) {
669 println metaData['title']
671 if (metaData.containsKey('multiple')) {
672 if (metaData['multiple'] == true) {
673 if (contactIsSet != 1) {
675 def count = System.console().readLine 'Enter the number of contact sensors to control?(1,2, or 3)'
676 outGlobal.append("//Global Object for class contactSensor!\n")
677 outGlobal.append("@Field def contactObject = new ContactSensors(sendEvent, ")
678 outGlobal.append(count+")\n")
682 if (contactIsSet != 1) {
684 outGlobal.append("//Global Object for class contactSensor!\n")
685 outGlobal.append("@Field def contactObject = new ContactSensors(sendEvent,1)\n")
688 extractedObjectsApp1.append("//Object for class contactSensor!\n")
689 extractedObjectsApp1.append("def "+metaData['input']+"\n")
690 extractedObjectsConstructorApp1.append(metaData['input']+" = obj.contactObject\n")
692 extractedObjectsApp2.append("//Object for class contactSensor!\n")
693 extractedObjectsApp2.append("def "+metaData['input']+"\n")
694 extractedObjectsConstructorApp2.append(metaData['input']+" = obj.contactObject\n")
697 case "capability.doorControl":
698 if (metaData.containsKey('title')) {
699 println metaData['title']
701 if (metaData.containsKey('multiple')) {
702 if (metaData['multiple'] == true) {
703 if (contactIsSet != 1) {
705 def count = System.console().readLine 'Enter the number of doors to control?(1,2, or 3)'
706 outGlobal.append("//Global Object for class door control!\n")
707 outGlobal.append("@Field def doorControlObject = new DoorControls(sendEvent, ")
708 outGlobal.append(count+")\n")
712 if (doorControlIsSet != 1) {
714 outGlobal.append("//Global Object for class door control!\n")
715 outGlobal.append("@Field def doorControlObject = new DoorControls(sendEvent,1)\n")
718 extractedObjectsApp1.append("//Object for class door control!\n")
719 extractedObjectsApp1.append("def "+metaData['input']+"\n")
720 extractedObjectsConstructorApp1.append(metaData['input']+" = obj.doorControlObject\n")
722 extractedObjectsApp2.append("//Object for class door control!\n")
723 extractedObjectsApp2.append("def "+metaData['input']+"\n")
724 extractedObjectsConstructorApp2.append(metaData['input']+" = obj.doorControlObject\n")
727 case "capability.energyMeter":
729 case "capability.illuminanceMeasurement":
731 case "capability.accelerationSensor":
733 case "capability.motionSensor":
735 case "capability.musicPlayer":
737 case "capability.powerMeter":
739 case "capability.presenceSensor":
740 if (metaData.containsKey('title')) {
741 println metaData['title']
743 if (metaData.containsKey('multiple')) {
744 if (metaData['multiple'] == true) {
745 if (presenceIsSet != 1) {
747 def count = System.console().readLine 'Enter the number of presence sensors to control?(1,2, or 3)'
748 outGlobal.append("//Global Object for class presence sensor!\n")
749 outGlobal.append("@Field def presenceSensorObject = new PresenceSensors(sendEvent, ")
750 outGlobal.append(count+")\n")
754 if (presenceIsSet != 1) {
756 outGlobal.append("//Global Object for class presence sensor!\n")
757 outGlobal.append("@Field def presenceSensorObject = new PresenceSensors(sendEvent,1)\n")
760 extractedObjectsApp1.append("//Object for class presence sensor!\n")
761 extractedObjectsApp1.append("def "+metaData['input']+"\n")
762 extractedObjectsConstructorApp1.append(metaData['input']+" = obj.presenceSensorObject\n")
764 extractedObjectsApp2.append("//Object for class presence sensor!\n")
765 extractedObjectsApp2.append("def "+metaData['input']+"\n")
766 extractedObjectsConstructorApp2.append(metaData['input']+" = obj.presenceSensorObject\n")
769 case "capability.relativeHumidityMeasurement":
771 case "capability.relaySwitch":
773 case "capability.sleepSensor":
775 case "capability.smokeDetector":
777 case "capability.stepSensor":
779 case "capability.switch":
780 if (metaData.containsKey('title')) {
781 println metaData['title']
783 if (metaData.containsKey('multiple')) {
784 if (metaData['multiple'] == true) {
785 if (switchIsSet != 1) {
787 def count = System.console().readLine 'Enter the number of switches to control?(1,2, or 3)'
788 outGlobal.append("//Global Object for class switch!\n")
789 outGlobal.append("@Field def switchObject = new Switches(sendEvent, ")
790 outGlobal.append(count+")\n")
794 if (switchIsSet != 1) {
796 outGlobal.append("//Global Object for class switch!\n")
797 outGlobal.append("@Field def switchObject = new Switches(sendEvent,1)\n")
800 extractedObjectsApp1.append("//Object for class switch!\n")
801 extractedObjectsApp1.append("def "+metaData['input']+"\n")
802 extractedObjectsConstructorApp1.append(metaData['input']+" = obj.switchObject\n")
804 extractedObjectsApp2.append("//Object for class switch!\n")
805 extractedObjectsApp2.append("def "+metaData['input']+"\n")
806 extractedObjectsConstructorApp2.append(metaData['input']+" = obj.switchObject\n")
809 case "capability.switchLevel":
811 case "capability.temperatureMeasurement":
813 case "capability.thermostat":
814 if (metaData.containsKey('title')) {
815 println metaData['title']
817 if (metaData.containsKey('multiple')) {
818 if (metaData['multiple'] == true) {
819 if (thermostatIsSet != 1) {
821 def count = System.console().readLine 'Enter the number of thermostats to control?(1,2, or 3)'
822 outGlobal.append("//Global Object for class thermostat!\n")
823 outGlobal.append("@Field def thermostatObject = new Thermostats(sendEvent, ")
824 outGlobal.append(count+")\n")
828 if (thermostatIsSet != 1) {
830 outGlobal.append("//Global Object for class thermostat!\n")
831 outGlobal.append("@Field def thermostatObject = new Thermostats(sendEvent,1)\n")
834 extractedObjectsApp1.append("//Object for class thermostat!\n")
835 extractedObjectsApp1.append("def "+metaData['input']+"\n")
836 extractedObjectsConstructorApp1.append(metaData['input']+" = obj.thermostatObject\n")
838 extractedObjectsApp2.append("//Object for class thermostat!\n")
839 extractedObjectsApp2.append("def "+metaData['input']+"\n")
840 extractedObjectsConstructorApp2.append(metaData['input']+" = obj.thermostatObject\n")
843 case "capability.valve":
845 case "capability.waterSensor":
847 case "capability.touchSensor":
848 if (touchSensorIsSet != 1) {
850 outGlobal.append("//Global Object for class Touch Sensor!\n")
851 outGlobal.append("@Field def touchSensorObject = new NfcTouch(sendEvent,1)\n")
854 extractedObjectsApp1.append("//Object for class Touch Sensor!\n")
855 extractedObjectsApp1.append("def "+metaData['input']+"\n")
856 extractedObjectsConstructorApp1.append(metaData['input']+" = obj.touchSensorObject\n")
858 extractedObjectsApp2.append("//Object for class Touch Sensor!\n")
859 extractedObjectsApp2.append("def "+metaData['input']+"\n")
860 extractedObjectsConstructorApp2.append(metaData['input']+" = obj.touchSensorObject\n")
863 case "capability.imageCapture":
865 case "device.mobilePresence":
867 case "device.aeonKeyFob":
870 if (metaData.containsKey('title')) {
871 println metaData['title']
873 if (metaData.containsKey('options')) {
874 println "Options: "+metaData['options']
876 if (metaData.containsKey('metadata')) {
877 println "metaData: "+metaData['metadata']
879 def userInput = System.console().readLine 'Enter the mode:'
881 extractedObjectsApp1.append("//Global variable for mode!\n")
882 extractedObjectsApp1.append("def "+metaData['input']+" = \""+userInput+"\"\n")
884 extractedObjectsApp2.append("//Global variable for mode!\n")
885 extractedObjectsApp2.append("def "+metaData['input']+" = \""+userInput+"\"\n")
893 if (metaData.containsKey('title')) {
894 println metaData['title']
896 if (metaData.containsKey('options')) {
897 println "Options: "+metaData['options']
899 if (metaData.containsKey('metadata')) {
900 println "metaData: "+metaData['metadata']
902 def userInput = System.console().readLine 'Enter the number:'
904 extractedObjectsApp1.append("//Global variable for number!\n")
905 extractedObjectsApp1.append("def "+metaData['input']+" = "+userInput+"\n")
907 extractedObjectsApp2.append("//Global variable for number!\n")
908 extractedObjectsApp2.append("def "+metaData['input']+" = "+userInput+"\n")
912 if (metaData.containsKey('title')) {
913 println metaData['title']
915 if (metaData.containsKey('options')) {
916 println "Options: "+metaData['options']
918 if (metaData.containsKey('metadata')) {
919 println "metaData: "+metaData['metadata']
921 def userInput = System.console().readLine 'Enter the time:'
923 extractedObjectsApp1.append("//Global variable for time!\n")
924 extractedObjectsApp1.append("def "+metaData['input']+" = \""+userInput+"\"\n")
926 extractedObjectsApp2.append("//Global variable for time!\n")
927 extractedObjectsApp2.append("def "+metaData['input']+" = \""+userInput+"\"\n")
931 if (metaData.containsKey('title')) {
932 println metaData['title']
934 if (metaData.containsKey('options')) {
935 println "Options: "+metaData['options']
937 if (metaData.containsKey('metadata')) {
938 println "metaData: "+metaData['metadata']
940 def userInput = System.console().readLine 'Enter the enum:'
942 extractedObjectsApp1.append("//Global variable for enum!\n")
943 extractedObjectsApp1.append("def "+metaData['input']+" = \""+userInput+"\"\n")
945 extractedObjectsApp2.append("//Global variable for enum!\n")
946 extractedObjectsApp2.append("def "+metaData['input']+" = \""+userInput+"\"\n")
952 if (metaData.containsKey('title')) {
953 println metaData['title']
955 if (metaData.containsKey('options')) {
956 println "Options: "+metaData['options']
958 if (metaData.containsKey('metadata')) {
959 println "metaData: "+metaData['metadata']
961 def userInput = System.console().readLine 'Enter the phone:'
963 extractedObjectsApp1.append("//Global variable for phone!\n")
964 extractedObjectsApp1.append("def "+metaData['input']+" = "+userInput+"\n")
966 extractedObjectsApp2.append("//Global variable for phone!\n")
967 extractedObjectsApp2.append("def "+metaData['input']+" = "+userInput+"\n")
971 if (metaData.containsKey('title')) {
972 println metaData['title']
974 if (metaData.containsKey('options')) {
975 println "Options: "+metaData['options']
977 if (metaData.containsKey('metadata')) {
978 println "metaData: "+metaData['metadata']
980 def userInput = System.console().readLine 'Enter the name of the contact:'
982 extractedObjectsApp1.append("//Global variable for contact!\n")
983 extractedObjectsApp1.append("def "+metaData['input']+" = \""+userInput+"\"\n")
985 extractedObjectsApp2.append("//Global variable for contact!\n")
986 extractedObjectsApp2.append("def "+metaData['input']+" = \""+userInput+"\"\n")