addProperty method

void addProperty(
  1. ModelProperty prop
)

Implementation

void addProperty(ModelProperty prop) {
  final name = prop.name.toNativeUtf8();
  try {
    _check(C.model_property(
        _cModel, name.cast(), prop.type, prop.id.id, prop.id.uid));

    if (prop.isRelation) {
      final relTarget = prop.relationTarget!.toNativeUtf8();
      try {
        _check(C.model_property_relation(
            _cModel, relTarget.cast(), prop.indexId!.id, prop.indexId!.uid));
      } finally {
        calloc.free(relTarget);
      }
    } else if (prop.indexId != null) {
      _check(C.model_property_index_id(
          _cModel, prop.indexId!.id, prop.indexId!.uid));
    }
  } finally {
    calloc.free(name);
  }

  if (prop.flags != 0) {
    _check(C.model_property_flags(_cModel, prop.flags));
  }
}