EntityBuilder

public class EntityBuilder<T>

Class used together with ModelBuilder by the code generator to specify the fields and their indexes in an entity. Typical usage is:

let eBuilder = mBuilder.entityBuilder(for: MyEntity.self, id: 1, uid: 1001)
eBuilder.addProperty(name: "id", type: .long, flags: [.id, .unsigned], id: 1, uid: 1001)
eBuilder.addProperty(name: "userName", type: .string, id: 2, uid: 1002)
eBuilder.lastProperty(id: 2, uid: 1002)

and so on. Note that there may be only one EntityBuilder in existence at any one time. It is currently not supported to use a previous EntityBuilder after creating a new one using ModelBuilder‘s entityBuilder() method. See ModelBuilder for more.

You usually don’t have to deal with this class.

  • Add the given property to this entity.

    Declaration

    Swift

    public func addProperty(name: String, type: OBXPropertyType, flags: EntityPropertyFlag = [], id propertyID: UInt32,
                            uid UID: UInt64, indexId indexID: UInt32 = 0, indexUid indexUID: UInt64 = 0) throws
  • Add a to-one-relation (e.g. a pointer from a parent to its children) to the model.

    Declaration

    Swift

    public func addToOneRelation(name: String, targetEntityInfo: EntityInfo, flags: EntityPropertyFlag = [],
                                 id propertyID: UInt32, uid propertyUID: UInt64, indexId indexID: UInt32,
                                 indexUid indexUID: UInt64) throws
  • Register the highest property ID used for this entity.

    Declaration

    Swift

    public func lastProperty(id propertyID: UInt32, uid propertyUID: UInt64) throws