@@ -42,14 +42,14 @@ public enum ConnectionType {
4242 private final String modelDocPath = "docs/" ;
4343
4444 {
45- addOption ("targetSdkVersion" , "" , "28" );
46- addOption ("minSdkVersion" , "" , "19" );
47- addOption ("compileSdkVersion" , "" , "28" );
48- addOption ("deviceConnectPluginSdkVersion" , "" , "2.7.2" );
49- addOption ("deviceConnectSdkForAndroidVersion" , "" , "2.3.1" );
45+ putOption ("targetSdkVersion" , "" , "28" );
46+ putOption ("minSdkVersion" , "" , "19" );
47+ putOption ("compileSdkVersion" , "" , "28" );
48+ putOption ("deviceConnectPluginSdkVersion" , "" , "2.7.2" );
49+ putOption ("deviceConnectSdkForAndroidVersion" , "" , "2.3.1" );
5050 }
5151
52- private void addOption (final String name , final String description , final String defaultValue ) {
52+ private void putOption (final String name , final String description , final String defaultValue ) {
5353 CliOption option = CliOption .newString (name , description );
5454 option .setDefault (defaultValue );
5555 this .cliOptions .add (option );
@@ -595,7 +595,7 @@ protected List<String> getResponseCreation(final Swagger swagger, final Response
595595
596596 Map <String , Property > props = root .getProperties ();
597597 if (props != null && props .size () > 0 ) {
598- writeExampleResponse (root , "root" , lines );
598+ writeExampleResponse (swagger , root , "root" , lines );
599599 }
600600 return lines ;
601601 }
@@ -636,30 +636,42 @@ protected List<String> getEventCreation(final Swagger swagger, final Response ev
636636
637637 Map <String , Property > props = root .getProperties ();
638638 if (props != null && props .size () > 0 ) {
639- writeExampleEvent (root , "root" , lines );
639+ writeExampleEvent (swagger , root , "root" , lines );
640640 }
641641 return lines ;
642642 }
643643
644- private void writeExampleResponse (final ObjectProperty root , final String rootName ,
644+ private void writeExampleResponse (final Swagger swagger ,
645+ final ObjectProperty root ,
646+ final String rootName ,
645647 final List <String > lines ) {
646648 lines .add ("Bundle " + rootName + " = response.getExtras();" );
647- writeExampleMessage (root , rootName , "" , lines );
649+ writeExampleMessage (swagger , root , rootName , "" , lines );
648650 lines .add ("response.putExtras(" + rootName + ");" );
649651 }
650652
651- private void writeExampleEvent (final ObjectProperty root , final String rootName ,
653+ private void writeExampleEvent (final Swagger swagger ,
654+ final ObjectProperty root ,
655+ final String rootName ,
652656 final List <String > lines ) {
653657 lines .add ("Bundle " + rootName + " = message.getExtras();" );
654- writeExampleMessage (root , rootName , "" , lines );
658+ writeExampleMessage (swagger , root , rootName , "" , lines );
655659 lines .add ("message.putExtras(" + rootName + ");" );
656660 }
657661
658- private void writeExampleMessage (final ObjectProperty root ,
662+ private void writeExampleMessage (final Swagger swagger ,
663+ final ObjectProperty root ,
664+ final String rootName ,
665+ final String objectNamePrefix ,
666+ final List <String > lines ) {
667+ writeExampleMessage (swagger , root .getProperties (), rootName , objectNamePrefix , lines );
668+ }
669+
670+ private void writeExampleMessage (final Swagger swagger ,
671+ final Map <String , Property > props ,
659672 final String rootName ,
660673 final String objectNamePrefix ,
661674 final List <String > lines ) {
662- Map <String , Property > props = root .getProperties ();
663675 if (props == null ) {
664676 return ;
665677 }
@@ -670,31 +682,36 @@ private void writeExampleMessage(final ObjectProperty root,
670682 String type = prop .getType ();
671683 String format = prop .getFormat ();
672684 if ("array" .equals (type )) {
673- ArrayProperty arrayProp ;
674- if (!(prop instanceof ArrayProperty )) {
685+ System . out . println ( "writeExampleMessage: array: " + prop . getClass ()) ;
686+ if (!(prop instanceof ArrayProperty )) {
675687 continue ;
676688 }
677- arrayProp = (ArrayProperty ) prop ;
689+ ArrayProperty arrayProp = (ArrayProperty ) prop ;
678690 Property itemsProp = arrayProp .getItems ();
679- String arrayClassName = getArrayClassName (itemsProp );
680- if (arrayClassName == null ) {
681- continue ;
682- }
683- lines .add (arrayClassName + "[] " + propName + " = new " + arrayClassName + "[1];" );
684- if ("object" .equals (itemsProp .getType ())) {
685- String index = "0" ;
686- String objectPropName = getObjectName (objectNamePrefix , propName );
687- String arrayPropName = objectPropName + "[" + index + "]" ;
688- lines .add (arrayPropName + " = new Bundle();" );
689- writeExampleMessage ((ObjectProperty ) itemsProp , arrayPropName , objectPropName , lines );
690- lines .add (rootName + ".putParcelableArray(\" " + propName + "\" , " + objectPropName + ");" );
691+ System .out .println ("writeExampleMessage: itemsProp: " + itemsProp .getClass ());
692+ if (itemsProp instanceof RefProperty ) {
693+ RefProperty refItemsProp = (RefProperty ) itemsProp ;
694+ System .out .println ("writeExampleMessage: refItemsProp: SimpleRef = " + refItemsProp .getSimpleRef ()
695+ + ", $ref = " + refItemsProp .get$ref ()
696+ + ", RefFormat = " + refItemsProp .getRefFormat ());
697+ Model itemModel = findDefinition (swagger , refItemsProp .getSimpleRef ());
698+ writeArrayExample (swagger , rootName , propName , itemModel .getProperties (), objectNamePrefix , lines );
691699 } else {
692- lines .add (propName + "[0] = " + getExampleValue (itemsProp ) + ";" );
693- String setterName = getSetterName (itemsProp .getType (), itemsProp .getFormat ());
694- if (setterName == null ) {
700+ String arrayClassName = getArrayClassName (itemsProp );
701+ if (arrayClassName == null ) {
695702 continue ;
696703 }
697- lines .add (rootName + "." + setterName + "Array(\" " + propName + "\" , " + propName + ");" );
704+ lines .add (arrayClassName + "[] " + propName + " = new " + arrayClassName + "[1];" );
705+ if ("object" .equals (itemsProp .getType ())) {
706+ writeArrayExample (swagger , rootName , propName , ((ObjectProperty ) itemsProp ).getProperties (), objectNamePrefix , lines );
707+ } else {
708+ lines .add (propName + "[0] = " + getExampleValue (itemsProp ) + ";" );
709+ String setterName = getSetterName (itemsProp .getType (), itemsProp .getFormat ());
710+ if (setterName == null ) {
711+ continue ;
712+ }
713+ lines .add (rootName + "." + setterName + "Array(\" " + propName + "\" , " + propName + ");" );
714+ }
698715 }
699716 } else if ("object" .equals (type )) {
700717 ObjectProperty objectProp ;
@@ -704,7 +721,7 @@ private void writeExampleMessage(final ObjectProperty root,
704721 objectProp = (ObjectProperty ) prop ;
705722 String objectPropName = getObjectName (objectNamePrefix , propName );
706723 lines .add ("Bundle " + objectPropName + " = new Bundle();" );
707- writeExampleMessage (objectProp , objectPropName , objectPropName , lines );
724+ writeExampleMessage (swagger , objectProp , objectPropName , objectPropName , lines );
708725 lines .add (rootName + ".putBundle(\" " + propName + "\" , " + objectPropName + ");" );
709726 } else {
710727 String setterName = getSetterName (type , format );
@@ -716,6 +733,20 @@ private void writeExampleMessage(final ObjectProperty root,
716733 }
717734 }
718735
736+ private void writeArrayExample (final Swagger swagger ,
737+ final String rootName ,
738+ final String propName ,
739+ final Map <String , Property > props ,
740+ final String objectNamePrefix ,
741+ final List <String > lines ) {
742+ String index = "0" ;
743+ String objectPropName = getObjectName (objectNamePrefix , propName );
744+ String arrayPropName = objectPropName + "[" + index + "]" ;
745+ lines .add (arrayPropName + " = new Bundle();" );
746+ writeExampleMessage (swagger , props , arrayPropName , objectPropName , lines );
747+ lines .add (rootName + ".putParcelableArray(\" " + propName + "\" , " + objectPropName + ");" );
748+ }
749+
719750 private String getObjectName (final String rootName , final String name ) {
720751 return concatAsCamelCase (rootName , name );
721752 }
0 commit comments