put method

RT put(
  1. VT value
)

PK...primary key VT...vlaue type RT... return type

value を追加 もしくは 上書き する.

put によって RosterPatternExceptionA は発生しない.
なので 呼び出し元は これを throw out する必要がある.

Implementation

RT put(VT value) {

    final List<VT> list = [];
    bool flag = true;

    for (final e in values) {

        if (e.primaryKey == value.primaryKey) {
            list.add(value);
            flag = false;
        } else {
            list.add(e);
        }

    }

    // 同じ primary key をもったものが存在しない場合 最後に value を追加する.
    if (flag) list.add(value);

    return internalFactory(list);

}