@@ -688,29 +688,52 @@ public String toString() {
688688 }
689689 };
690690
691- public static final Builder <List <Map .Entry <String , List <StreamEntry >>>> STREAM_READ_RESPONSE
692- = new Builder <List <Map .Entry <String , List <StreamEntry >>>>() {
691+ public static final Builder <List <StreamEntryID >> STREAM_ENTRY_ID_LIST = new Builder <List <StreamEntryID >>() {
693692 @ Override
694- public List <Map .Entry <String , List <StreamEntry >>> build (Object data ) {
695- if (data == null ) {
693+ @ SuppressWarnings ("unchecked" )
694+ public List <StreamEntryID > build (Object data ) {
695+ if (null == data ) {
696696 return null ;
697697 }
698- List <Object > streams = (List <Object >) data ;
698+ List <Object > objectList = (List <Object >) data ;
699+ List <StreamEntryID > responses = new ArrayList <>(objectList .size ());
700+ if (!objectList .isEmpty ()) {
701+ for (Object object : objectList ) {
702+ responses .add (STREAM_ENTRY_ID .build (object ));
703+ }
704+ }
705+ return responses ;
706+ }
707+ };
699708
700- List < Map . Entry < String , List < StreamEntry >>> result = new ArrayList <>( streams . size ());
701- for ( Object streamObj : streams ) {
702- List < Object > stream = ( List < Object >) streamObj ;
703- String streamId = SafeEncoder . encode (( byte []) stream . get ( 0 ));
704- List < StreamEntry > streamEntries = BuilderFactory . STREAM_ENTRY_LIST . build ( stream . get ( 1 ));
705- result . add ( new AbstractMap . SimpleEntry <>( streamId , streamEntries )) ;
709+ public static final Builder < StreamEntry > STREAM_ENTRY = new Builder < StreamEntry >() {
710+ @ Override
711+ @ SuppressWarnings ( "unchecked" )
712+ public StreamEntry build ( Object data ) {
713+ if ( null == data ) {
714+ return null ;
706715 }
716+ List <Object > objectList = (List <Object >) data ;
707717
708- return result ;
718+ if (objectList .isEmpty ()) {
719+ return null ;
720+ }
721+
722+ String entryIdString = SafeEncoder .encode ((byte []) objectList .get (0 ));
723+ StreamEntryID entryID = new StreamEntryID (entryIdString );
724+ List <byte []> hash = (List <byte []>) objectList .get (1 );
725+
726+ Iterator <byte []> hashIterator = hash .iterator ();
727+ Map <String , String > map = new HashMap <>(hash .size () / 2 );
728+ while (hashIterator .hasNext ()) {
729+ map .put (SafeEncoder .encode (hashIterator .next ()), SafeEncoder .encode (hashIterator .next ()));
730+ }
731+ return new StreamEntry (entryID , map );
709732 }
710733
711734 @ Override
712735 public String toString () {
713- return "List<Entry<String, List< StreamEntry>>> " ;
736+ return "StreamEntry" ;
714737 }
715738 };
716739
@@ -754,34 +777,29 @@ public String toString() {
754777 }
755778 };
756779
757- public static final Builder <StreamEntry > STREAM_ENTRY = new Builder <StreamEntry >() {
780+ public static final Builder <List <Map .Entry <String , List <StreamEntry >>>> STREAM_READ_RESPONSE
781+ = new Builder <List <Map .Entry <String , List <StreamEntry >>>>() {
758782 @ Override
759- @ SuppressWarnings ("unchecked" )
760- public StreamEntry build (Object data ) {
761- if (null == data ) {
783+ public List <Map .Entry <String , List <StreamEntry >>> build (Object data ) {
784+ if (data == null ) {
762785 return null ;
763786 }
764- List <Object > objectList = (List <Object >) data ;
787+ List <Object > streams = (List <Object >) data ;
765788
766- if (objectList .isEmpty ()) {
767- return null ;
789+ List <Map .Entry <String , List <StreamEntry >>> result = new ArrayList <>(streams .size ());
790+ for (Object streamObj : streams ) {
791+ List <Object > stream = (List <Object >) streamObj ;
792+ String streamId = SafeEncoder .encode ((byte []) stream .get (0 ));
793+ List <StreamEntry > streamEntries = BuilderFactory .STREAM_ENTRY_LIST .build (stream .get (1 ));
794+ result .add (new AbstractMap .SimpleEntry <>(streamId , streamEntries ));
768795 }
769796
770- String entryIdString = SafeEncoder .encode ((byte []) objectList .get (0 ));
771- StreamEntryID entryID = new StreamEntryID (entryIdString );
772- List <byte []> hash = (List <byte []>) objectList .get (1 );
773-
774- Iterator <byte []> hashIterator = hash .iterator ();
775- Map <String , String > map = new HashMap <>(hash .size () / 2 );
776- while (hashIterator .hasNext ()) {
777- map .put (SafeEncoder .encode (hashIterator .next ()), SafeEncoder .encode (hashIterator .next ()));
778- }
779- return new StreamEntry (entryID , map );
797+ return result ;
780798 }
781799
782800 @ Override
783801 public String toString () {
784- return "StreamEntry" ;
802+ return "List<Entry<String, List< StreamEntry>>> " ;
785803 }
786804 };
787805
0 commit comments