2222import  uk .co .real_logic .sbe .ir .*;
2323import  org .agrona .Verify ;
2424
25+ import  java .io .BufferedInputStream ;
2526import  java .io .IOException ;
2627import  java .io .InputStream ;
2728import  java .io .Writer ;
@@ -1444,9 +1445,7 @@ private void generateEnum(final List<Token> tokens) throws IOException
14441445 }
14451446 }
14461447
1447-  private  void  generateComposite (
1448-  final  List <Token > tokens ,
1449-  final  String  namePrefix ) throws  IOException 
1448+  private  void  generateComposite (final  List <Token > tokens , final  String  namePrefix ) throws  IOException 
14501449 {
14511450 final  String  compositeName  = namePrefix  + formatTypeName (tokens .get (0 ).applicableTypeName ());
14521451 final  StringBuilder  sb  = new  StringBuilder ();
@@ -1580,14 +1579,12 @@ private void generateChoiceDecls(
15801579 sb .append ("}\n " );
15811580 }
15821581
1583-  private  String  namespacesToPackageName (
1584-  final  CharSequence [] namespaces )
1582+  private  String  namespacesToPackageName (final  CharSequence [] namespaces )
15851583 {
15861584 return  String .join ("_" , namespaces ).toLowerCase ().replace ('.' , '_' ).replace (' ' , '_' ).replace ('-' , '_' );
15871585 }
15881586
1589-  private  StringBuilder  generateFileHeader (
1590-  final  CharSequence [] namespaces )
1587+  private  StringBuilder  generateFileHeader (final  CharSequence [] namespaces )
15911588 {
15921589 final  StringBuilder  sb  = new  StringBuilder ();
15931590 sb .append ("// Generated SBE (Simple Binary Encoding) message codec\n \n " );
@@ -1611,17 +1608,19 @@ private String generateFromTemplate(final CharSequence[] namespaces, final Strin
16111608 throws  IOException 
16121609 {
16131610 final  String  jarFile  = "golang/templates/"  + templateName  + ".go" ;
1614-  final  InputStream  inputStream  = this .getClass ().getClassLoader ().getResourceAsStream (jarFile );
1615-  final  Scanner  s  = new  Scanner (inputStream ).useDelimiter ("\\ A" );
1616-  final  String  template  = s .hasNext () ? s .next () : "" ;
1617-  inputStream .close ();
1611+  try  (InputStream  inputStream  = this .getClass ().getClassLoader ().getResourceAsStream (jarFile ))
1612+  {
1613+  final  Scanner  scanner  = new  Scanner (new  BufferedInputStream (inputStream )).useDelimiter ("\\ A" );
1614+  if  (!scanner .hasNext ())
1615+  {
1616+  return  "" ;
1617+  }
16181618
1619-  return  String .format (template , namespacesToPackageName (namespaces ));
1619+  return  String .format (scanner .next (), namespacesToPackageName (namespaces ));
1620+  }
16201621 }
16211622
1622-  private  static  void  generateTypeDeclaration (
1623-  final  StringBuilder  sb ,
1624-  final  String  typeName )
1623+  private  static  void  generateTypeDeclaration (final  StringBuilder  sb , final  String  typeName )
16251624 {
16261625 sb .append (String .format ("type %s struct {\n " , typeName ));
16271626 }
0 commit comments