DualityViewDocReference<T extends Object?> constructor

DualityViewDocReference<T extends Object?>(
  1. {required QueryHelper helper,
  2. required FusabaseOracledb oracledb,
  3. required String path,
  4. dynamic parent_}
)

Implementation

DualityViewDocReference(
    {required super.helper,
    required FusabaseOracledb oracledb,
    required String path,
    dynamic parent_})
    : super(oracledb: oracledb, path: path) {

  path = path.toString().trim();
  List<String> tokens = path.split('/');
  type = "dualityviewdocument";

  if (tokens.length > 2) {
    throw Utils.oracledbErrorHandler(
        400, OracledbErrorMessages.incorrectDualityViewDocPath, null);
  }

  _id = tokens.removeAt(tokens.length - 1);
  if (_id == "") {
    throw Utils.oracledbErrorHandler(
        400, OracledbErrorMessages.incorrectDualityViewDocId, null);
  }
  _path = [];
  if (parent_ != null) {
    _parent = parent_;
  } else {
    if (tokens.isEmpty) {
      _parent = null;
    } else {
      _parent = oracledb.dualityViewCollection(tokens.join('/'));
    }
  }
  _path = (_parent != null) ? [...(_parent?._path ?? [])] : [];
  _path.add(_id);

  if (_parent == null) {
    throw Utils.oracledbErrorHandler(
        400, OracledbErrorMessages.parentCollectionCannotBeNull, null);
  }
}