3636import  static  uk .co .real_logic .sbe .ir .GenerationUtil .collectGroups ;
3737import  static  uk .co .real_logic .sbe .ir .GenerationUtil .collectFields ;
3838
39+ @ SuppressWarnings ("MethodLength" )
3940public  class  GolangGenerator  implements  CodeGenerator 
4041{
4142 private  final  Ir  ir ;
@@ -182,11 +183,11 @@ private String generateEncodeOffset(final int gap, final String indent)
182183 {
183184 return  String .format (
184185 "\n "  +
185-    "%1$s\t for i := 0; i < %2$d; i++ {\n "  +
186-    "%1$s\t \t if err := _m.WriteUint8(_w, uint8(0)); err != nil {\n "  +
187-    "%1$s\t \t \t return err\n "  +
188-    "%1$s\t \t }\n "  +
189-    "%1$s\t }\n " ,
186+  "%1$s\t for i := 0; i < %2$d; i++ {\n "  +
187+  "%1$s\t \t if err := _m.WriteUint8(_w, uint8(0)); err != nil {\n "  +
188+  "%1$s\t \t \t return err\n "  +
189+  "%1$s\t \t }\n "  +
190+  "%1$s\t }\n " ,
190191 indent ,
191192 gap );
192193 }
@@ -215,11 +216,11 @@ private void generateCharacterEncodingRangeCheck(
215216 this .imports .add ("fmt" );
216217 sb .append (String .format (
217218 "\t for idx, ch := range %1$s {\n "  +
218-    "\t \t if ch > 127 {\n "  +
219-    "\t \t \t return fmt.Errorf(\" %1$s[%%d]=%%d"  +
220-    " failed ASCII validation\" , idx, ch)\n "  +
221-    "\t \t }\n "  +
222-    "\t }\n " ,
219+  "\t \t if ch > 127 {\n "  +
220+  "\t \t \t return fmt.Errorf(\" %1$s[%%d]=%%d"  +
221+  " failed ASCII validation\" , idx, ch)\n "  +
222+  "\t \t }\n "  +
223+  "\t }\n " ,
223224 varName ));
224225 break ;
225226
@@ -228,8 +229,8 @@ private void generateCharacterEncodingRangeCheck(
228229 this .imports .add ("unicode/utf8" );
229230 sb .append (String .format (
230231 "\t if !utf8.Valid(%1$s[:]) {\n "  +
231-    "\t \t return errors.New(\" %1$s failed UTF-8 validation\" )\n "  +
232-    "\t }\n " ,
232+  "\t \t return errors.New(\" %1$s failed UTF-8 validation\" )\n "  +
233+  "\t }\n " ,
233234 varName ));
234235 break ;
235236 }
@@ -256,8 +257,8 @@ private void generateEncodePrimitive(
256257 // We take a slice to make the type right 
257258 sb .append (String .format (
258259 "\t if err := _m.WriteBytes(_w, %1$s.%2$s[:]); err != nil {\n "  +
259-    "\t \t return err\n "  +
260-    "\t }\n " ,
260+  "\t \t return err\n "  +
261+  "\t }\n " ,
261262 varName ,
262263 propertyName ));
263264 }
@@ -266,8 +267,8 @@ private void generateEncodePrimitive(
266267 // A single byte or uint8 gets treated as a uint8 
267268 sb .append (String .format (
268269 "\t if err := _m.WriteUint8(_w, %1$s.%2$s); err != nil {\n "  +
269-    "\t \t return err\n "  +
270-    "\t }\n " ,
270+  "\t \t return err\n "  +
271+  "\t }\n " ,
271272 varName ,
272273 propertyName ));
273274 }
@@ -279,10 +280,10 @@ private void generateEncodePrimitive(
279280 // Other array types need a for loop 
280281 sb .append (String .format (
281282 "\t for idx := 0; idx < %1$d; idx++ {\n "  +
282-    "\t \t if err := _m.Write%2$s(_w, %3$s.%4$s[idx]); err != nil {\n "  +
283-    "\t \t \t return err\n "  +
284-    "\t \t }\n "  +
285-    "\t }\n " ,
283+  "\t \t if err := _m.Write%2$s(_w, %3$s.%4$s[idx]); err != nil {\n "  +
284+  "\t \t \t return err\n "  +
285+  "\t \t }\n "  +
286+  "\t }\n " ,
286287 encodingToken .arrayLength (),
287288 marshalType ,
288289 varName ,
@@ -292,8 +293,8 @@ private void generateEncodePrimitive(
292293 {
293294 sb .append (String .format (
294295 "\t if err := _m.Write%1$s(_w, %2$s.%3$s); err != nil {\n "  +
295-    "\t \t return err\n "  +
296-    "\t }\n " ,
296+  "\t \t return err\n "  +
297+  "\t }\n " ,
297298 marshalType ,
298299 varName ,
299300 propertyName ));
@@ -524,12 +525,12 @@ private void generateEncodeDecodeOpen(
524525 private  void  generateEncodeDecodeClose (
525526 final  StringBuilder  encode ,
526527 final  StringBuilder  decode ,
527-  final  StringBuilder  rangecheck ,
528+  final  StringBuilder  rangeCheck ,
528529 final  StringBuilder  init )
529530 {
530531 encode .append ("\t return nil\n }\n " );
531532 decode .append ("\t return nil\n }\n " );
532-  rangecheck .append ("\t return nil\n }\n " );
533+  rangeCheck .append ("\t return nil\n }\n " );
533534 init .append ("\t return\n }\n " );
534535 }
535536
@@ -562,14 +563,14 @@ private int generateEncodeDecode(
562563 final  StringBuilder  encode  = new  StringBuilder ();
563564 final  StringBuilder  decode  = new  StringBuilder ();
564565 final  StringBuilder  init  = new  StringBuilder ();
565-  final  StringBuilder  rangecheck  = new  StringBuilder ();
566+  final  StringBuilder  rangeCheck  = new  StringBuilder ();
566567 final  StringBuilder  nested  = new  StringBuilder ();
567568 int  currentOffset  = 0 ;
568-  int  gap  =  0 ;
569+  int  gap ;
569570 boolean  extensionStarted  = false ;
570571
571572 // Open all our methods 
572-  generateEncodeDecodeOpen (encode , decode , rangecheck , init , varName , typeName , isMessage , isExtensible );
573+  generateEncodeDecodeOpen (encode , decode , rangeCheck , init , varName , typeName , isMessage , isExtensible );
573574
574575 for  (int  i  = 0 ; i  < tokens .size (); i ++)
575576 {
@@ -620,7 +621,7 @@ private int generateEncodeDecode(
620621 signalToken , typeName , encode , decode , currentOffset );
621622 i  += signalToken .componentTokenCount () - 1 ;
622623
623-  rangecheck .append (String .format (
624+  rangeCheck .append (String .format (
624625 "\t if err := %1$s.%2$s.RangeCheck(actingVersion, schemaVersion); err != nil {\n "  +
625626 "\t \t return err\n "  +
626627 "\t }\n " ,
@@ -632,7 +633,7 @@ private int generateEncodeDecode(
632633 {
633634 currentOffset  += generateFieldEncodeDecode (
634635 tokens .subList (i , tokens .size () - 1 ),
635-  varName , currentOffset , encode , decode , rangecheck , init );
636+  varName , currentOffset , encode , decode , rangeCheck , init );
636637
637638 // Encodings just move past the encoding token 
638639 if  (tokens .get (i  + 1 ).signal () == Signal .ENCODING )
@@ -660,7 +661,7 @@ private int generateEncodeDecode(
660661 }
661662 final  String  primitive  = Character .toString (varName ) + "."  + propertyName ;
662663 generateDecodePrimitive (decode , primitive , signalToken );
663-  generateRangeCheckPrimitive (rangecheck , primitive , signalToken );
664+  generateRangeCheckPrimitive (rangeCheck , primitive , signalToken );
664665 generateInitPrimitive (init , primitive , signalToken );
665666 break ;
666667
@@ -676,7 +677,7 @@ private int generateEncodeDecode(
676677 currentOffset  += generateGroupEncodeDecode (
677678 tokens .subList (i , tokens .size () - 1 ),
678679 typeName ,
679-  encode , decode , rangecheck , currentOffset );
680+  encode , decode , rangeCheck , currentOffset );
680681
681682 // Recurse 
682683 gap  = Math .max (0 ,
@@ -704,8 +705,8 @@ private int generateEncodeDecode(
704705 extensionStarted  = true ;
705706 }
706707 // Close out this group and unwind 
707-  generateEncodeDecodeClose (encode , decode , rangecheck , init );
708-  sb .append (encode ).append (decode ).append (rangecheck ).append (init ).append (nested );
708+  generateEncodeDecodeClose (encode , decode , rangeCheck , init );
709+  sb .append (encode ).append (decode ).append (rangeCheck ).append (init ).append (nested );
709710 return  currentOffset ; // for gap calculations 
710711
711712 case  BEGIN_VAR_DATA :
@@ -718,12 +719,13 @@ private int generateEncodeDecode(
718719 currentOffset  += generateVarDataEncodeDecode (
719720 tokens .subList (i , tokens .size () - 1 ),
720721 typeName ,
721-  encode , decode , rangecheck , currentOffset );
722+  encode , decode , rangeCheck , currentOffset );
722723 // And we can move over this group 
723724 i  += signalToken .componentTokenCount () - 1 ;
724725 break ;
725726 }
726727 }
728+ 
727729 // You can use blockLength on both messages and groups (handled above) 
728730 // to leave some space (akin to an offset). 
729731 final  Token  endToken  = tokens .get (tokens .size () - 1 );
@@ -733,9 +735,10 @@ private int generateEncodeDecode(
733735 encode .append (generateEncodeOffset (gap , "" ));
734736 decode .append (generateDecodeOffset (gap , "" ));
735737 }
738+ 
736739 // Close out the methods and append 
737-  generateEncodeDecodeClose (encode , decode , rangecheck , init );
738-  sb .append (encode ).append (decode ).append (rangecheck ).append (init ).append (nested );
740+  generateEncodeDecodeClose (encode , decode , rangeCheck , init );
741+  sb .append (encode ).append (decode ).append (rangeCheck ).append (init ).append (nested );
739742 return  currentOffset ;
740743 }
741744
@@ -949,7 +952,6 @@ private int generateFieldEncodeDecode(
949952 final  Token  encodingToken  = tokens .get (1 );
950953 final  String  propertyName  = formatPropertyName (signalToken .name ());
951954
952-  final  String  golangType  = golangTypeName (encodingToken .encoding ().primitiveType ());
953955 int  gap  = 0 ; // for offset calculations 
954956
955957 switch  (encodingToken .signal ())
@@ -1026,7 +1028,6 @@ private int generatePropertyEncodeDecode(
10261028 final  StringBuilder  decode ,
10271029 final  int  currentOffset )
10281030 {
1029- 
10301031 final  char  varName  = Character .toLowerCase (typeName .charAt (0 ));
10311032 final  String  propertyName  = formatPropertyName (token .name ());
10321033 final  int  gap  = token .offset () - currentOffset ;
@@ -1219,8 +1220,6 @@ private void generateGroupProperties(
12191220 final  Token  token  = tokens .get (i );
12201221 if  (token .signal () == Signal .BEGIN_GROUP )
12211222 {
1222- 
1223-  final  char  varName  = Character .toLowerCase (prefix .charAt (0 ));
12241223 final  String  propertyName  = formatPropertyName (token .name ());
12251224
12261225 generateId (sb , prefix , propertyName , token );
@@ -1437,8 +1436,6 @@ private void generateEnumDecls(
14371436 final  List <Token > tokens ,
14381437 final  Token  encodingToken )
14391438 {
1440-  final  Encoding  encoding  = encodingToken .encoding ();
1441- 
14421439 // gofmt lines up the types and we don't want it to have to rewrite 
14431440 // our generated files. To line things up we need to know the longest 
14441441 // string length and then fill with whitespace 
0 commit comments