type NumberingAdapter = class public function Create(_obj: Numbering); function Init(); function GetAbstractNumByAbstractNumId(_key: string); function SetAbstractNumByAbstractNumId(_key: string; _value: tslobj); function GetNumByNumId(_key: string); function SetNumByNumId(_key: string; _value: tslobj); private object_: Numbering; abstractnum_hash_: tableArray; num_hash_: tableArray; end; function NumberingAdapter.Create(_obj: Numbering); begin object_ := _obj; abstractnum_hash_ := array(); num_hash_ := array(); {self.}Init(); end; function NumberingAdapter.Init(); begin elements := object_.AbstractNums(); for k,v in elements do abstractnum_hash_[v.AbstractNumId] := v; elements := object_.Nums(); for k,v in elements do num_hash_[v.NumId] := v; end; function NumberingAdapter.GetAbstractNumByAbstractNumId(_key: string); begin return abstractnum_hash_[_key]; end; function NumberingAdapter.SetAbstractNumByAbstractNumId(_key: string; _value: tslobj); begin abstractnum_hash_[_key] := _value; end; function NumberingAdapter.GetNumByNumId(_key: string); begin return num_hash_[_key]; end; function NumberingAdapter.SetNumByNumId(_key: string; _value: tslobj); begin num_hash_[_key] := _value; end;