221450008c549c607a8a46d8a808d0d5f2205341
[smartthings-infrastructure.git] / Test / inputMethods.groovy
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")
8
9
10 //Empty the files
11 outGlobal.write("")
12 extractedObjectsApp1.write("")
13 extractedObjectsApp2.write("")
14 extractedObjectsConstructorApp1.write("")
15 extractedObjectsConstructorApp2.write("")
16
17
18 @Field lockIsSet = 0
19 @Field contactIsSet = 0
20 @Field switchIsSet = 0
21 @Field presenceIsSet = 0
22 @Field thermostatIsSet = 0
23 @Field touchSensorIsSet = 0
24 @Field doorControlIsSet = 0
25
26 //input "",""
27 def input(String name, String type, String App) {
28         switch(type) {
29                 case "capability.lock":
30                         if (lockIsSet != 1) {
31                                 lockIsSet = 1
32                                 outGlobal.append("//Global Object for class lock!\n")
33                                 outGlobal.append("@Field def lockObject = new Locks(sendEvent,1)\n")
34                         }
35                         if (App == "App1") {
36                                 extractedObjectsApp1.append("//Object for class lock!\n")
37                                 extractedObjectsApp1.append("def "+name+"\n")
38                                 extractedObjectsConstructorApp1.append(name+" = obj.lockObject\n")              
39                         } else {
40                                 extractedObjectsApp2.append("//Object for class lock!\n")
41                                 extractedObjectsApp2.append("def "+name+"\n")
42                                 extractedObjectsConstructorApp2.append(name+" = obj.lockObject\n")
43                         }
44                         break
45                 case "capability.alarm":
46                         break
47                 case "capability.battery":
48                         break
49                 case "capability.beacon":
50                         break
51                 case "capability.carbonMonoxideDetector":
52                         break
53                 case "capability.colorControl":
54                         break
55                 case "capability.contactSensor":
56                         if (contactIsSet != 1) {
57                                 contactIsSet = 1
58                                 outGlobal.append("//Global Object for class contactSensor!\n")
59                                 outGlobal.append("@Field def contactObject = new ContactSensors(sendEvent,1)\n")
60                         }
61                         if (App == "App1") {
62                                 extractedObjectsApp1.append("//Object for class contactSensor!\n")
63                                 extractedObjectsApp1.append("def "+name+"\n")
64                                 extractedObjectsConstructorApp1.append(name+" = obj.contactObject\n")           
65                         } else {
66                                 extractedObjectsApp2.append("//Object for class contactSensor!\n")
67                                 extractedObjectsApp2.append("def "+name+"\n")
68                                 extractedObjectsConstructorApp2.append(name+" = obj.contactObject\n")
69                         }
70                         break
71                 case "capability.doorControl":
72                         if (doorControlIsSet != 1) {
73                                 doorControlIsSet = 1
74                                 outGlobal.append("//Global Object for class door control!\n")
75                                 outGlobal.append("@Field def doorControlObject = new DoorControls(sendEvent,1)\n")
76                         }
77                         if (App == "App1") {
78                                 extractedObjectsApp1.append("//Object for class door control!\n")
79                                 extractedObjectsApp1.append("def "+name+"\n")
80                                 extractedObjectsConstructorApp1.append(name+" = obj.doorControlObject\n")               
81                         } else {
82                                 extractedObjectsApp2.append("//Object for class door control!\n")
83                                 extractedObjectsApp2.append("def "+name+"\n")
84                                 extractedObjectsConstructorApp2.append(name+" = obj.doorControlObject\n")
85                         }
86                         break
87                 case "capability.energyMeter":
88                         break
89                 case "capability.illuminanceMeasurement":
90                         break
91                 case "capability.accelerationSensor":
92                         break
93                 case "capability.motionSensor":
94                         break
95                 case "capability.musicPlayer":
96                         break
97                 case "capability.powerMeter":
98                         break
99                 case "capability.presenceSensor":
100                         if (presenceIsSet != 1) {
101                                 presenceIsSet = 1
102                                 outGlobal.append("//Global Object for class presence sensor!\n")
103                                 outGlobal.append("@Field def presenceSensorObject = new PresenceSensors(sendEvent,1)\n")
104                         }
105                         if (App == "App1") {
106                                 extractedObjectsApp1.append("//Object for class presence sensor!\n")
107                                 extractedObjectsApp1.append("def "+name+"\n")
108                                 extractedObjectsConstructorApp1.append(name+" = obj.presenceSensorObject\n")            
109                         } else {
110                                 extractedObjectsApp2.append("//Object for class presence sensor!\n")
111                                 extractedObjectsApp2.append("def "+name+"\n")
112                                 extractedObjectsConstructorApp2.append(name+" = obj.presenceSensorObject\n")
113                         }
114                         break
115                 case "capability.relativeHumidityMeasurement":
116                         break
117                 case "capability.relaySwitch":
118                         break
119                 case "capability.sleepSensor":
120                         break
121                 case "capability.smokeDetector":
122                         break
123                 case "capability.stepSensor":
124                         break
125                 case "capability.switch":
126                         if (switchIsSet != 1) {
127                                 switchIsSet = 1
128                                 outGlobal.append("//Global Object for class switch!\n")
129                                 outGlobal.append("@Field def switchObject = new Switches(sendEvent,1)\n")
130                         }
131                         if (App == "App1") {
132                                 extractedObjectsApp1.append("//Object for class switch!\n")
133                                 extractedObjectsApp1.append("def "+name+"\n")
134                                 extractedObjectsConstructorApp1.append(name+" = obj.switchObject\n")            
135                         } else {
136                                 extractedObjectsApp2.append("//Object for class switch!\n")
137                                 extractedObjectsApp2.append("def "+name+"\n")
138                                 extractedObjectsConstructorApp2.append(name+" = obj.switchObject\n")
139                         }
140                         break
141                 case "capability.switchLevel":
142                         break
143                 case "capability.temperatureMeasurement":
144                         break
145                 case "capability.thermostat":
146                         if (thermostatIsSet != 1) {
147                                 thermostatIsSet = 1
148                                 outGlobal.append("//Global Object for class thermostat!\n")
149                                 outGlobal.append("@Field def thermostatObject = new Thermostats(sendEvent,1)\n")
150                         }
151                         if (App == "App1") {
152                                 extractedObjectsApp1.append("//Object for class thermostat!\n")
153                                 extractedObjectsApp1.append("def "+name+"\n")
154                                 extractedObjectsConstructorApp1.append(name+" = obj.thermostatObject\n")                
155                         } else {
156                                 extractedObjectsApp2.append("//Object for class thermostat!\n")
157                                 extractedObjectsApp2.append("def "+name+"\n")
158                                 extractedObjectsConstructorApp2.append(name+" = obj.thermostatObject\n")
159                         }
160                         break
161                 case "capability.valve":
162                         break
163                 case "capability.waterSensor":
164                         break
165                 case "capability.touchSensor":
166                         if (touchSensorIsSet != 1) {
167                                 touchSensorIsSet = 1
168                                 outGlobal.append("//Global Object for class Touch Sensor!\n")
169                                 outGlobal.append("@Field def touchSensorObject = new NfcTouch(sendEvent,1)\n")
170                         }
171                         if (App == "App1") {
172                                 extractedObjectsApp1.append("//Object for class Touch Sensor!\n")
173                                 extractedObjectsApp1.append("def "+name+"\n")
174                                 extractedObjectsConstructorApp1.append(name+" = obj.touchSensorObject\n")               
175                         } else {
176                                 extractedObjectsApp2.append("//Object for class Touch Sensor!\n")
177                                 extractedObjectsApp2.append("def "+name+"\n")
178                                 extractedObjectsConstructorApp2.append(name+" = obj.touchSensorObject\n")
179                         }
180                         break
181                 case "capability.imageCapture":
182                         break
183                 case "device.mobilePresence":
184                         break
185                 case "device.aeonKeyFob":
186                         break
187                 case "mode":
188                         def userInput = System.console().readLine 'Enter the mode:'
189                         if (App == "App1") {                    
190                                 extractedObjectsApp1.append("//Global variable for mode!\n")
191                                 extractedObjectsApp1.append("def "+name+" = \""+userInput+"\"\n")
192                         } else {
193                                 extractedObjectsApp2.append("//Global variable for mode!\n")
194                                 extractedObjectsApp2.append("def "+name+" = \""+userInput+"\"\n")
195                         }
196                         break
197                 case "decimal":
198                         break
199                 case "text":
200                         break
201                 case "number":
202                         def userInput = System.console().readLine 'Enter the number:'
203                         if (App == "App1") {                    
204                                 extractedObjectsApp1.append("//Global variable for number!\n")
205                                 extractedObjectsApp1.append("def "+name+" = "+userInput+"\n")
206                         } else {
207                                 extractedObjectsApp2.append("//Global variable for number!\n")
208                                 extractedObjectsApp2.append("def "+name+" = "+userInput+"\n")
209                         }
210                         break
211                 case "time":
212                         def userInput = System.console().readLine 'Enter the time:'
213                         if (App == "App1") {                    
214                                 extractedObjectsApp1.append("//Global variable for time!\n")
215                                 extractedObjectsApp1.append("def "+name+" = \""+userInput+"\"\n")
216                         } else {
217                                 extractedObjectsApp2.append("//Global variable for time!\n")
218                                 extractedObjectsApp2.append("def "+name+" = \""+userInput+"\"\n")
219                         }
220                         break
221                 case "enum":
222                         def userInput = System.console().readLine 'Enter the enum:'
223                         if (App == "App1") {                    
224                                 extractedObjectsApp1.append("//Global variable for enum!\n")
225                                 extractedObjectsApp1.append("def "+name+" = \""+userInput+"\"\n")
226                         } else {
227                                 extractedObjectsApp2.append("//Global variable for enum!\n")
228                                 extractedObjectsApp2.append("def "+name+" = \""+userInput+"\"\n")
229                         }
230                         break
231                 case "bool":
232                         break
233                 case "phone":
234                         def userInput = System.console().readLine 'Enter the phone:'
235                         if (App == "App1") {                    
236                                 extractedObjectsApp1.append("//Global variable for phone!\n")
237                                 extractedObjectsApp1.append("def "+name+" = "+userInput+"\n")
238                         } else {
239                                 extractedObjectsApp2.append("//Global variable for phone!\n")
240                                 extractedObjectsApp2.append("def "+name+" = "+userInput+"\n")
241                         }
242                         break
243                 case "contact":
244                         def userInput = System.console().readLine 'Enter the name of the contact:'
245                         if (App == "App1") {                    
246                                 extractedObjectsApp1.append("//Global variable for contact!\n")
247                                 extractedObjectsApp1.append("def "+name+" = \""+userInput+"\"\n")
248                         } else {
249                                 extractedObjectsApp2.append("//Global variable for contact!\n")
250                                 extractedObjectsApp2.append("def "+name+" = \""+userInput+"\"\n")
251                         }
252                         break
253                 default:
254                         break
255         }
256 }
257
258 //input "","",linkedHashMap
259 def input(LinkedHashMap metaData, String name, String type, String App) {
260         switch(type) {
261                 case "capability.lock":
262                         if (metaData.containsKey('title')) {
263                                 println metaData['title']
264                         }
265                         if (metaData.containsKey('multiple')) {
266                                 if (metaData['multiple'] == true) {
267                                         if (lockIsSet != 1) {
268                                                 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")
273                                         }       
274                                 }
275                         }
276                         if (lockIsSet != 1) {
277                                 lockIsSet = 1
278                                 outGlobal.append("//Global Object for class lock!\n")
279                                 outGlobal.append("@Field def lockObject = new Locks(sendEvent,1)\n")
280                         }
281                         if (App == "App1") {
282                                 extractedObjectsApp1.append("//Object for class lock!\n")
283                                 extractedObjectsApp1.append("def "+name+"\n")
284                                 extractedObjectsConstructorApp1.append(name+" = obj.lockObject\n")              
285                         } else {
286                                 extractedObjectsApp2.append("//Object for class lock!\n")
287                                 extractedObjectsApp2.append("def "+name+"\n")
288                                 extractedObjectsConstructorApp2.append(name+" = obj.lockObject\n")
289                         }
290                         break
291                 case "capability.alarm":
292                         break
293                 case "capability.battery":
294                         break
295                 case "capability.beacon":
296                         break
297                 case "capability.carbonMonoxideDetector":
298                         break
299                 case "capability.colorControl":
300                         break
301                 case "capability.contactSensor":
302                         if (metaData.containsKey('title')) {
303                                 println metaData['title']
304                         }
305                         if (metaData.containsKey('multiple')) {
306                                 if (metaData['multiple'] == true) {
307                                         if (contactIsSet != 1) {
308                                                 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")
313                                         }       
314                                 }
315                         }
316                         if (contactIsSet != 1) {
317                                 contactIsSet = 1
318                                 outGlobal.append("//Global Object for class contactSensor!\n")
319                                 outGlobal.append("@Field def contactObject = new ContactSensors(sendEvent,1)\n")
320                         }
321                         if (App == "App1") {
322                                 extractedObjectsApp1.append("//Object for class contactSensor!\n")
323                                 extractedObjectsApp1.append("def "+name+"\n")
324                                 extractedObjectsConstructorApp1.append(name+" = obj.contactObject\n")           
325                         } else {
326                                 extractedObjectsApp2.append("//Object for class contactSensor!\n")
327                                 extractedObjectsApp2.append("def "+name+"\n")
328                                 extractedObjectsConstructorApp2.append(name+" = obj.contactObject\n")
329                         }
330                         break
331                 case "capability.doorControl":
332                         if (metaData.containsKey('title')) {
333                                 println metaData['title']
334                         }
335                         if (metaData.containsKey('multiple')) {
336                                 if (metaData['multiple'] == true) {
337                                         if (contactIsSet != 1) {
338                                                 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")
343                                         }       
344                                 }
345                         }
346                         if (doorControlIsSet != 1) {
347                                 doorControlIsSet = 1
348                                 outGlobal.append("//Global Object for class door control!\n")
349                                 outGlobal.append("@Field def doorControlObject = new DoorControls(sendEvent,1)\n")
350                         }
351                         if (App == "App1") {
352                                 extractedObjectsApp1.append("//Object for class door control!\n")
353                                 extractedObjectsApp1.append("def "+name+"\n")
354                                 extractedObjectsConstructorApp1.append(name+" = obj.doorControlObject\n")               
355                         } else {
356                                 extractedObjectsApp2.append("//Object for class door control!\n")
357                                 extractedObjectsApp2.append("def "+name+"\n")
358                                 extractedObjectsConstructorApp2.append(name+" = obj.doorControlObject\n")
359                         }
360                         break
361                 case "capability.energyMeter":
362                         break
363                 case "capability.illuminanceMeasurement":
364                         break
365                 case "capability.accelerationSensor":
366                         break
367                 case "capability.motionSensor":
368                         break
369                 case "capability.musicPlayer":
370                         break
371                 case "capability.powerMeter":
372                         break
373                 case "capability.presenceSensor":
374                         if (metaData.containsKey('title')) {
375                                 println metaData['title']
376                         }
377                         if (metaData.containsKey('multiple')) {
378                                 if (metaData['multiple'] == true) {
379                                         if (presenceIsSet != 1) {
380                                                 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")
385                                         }       
386                                 }
387                         }
388                         if (presenceIsSet != 1) {
389                                 presenceIsSet = 1
390                                 outGlobal.append("//Global Object for class presence sensor!\n")
391                                 outGlobal.append("@Field def presenceSensorObject = new PresenceSensors(sendEvent,1)\n")
392                         }
393                         if (App == "App1") {
394                                 extractedObjectsApp1.append("//Object for class presence sensor!\n")
395                                 extractedObjectsApp1.append("def "+name+"\n")
396                                 extractedObjectsConstructorApp1.append(name+" = obj.presenceSensorObject\n")            
397                         } else {
398                                 extractedObjectsApp2.append("//Object for class presence sensor!\n")
399                                 extractedObjectsApp2.append("def "+name+"\n")
400                                 extractedObjectsConstructorApp2.append(name+" = obj.presenceSensorObject\n")
401                         }
402                         break
403                 case "capability.relativeHumidityMeasurement":
404                         break
405                 case "capability.relaySwitch":
406                         break
407                 case "capability.sleepSensor":
408                         break
409                 case "capability.smokeDetector":
410                         break
411                 case "capability.stepSensor":
412                         break
413                 case "capability.switch":
414                         if (metaData.containsKey('title')) {
415                                 println metaData['title']
416                         }
417                         if (metaData.containsKey('multiple')) {
418                                 if (metaData['multiple'] == true) {
419                                         if (switchIsSet != 1) {
420                                                 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")
425                                         }       
426                                 }
427                         }
428                         if (switchIsSet != 1) {
429                                 switchIsSet = 1
430                                 outGlobal.append("//Global Object for class switch!\n")
431                                 outGlobal.append("@Field def switchObject = new Switches(sendEvent,1)\n")
432                         }
433                         if (App == "App1") {
434                                 extractedObjectsApp1.append("//Object for class switch!\n")
435                                 extractedObjectsApp1.append("def "+name+"\n")
436                                 extractedObjectsConstructorApp1.append(name+" = obj.switchObject\n")            
437                         } else {
438                                 extractedObjectsApp2.append("//Object for class switch!\n")
439                                 extractedObjectsApp2.append("def "+name+"\n")
440                                 extractedObjectsConstructorApp2.append(name+" = obj.switchObject\n")
441                         }
442                         break
443                 case "capability.switchLevel":
444                         break
445                 case "capability.temperatureMeasurement":
446                         break
447                 case "capability.thermostat":
448                         if (metaData.containsKey('title')) {
449                                 println metaData['title']
450                         }
451                         if (metaData.containsKey('multiple')) {
452                                 if (metaData['multiple'] == true) {
453                                         if (thermostatIsSet != 1) {
454                                                 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")
459                                         }       
460                                 }
461                         }
462                         if (thermostatIsSet != 1) {
463                                 thermostatIsSet = 1
464                                 outGlobal.append("//Global Object for class thermostat!\n")
465                                 outGlobal.append("@Field def thermostatObject = new Thermostats(sendEvent,1)\n")
466                         }
467                         if (App == "App1") {
468                                 extractedObjectsApp1.append("//Object for class thermostat!\n")
469                                 extractedObjectsApp1.append("def "+name+"\n")
470                                 extractedObjectsConstructorApp1.append(name+" = obj.thermostatObject\n")                
471                         } else {
472                                 extractedObjectsApp2.append("//Object for class thermostat!\n")
473                                 extractedObjectsApp2.append("def "+name+"\n")
474                                 extractedObjectsConstructorApp2.append(name+" = obj.thermostatObject\n")
475                         }                       
476                         break
477                 case "capability.valve":
478                         break
479                 case "capability.waterSensor":
480                         break
481                 case "capability.touchSensor":
482                         if (touchSensorIsSet != 1) {
483                                 touchSensorIsSet = 1
484                                 outGlobal.append("//Global Object for class Touch Sensor!\n")
485                                 outGlobal.append("@Field def touchSensorObject = new NfcTouch(sendEvent,1)\n")
486                         }
487                         if (App == "App1") {
488                                 extractedObjectsApp1.append("//Object for class Touch Sensor!\n")
489                                 extractedObjectsApp1.append("def "+name+"\n")
490                                 extractedObjectsConstructorApp1.append(name+" = obj.touchSensorObject\n")               
491                         } else {
492                                 extractedObjectsApp2.append("//Object for class Touch Sensor!\n")
493                                 extractedObjectsApp2.append("def "+name+"\n")
494                                 extractedObjectsConstructorApp2.append(name+" = obj.touchSensorObject\n")
495                         }
496                         break
497                 case "capability.imageCapture":
498                         break
499                 case "device.mobilePresence":
500                         break
501                 case "device.aeonKeyFob":
502                         break
503                 case "mode":
504                         if (metaData.containsKey('title')) {
505                                 println metaData['title']
506                         }
507                         if (metaData.containsKey('options')) {
508                                 println "Options: "+metaData['options']
509                         }
510                         def userInput = System.console().readLine 'Enter the mode:'
511                         if (App == "App1") {                    
512                                 extractedObjectsApp1.append("//Global variable for mode!\n")
513                                 extractedObjectsApp1.append("def "+name+" = \""+userInput+"\"\n")
514                         } else {
515                                 extractedObjectsApp2.append("//Global variable for mode!\n")
516                                 extractedObjectsApp2.append("def "+name+" = \""+userInput+"\"\n")
517                         }
518                         break
519                 case "decimal":
520                         break
521                 case "text":
522                         break
523                 case "number":
524                         if (metaData.containsKey('title')) {
525                                 println metaData['title']
526                         }
527                         if (metaData.containsKey('options')) {
528                                 println "Options: "+metaData['options']
529                         }
530                         if (metaData.containsKey('metadata')) {
531                                 println "metaData: "+metaData['metadata']
532                         }
533                         def userInput = System.console().readLine 'Enter the number:'
534                         if (App == "App1") {                    
535                                 extractedObjectsApp1.append("//Global variable for number!\n")
536                                 extractedObjectsApp1.append("def "+name+" = "+userInput+"\n")
537                         } else {
538                                 extractedObjectsApp2.append("//Global variable for number!\n")
539                                 extractedObjectsApp2.append("def "+name+" = "+userInput+"\n")
540                         }
541                         break
542                 case "time":
543                         if (metaData.containsKey('title')) {
544                                 println metaData['title']
545                         }
546                         if (metaData.containsKey('options')) {
547                                 println "Options: "+metaData['options']
548                         }
549                         if (metaData.containsKey('metadata')) {
550                                 println "metaData: "+metaData['metadata']
551                         }
552                         def userInput = System.console().readLine 'Enter the time:'
553                         if (App == "App1") {                    
554                                 extractedObjectsApp1.append("//Global variable for time!\n")
555                                 extractedObjectsApp1.append("def "+name+" = \""+userInput+"\"\n")
556                         } else {
557                                 extractedObjectsApp2.append("//Global variable for time!\n")
558                                 extractedObjectsApp2.append("def "+name+" = \""+userInput+"\"\n")
559                         }
560                         break
561                 case "enum":
562                         if (metaData.containsKey('title')) {
563                                 println metaData['title']
564                         }
565                         if (metaData.containsKey('options')) {
566                                 println "Options: "+metaData['options']
567                         }
568                         if (metaData.containsKey('metadata')) {
569                                 println "metaData: "+metaData['metadata']
570                         }
571                         def userInput = System.console().readLine 'Enter the enum:'
572                         if (App == "App1") {                    
573                                 extractedObjectsApp1.append("//Global variable for enum!\n")
574                                 extractedObjectsApp1.append("def "+name+" = \""+userInput+"\"\n")
575                         } else {
576                                 extractedObjectsApp2.append("//Global variable for enum!\n")
577                                 extractedObjectsApp2.append("def "+name+" = \""+userInput+"\"\n")
578                         }
579                         break
580                 case "bool":
581                         break
582                 case "phone":
583                         if (metaData.containsKey('title')) {
584                                 println metaData['title']
585                         }
586                         if (metaData.containsKey('options')) {
587                                 println "Options: "+metaData['options']
588                         }
589                         if (metaData.containsKey('metadata')) {
590                                 println "metaData: "+metaData['metadata']
591                         }
592                         def userInput = System.console().readLine 'Enter the phone:'
593                         if (App == "App1") {                    
594                                 extractedObjectsApp1.append("//Global variable for phone!\n")
595                                 extractedObjectsApp1.append("def "+name+" = "+userInput+"\n")
596                         } else {
597                                 extractedObjectsApp2.append("//Global variable for phone!\n")
598                                 extractedObjectsApp2.append("def "+name+" = "+userInput+"\n")
599                         }
600                         break
601                 case "contact":
602                         if (metaData.containsKey('title')) {
603                                 println metaData['title']
604                         }
605                         if (metaData.containsKey('options')) {
606                                 println "Options: "+metaData['options']
607                         }
608                         if (metaData.containsKey('metadata')) {
609                                 println "metaData: "+metaData['metadata']
610                         }
611                         def userInput = System.console().readLine 'Enter the name of the contact:'
612                         if (App == "App1") {                    
613                                 extractedObjectsApp1.append("//Global variable for contact!\n")
614                                 extractedObjectsApp1.append("def "+name+" = \""+userInput+"\"\n")
615                         } else {
616                                 extractedObjectsApp2.append("//Global variable for contact!\n")
617                                 extractedObjectsApp2.append("def "+name+" = \""+userInput+"\"\n")
618                         }
619                         break
620                 default:
621                         break
622         }
623 }
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']
630                         }
631                         if (metaData.containsKey('multiple')) {
632                                 if (metaData['multiple'] == true) {
633                                         if (lockIsSet != 1) {
634                                                 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")
639                                         }       
640                                 }
641                         }
642                         if (lockIsSet != 1) {
643                                 lockIsSet = 1
644                                 outGlobal.append("//Global Object for class lock!\n")
645                                 outGlobal.append("@Field def lockObject = new Locks(sendEvent,1)\n")
646                         }
647                         if (App == "App1") {
648                                 extractedObjectsApp1.append("//Object for class lock!\n")
649                                 extractedObjectsApp1.append("def "+metaData['input']+"\n")
650                                 extractedObjectsConstructorApp1.append(metaData['input']+" = obj.lockObject\n")         
651                         } else {
652                                 extractedObjectsApp2.append("//Object for class lock!\n")
653                                 extractedObjectsApp2.append("def "+metaData['input']+"\n")
654                                 extractedObjectsConstructorApp2.append(metaData['input']+" = obj.lockObject\n")
655                         }
656                         break
657                 case "capability.alarm":
658                         break
659                 case "capability.battery":
660                         break
661                 case "capability.beacon":
662                         break
663                 case "capability.carbonMonoxideDetector":
664                         break
665                 case "capability.colorControl":
666                         break
667                 case "capability.contactSensor":
668                         if (metaData.containsKey('title')) {
669                                 println metaData['title']
670                         }
671                         if (metaData.containsKey('multiple')) {
672                                 if (metaData['multiple'] == true) {
673                                         if (contactIsSet != 1) {
674                                                 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")
679                                         }       
680                                 }
681                         }
682                         if (contactIsSet != 1) {
683                                 contactIsSet = 1
684                                 outGlobal.append("//Global Object for class contactSensor!\n")
685                                 outGlobal.append("@Field def contactObject = new ContactSensors(sendEvent,1)\n")
686                         }
687                         if (App == "App1") {
688                                 extractedObjectsApp1.append("//Object for class contactSensor!\n")
689                                 extractedObjectsApp1.append("def "+metaData['input']+"\n")
690                                 extractedObjectsConstructorApp1.append(metaData['input']+" = obj.contactObject\n")              
691                         } else {
692                                 extractedObjectsApp2.append("//Object for class contactSensor!\n")
693                                 extractedObjectsApp2.append("def "+metaData['input']+"\n")
694                                 extractedObjectsConstructorApp2.append(metaData['input']+" = obj.contactObject\n")
695                         }
696                         break
697                 case "capability.doorControl":
698                         if (metaData.containsKey('title')) {
699                                 println metaData['title']
700                         }
701                         if (metaData.containsKey('multiple')) {
702                                 if (metaData['multiple'] == true) {
703                                         if (contactIsSet != 1) {
704                                                 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")
709                                         }       
710                                 }
711                         }
712                         if (doorControlIsSet != 1) {
713                                 doorControlIsSet = 1
714                                 outGlobal.append("//Global Object for class door control!\n")
715                                 outGlobal.append("@Field def doorControlObject = new DoorControls(sendEvent,1)\n")
716                         }
717                         if (App == "App1") {
718                                 extractedObjectsApp1.append("//Object for class door control!\n")
719                                 extractedObjectsApp1.append("def "+metaData['input']+"\n")
720                                 extractedObjectsConstructorApp1.append(metaData['input']+" = obj.doorControlObject\n")          
721                         } else {
722                                 extractedObjectsApp2.append("//Object for class door control!\n")
723                                 extractedObjectsApp2.append("def "+metaData['input']+"\n")
724                                 extractedObjectsConstructorApp2.append(metaData['input']+" = obj.doorControlObject\n")
725                         }
726                         break
727                 case "capability.energyMeter":
728                         break
729                 case "capability.illuminanceMeasurement":
730                         break
731                 case "capability.accelerationSensor":
732                         break
733                 case "capability.motionSensor":
734                         break
735                 case "capability.musicPlayer":
736                         break
737                 case "capability.powerMeter":
738                         break
739                 case "capability.presenceSensor":
740                         if (metaData.containsKey('title')) {
741                                 println metaData['title']
742                         }
743                         if (metaData.containsKey('multiple')) {
744                                 if (metaData['multiple'] == true) {
745                                         if (presenceIsSet != 1) {
746                                                 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")
751                                         }       
752                                 }
753                         }
754                         if (presenceIsSet != 1) {
755                                 presenceIsSet = 1
756                                 outGlobal.append("//Global Object for class presence sensor!\n")
757                                 outGlobal.append("@Field def presenceSensorObject = new PresenceSensors(sendEvent,1)\n")
758                         }
759                         if (App == "App1") {
760                                 extractedObjectsApp1.append("//Object for class presence sensor!\n")
761                                 extractedObjectsApp1.append("def "+metaData['input']+"\n")
762                                 extractedObjectsConstructorApp1.append(metaData['input']+" = obj.presenceSensorObject\n")               
763                         } else {
764                                 extractedObjectsApp2.append("//Object for class presence sensor!\n")
765                                 extractedObjectsApp2.append("def "+metaData['input']+"\n")
766                                 extractedObjectsConstructorApp2.append(metaData['input']+" = obj.presenceSensorObject\n")
767                         }
768                         break
769                 case "capability.relativeHumidityMeasurement":
770                         break
771                 case "capability.relaySwitch":
772                         break
773                 case "capability.sleepSensor":
774                         break
775                 case "capability.smokeDetector":
776                         break
777                 case "capability.stepSensor":
778                         break
779                 case "capability.switch":
780                         if (metaData.containsKey('title')) {
781                                 println metaData['title']
782                         }
783                         if (metaData.containsKey('multiple')) {
784                                 if (metaData['multiple'] == true) {
785                                         if (switchIsSet != 1) {
786                                                 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")
791                                         }       
792                                 }
793                         }
794                         if (switchIsSet != 1) {
795                                 switchIsSet = 1
796                                 outGlobal.append("//Global Object for class switch!\n")
797                                 outGlobal.append("@Field def switchObject = new Switches(sendEvent,1)\n")
798                         }
799                         if (App == "App1") {
800                                 extractedObjectsApp1.append("//Object for class switch!\n")
801                                 extractedObjectsApp1.append("def "+metaData['input']+"\n")
802                                 extractedObjectsConstructorApp1.append(metaData['input']+" = obj.switchObject\n")               
803                         } else {
804                                 extractedObjectsApp2.append("//Object for class switch!\n")
805                                 extractedObjectsApp2.append("def "+metaData['input']+"\n")
806                                 extractedObjectsConstructorApp2.append(metaData['input']+" = obj.switchObject\n")
807                         }
808                         break
809                 case "capability.switchLevel":
810                         break
811                 case "capability.temperatureMeasurement":
812                         break   
813                 case "capability.thermostat":
814                         if (metaData.containsKey('title')) {
815                                 println metaData['title']
816                         }
817                         if (metaData.containsKey('multiple')) {
818                                 if (metaData['multiple'] == true) {
819                                         if (thermostatIsSet != 1) {
820                                                 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")
825                                         }       
826                                 }
827                         }
828                         if (thermostatIsSet != 1) {
829                                 thermostatIsSet = 1
830                                 outGlobal.append("//Global Object for class thermostat!\n")
831                                 outGlobal.append("@Field def thermostatObject = new Thermostats(sendEvent,1)\n")
832                         }
833                         if (App == "App1") {
834                                 extractedObjectsApp1.append("//Object for class thermostat!\n")
835                                 extractedObjectsApp1.append("def "+metaData['input']+"\n")
836                                 extractedObjectsConstructorApp1.append(metaData['input']+" = obj.thermostatObject\n")           
837                         } else {
838                                 extractedObjectsApp2.append("//Object for class thermostat!\n")
839                                 extractedObjectsApp2.append("def "+metaData['input']+"\n")
840                                 extractedObjectsConstructorApp2.append(metaData['input']+" = obj.thermostatObject\n")
841                         }
842                         break
843                 case "capability.valve":
844                         break
845                 case "capability.waterSensor":
846                         break
847                 case "capability.touchSensor":
848                         if (touchSensorIsSet != 1) {
849                                 touchSensorIsSet = 1
850                                 outGlobal.append("//Global Object for class Touch Sensor!\n")
851                                 outGlobal.append("@Field def touchSensorObject = new NfcTouch(sendEvent,1)\n")
852                         }
853                         if (App == "App1") {
854                                 extractedObjectsApp1.append("//Object for class Touch Sensor!\n")
855                                 extractedObjectsApp1.append("def "+metaData['input']+"\n")
856                                 extractedObjectsConstructorApp1.append(metaData['input']+" = obj.touchSensorObject\n")          
857                         } else {
858                                 extractedObjectsApp2.append("//Object for class Touch Sensor!\n")
859                                 extractedObjectsApp2.append("def "+metaData['input']+"\n")
860                                 extractedObjectsConstructorApp2.append(metaData['input']+" = obj.touchSensorObject\n")
861                         }
862                         break
863                 case "capability.imageCapture":
864                         break
865                 case "device.mobilePresence":
866                         break
867                 case "device.aeonKeyFob":
868                         break
869                 case "mode":
870                         if (metaData.containsKey('title')) {
871                                 println metaData['title']
872                         }
873                         if (metaData.containsKey('options')) {
874                                 println "Options: "+metaData['options']
875                         }
876                         if (metaData.containsKey('metadata')) {
877                                 println "metaData: "+metaData['metadata']
878                         }
879                         def userInput = System.console().readLine 'Enter the mode:'
880                         if (App == "App1") {                    
881                                 extractedObjectsApp1.append("//Global variable for mode!\n")
882                                 extractedObjectsApp1.append("def "+metaData['input']+" = \""+userInput+"\"\n")
883                         } else {
884                                 extractedObjectsApp2.append("//Global variable for mode!\n")
885                                 extractedObjectsApp2.append("def "+metaData['input']+" = \""+userInput+"\"\n")
886                         }
887                         break
888                 case "decimal":
889                         break
890                 case "text":
891                         break
892                 case "number":
893                         if (metaData.containsKey('title')) {
894                                 println metaData['title']
895                         }
896                         if (metaData.containsKey('options')) {
897                                 println "Options: "+metaData['options']
898                         }
899                         if (metaData.containsKey('metadata')) {
900                                 println "metaData: "+metaData['metadata']
901                         }
902                         def userInput = System.console().readLine 'Enter the number:'
903                         if (App == "App1") {                    
904                                 extractedObjectsApp1.append("//Global variable for number!\n")
905                                 extractedObjectsApp1.append("def "+metaData['input']+" = "+userInput+"\n")
906                         } else {
907                                 extractedObjectsApp2.append("//Global variable for number!\n")
908                                 extractedObjectsApp2.append("def "+metaData['input']+" = "+userInput+"\n")
909                         }
910                         break
911                 case "time":
912                         if (metaData.containsKey('title')) {
913                                 println metaData['title']
914                         }
915                         if (metaData.containsKey('options')) {
916                                 println "Options: "+metaData['options']
917                         }
918                         if (metaData.containsKey('metadata')) {
919                                 println "metaData: "+metaData['metadata']
920                         }
921                         def userInput = System.console().readLine 'Enter the time:'
922                         if (App == "App1") {                    
923                                 extractedObjectsApp1.append("//Global variable for time!\n")
924                                 extractedObjectsApp1.append("def "+metaData['input']+" = \""+userInput+"\"\n")
925                         } else {
926                                 extractedObjectsApp2.append("//Global variable for time!\n")
927                                 extractedObjectsApp2.append("def "+metaData['input']+" = \""+userInput+"\"\n")
928                         }
929                         break
930                 case "enum":
931                         if (metaData.containsKey('title')) {
932                                 println metaData['title']
933                         }
934                         if (metaData.containsKey('options')) {
935                                 println "Options: "+metaData['options']
936                         }
937                         if (metaData.containsKey('metadata')) {
938                                 println "metaData: "+metaData['metadata']
939                         }
940                         def userInput = System.console().readLine 'Enter the enum:'
941                         if (App == "App1") {                    
942                                 extractedObjectsApp1.append("//Global variable for enum!\n")
943                                 extractedObjectsApp1.append("def "+metaData['input']+" = \""+userInput+"\"\n")
944                         } else {
945                                 extractedObjectsApp2.append("//Global variable for enum!\n")
946                                 extractedObjectsApp2.append("def "+metaData['input']+" = \""+userInput+"\"\n")
947                         }
948                         break
949                 case "bool":
950                         break
951                 case "phone":
952                         if (metaData.containsKey('title')) {
953                                 println metaData['title']
954                         }
955                         if (metaData.containsKey('options')) {
956                                 println "Options: "+metaData['options']
957                         }
958                         if (metaData.containsKey('metadata')) {
959                                 println "metaData: "+metaData['metadata']
960                         }
961                         def userInput = System.console().readLine 'Enter the phone:'
962                         if (App == "App1") {                    
963                                 extractedObjectsApp1.append("//Global variable for phone!\n")
964                                 extractedObjectsApp1.append("def "+metaData['input']+" = "+userInput+"\n")
965                         } else {
966                                 extractedObjectsApp2.append("//Global variable for phone!\n")
967                                 extractedObjectsApp2.append("def "+metaData['input']+" = "+userInput+"\n")
968                         }
969                         break
970                 case "contact":
971                         if (metaData.containsKey('title')) {
972                                 println metaData['title']
973                         }
974                         if (metaData.containsKey('options')) {
975                                 println "Options: "+metaData['options']
976                         }
977                         if (metaData.containsKey('metadata')) {
978                                 println "metaData: "+metaData['metadata']
979                         }
980                         def userInput = System.console().readLine 'Enter the name of the contact:'
981                         if (App == "App1") {                    
982                                 extractedObjectsApp1.append("//Global variable for contact!\n")
983                                 extractedObjectsApp1.append("def "+metaData['input']+" = \""+userInput+"\"\n")
984                         } else {
985                                 extractedObjectsApp2.append("//Global variable for contact!\n")
986                                 extractedObjectsApp2.append("def "+metaData['input']+" = \""+userInput+"\"\n")
987                         }
988                         break
989                 default:
990                         break
991         }       
992 }