@@ -48,50 +48,50 @@ public class ModelBuilder {
4848 Long lastRelationUid ;
4949
5050 public class PropertyBuilder {
51- /** Deferred, so we can still add strings after constructor. */
5251 private final int type ;
52+ private final int virtualTargetOffset ;
53+ private final int propertyNameOffset ;
54+ private final int targetEntityOffset ;
55+
56+ private int secondaryNameOffset ;
5357 boolean finished ;
58+ private int flags ;
59+ private int id ;
60+ private long uid ;
61+ private int indexId ;
62+ private long indexUid ;
5463
5564 PropertyBuilder (String name , String targetEntityName , String virtualTarget , int type ) {
5665 this .type = type ;
57- int propertyNameOffset = fbb .createString (name );
58- int targetEntityOffset = targetEntityName != null ? fbb .createString (targetEntityName ) : 0 ;
59- int virtualTargetOffset = virtualTarget != null ? fbb .createString (virtualTarget ) : 0 ;
60- ModelProperty .startModelProperty (fbb );
61- ModelProperty .addName (fbb , propertyNameOffset );
62- if (targetEntityOffset != 0 ) {
63- ModelProperty .addTargetEntity (fbb , targetEntityOffset );
64- }
65- if (virtualTargetOffset != 0 ) {
66- ModelProperty .addVirtualTarget (fbb , virtualTargetOffset );
67- }
66+ propertyNameOffset = fbb .createString (name );
67+ targetEntityOffset = targetEntityName != null ? fbb .createString (targetEntityName ) : 0 ;
68+ virtualTargetOffset = virtualTarget != null ? fbb .createString (virtualTarget ) : 0 ;
6869 }
6970
7071 public PropertyBuilder id (int id , long uid ) {
7172 checkNotFinished ();
72- int idOffset = IdUid . createIdUid ( fbb , id , uid ) ;
73- ModelProperty . addId ( fbb , idOffset ) ;
73+ this . id = id ;
74+ this . uid = uid ;
7475 return this ;
7576 }
7677
7778 public PropertyBuilder indexId (int indexId , long indexUid ) {
7879 checkNotFinished ();
79- int idOffset = IdUid . createIdUid ( fbb , indexId , indexUid ) ;
80- ModelProperty . addIndexId ( fbb , idOffset ) ;
80+ this . indexId = indexId ;
81+ this . indexUid = indexUid ;
8182 return this ;
8283 }
8384
8485 public PropertyBuilder flags (int flags ) {
8586 checkNotFinished ();
86- ModelProperty . addFlags ( fbb , flags ) ;
87+ this . flags = flags ;
8788 return this ;
8889 }
8990
9091 public PropertyBuilder secondaryName (String secondaryName ) {
9192 checkNotFinished ();
9293 if (secondaryName != null ) {
93- int offset = fbb .createString (secondaryName );
94- ModelProperty .addNameSecondary (fbb , offset );
94+ secondaryNameOffset = fbb .createString (secondaryName );
9595 }
9696 return this ;
9797 }
@@ -105,7 +105,29 @@ private void checkNotFinished() {
105105 public int finish () {
106106 checkNotFinished ();
107107 finished = true ;
108+ ModelProperty .startModelProperty (fbb );
109+ ModelProperty .addName (fbb , propertyNameOffset );
110+ if (targetEntityOffset != 0 ) {
111+ ModelProperty .addTargetEntity (fbb , targetEntityOffset );
112+ }
113+ if (virtualTargetOffset != 0 ) {
114+ ModelProperty .addVirtualTarget (fbb , virtualTargetOffset );
115+ }
116+ if (secondaryNameOffset != 0 ) {
117+ ModelProperty .addNameSecondary (fbb , secondaryNameOffset );
118+ }
119+ if (id != 0 ) {
120+ int idOffset = IdUid .createIdUid (fbb , id , uid );
121+ ModelProperty .addId (fbb , idOffset );
122+ }
123+ if (indexId != 0 ) {
124+ int indexIdOffset = IdUid .createIdUid (fbb , indexId , indexUid );
125+ ModelProperty .addIndexId (fbb , indexIdOffset );
126+ }
108127 ModelProperty .addType (fbb , type );
128+ if (flags != 0 ) {
129+ ModelProperty .addFlags (fbb , flags );
130+ }
109131 return ModelProperty .endModelProperty (fbb );
110132 }
111133 }
0 commit comments