22
33import junit .framework .TestCase ;
44import org .globsframework .core .metamodel .GlobType ;
5+ import org .globsframework .core .metamodel .GlobTypeBuilder ;
56import org .globsframework .core .metamodel .GlobTypeBuilderFactory ;
6- import org .globsframework .core .metamodel .GlobTypeLoaderFactory ;
77import org .globsframework .core .metamodel .annotations .Target ;
88import org .globsframework .core .metamodel .annotations .Targets ;
99import org .globsframework .core .metamodel .fields .*;
2323import java .time .Month ;
2424import java .time .ZonedDateTime ;
2525import java .util .List ;
26+ import java .util .function .Supplier ;
2627
2728public class BinReaderTest extends TestCase {
2829
@@ -213,7 +214,7 @@ public void testDateTime() throws IOException {
213214 }
214215
215216 private static GlobType createEmptyProto1Type () {
216- return GlobTypeBuilderFactory .create (Proto1 .TYPE .getName ()).get ();
217+ return GlobTypeBuilderFactory .create (Proto1 .TYPE .getName ()).build ();
217218 }
218219
219220 private static GlobType createPartialProto1Type () {
@@ -226,8 +227,8 @@ private static GlobType createPartialProto1Type() {
226227 .set (UnionType .ChoiceType .index , 2 )
227228 .set (UnionType .ChoiceType .index , 2 )
228229 .set (UnionType .ChoiceType .typeName , Proto2 .TYPE .getName ())
229- })), List . of ( Proto2 .TYPE ) )
230- .get ();
230+ })), new Supplier []{() -> Proto2 .TYPE } )
231+ .build ();
231232 }
232233
233234 public void testBytes () throws IOException {
@@ -423,7 +424,8 @@ public void testUsingBuilder() {
423424 }
424425
425426 public static class Proto1 {
426- public static GlobType TYPE ;
427+ public static final GlobType TYPE ;
428+ public static final String NAME = "Proto1" ;
427429
428430 @ FieldNumber_ (1 )
429431 public static BooleanField booleanField ;
@@ -479,18 +481,43 @@ public static class Proto1 {
479481 public static GlobArrayUnionField globArrayUnionField ;
480482
481483 static {
482- GlobTypeLoaderFactory .create (Proto1 .class ).load ();
484+ GlobTypeBuilder typeBuilder = GlobTypeBuilderFactory .create (NAME );
485+ booleanField = typeBuilder .declareBooleanField ("booleanField" , FieldNumber .create (1 ));
486+ booleanArrayField = typeBuilder .declareBooleanArrayField ("booleanArrayField" , FieldNumber .create (2 ));
487+ intField = typeBuilder .declareIntegerField ("intField" , FieldNumber .create (3 ));
488+ intArrayField = typeBuilder .declareIntegerArrayField ("intArrayField" , FieldNumber .create (4 ));
489+ longField = typeBuilder .declareLongField ("longField" , FieldNumber .create (5 ));
490+ longArrayField = typeBuilder .declareLongArrayField ("longArrayField" , FieldNumber .create (6 ));
491+ doubleField = typeBuilder .declareDoubleField ("doubleField" , FieldNumber .create (7 ));
492+ doubleArrayField = typeBuilder .declareDoubleArrayField ("doubleArrayField" , FieldNumber .create (8 ));
493+ bigDecimalField = typeBuilder .declareBigDecimalField ("bigDecimalField" , FieldNumber .create (9 ));
494+ bigDecimalArrayField = typeBuilder .declareBigDecimalArrayField ("bigDecimalArrayField" , FieldNumber .create (10 ));
495+ strField = typeBuilder .declareStringField ("strField" , FieldNumber .create (11 ));
496+ strArrayField = typeBuilder .declareStringArrayField ("strArrayField" , FieldNumber .create (12 ));
497+ dateField = typeBuilder .declareDateField ("dateField" , FieldNumber .create (13 ));
498+ dateTimeField = typeBuilder .declareDateTimeField ("dateTimeField" , FieldNumber .create (14 ));
499+ BytesField = typeBuilder .declareBytesField ("BytesField" , FieldNumber .create (15 ));
500+ globField = typeBuilder .declareGlobField ("globField" , () -> Proto1 .TYPE , FieldNumber .create (16 ));
501+ globArrayField = typeBuilder .declareGlobArrayField ("globArrayField" , () -> Proto1 .TYPE , FieldNumber .create (17 ));
502+ globUnionField = typeBuilder .declareGlobUnionField ("globUnionField" , new Supplier []{() -> Proto1 .TYPE , () -> Proto2 .TYPE }, FieldNumber .create (18 ),
503+ UnionType .create (UnionType .ChoiceType .create (NAME , 1 ), UnionType .ChoiceType .create (Proto2 .NAME , 2 )));
504+ globArrayUnionField = typeBuilder .declareGlobUnionArrayField ("globArrayUnionField" , new Supplier []{() -> Proto1 .TYPE , () -> Proto2 .TYPE }, FieldNumber .create (19 ),
505+ UnionType .create (UnionType .ChoiceType .create (NAME , 1 ), UnionType .ChoiceType .create (Proto2 .NAME , 2 )));
506+ TYPE = typeBuilder .build ();
483507 }
484508 }
485509
486510 public static class Proto2 {
487- public static GlobType TYPE ;
511+ public static final GlobType TYPE ;
512+ public static final String NAME = "Proto2" ;
488513
489514 @ FieldNumber_ (1 )
490515 public static BooleanField booleanField ;
491516
492517 static {
493- GlobTypeLoaderFactory .create (Proto2 .class ).load ();
518+ GlobTypeBuilder globTypeBuilder = GlobTypeBuilderFactory .create (NAME );
519+ booleanField = globTypeBuilder .declareBooleanField ("booleanField" , FieldNumber .create (1 ));
520+ TYPE = globTypeBuilder .build ();
494521 }
495522 }
496523}
0 commit comments