public ModelBuilder entityDone() { checkNotFinished(); checkFinishProperty(); finished = true; int testEntityNameOffset = fbb.createString(name); int propertiesOffset = createVector(propertyOffsets); int relationsOffset = relationOffsets.isEmpty() ? 0 : createVector(relationOffsets); ModelEntity.startModelEntity(fbb); ModelEntity.addName(fbb, testEntityNameOffset); ModelEntity.addProperties(fbb, propertiesOffset); if (relationsOffset != 0) ModelEntity.addRelations(fbb, relationsOffset); if (id != null && uid != null) { int idOffset = IdUid.createIdUid(fbb, id, uid); ModelEntity.addId(fbb, idOffset); } if (lastPropertyId != null) { int idOffset = IdUid.createIdUid(fbb, lastPropertyId, lastPropertyUid); ModelEntity.addLastPropertyId(fbb, idOffset); } if (flags != null) { ModelEntity.addFlags(fbb, flags); } entityOffsets.add(ModelEntity.endModelEntity(fbb)); return ModelBuilder.this; } }
public byte[] build() { int nameOffset = fbb.createString("default"); int entityVectorOffset = createVector(entityOffsets); Model.startModel(fbb); Model.addName(fbb, nameOffset); Model.addModelVersion(fbb, MODEL_VERSION); Model.addVersion(fbb, 1); Model.addEntities(fbb, entityVectorOffset); if (lastEntityId != null) { int idOffset = IdUid.createIdUid(fbb, lastEntityId, lastEntityUid); Model.addLastEntityId(fbb, idOffset); } if (lastIndexId != null) { int idOffset = IdUid.createIdUid(fbb, lastIndexId, lastIndexUid); Model.addLastIndexId(fbb, idOffset); } if (lastRelationId != null) { int idOffset = IdUid.createIdUid(fbb, lastRelationId, lastRelationUid); Model.addLastRelationId(fbb, idOffset); } int offset = Model.endModel(fbb); fbb.finish(offset); return fbb.sizedByteArray(); } }