The Jedi Code Library contains some advanced container classes. Interfaces are declared in JclContainerIntf.pas, for example:
IJclMap = interface(IJclContainer)
['{A7D0A882-6952-496D-A258-23D47DDCCBC4}']
procedure Clear;
function ContainsKey(Key: TObject): Boolean;
function ContainsValue(Value: TObject): Boolean;
function Extract(Key: TObject): TObject;
function GetValue(Key: TObject): TObject;
function IsEmpty: Boolean;
function KeyOfValue(Value: TObject): TObject;
function KeySet: IJclSet;
function MapEquals(const AMap: IJclMap): Boolean;
procedure PutAll(const AMap: IJclMap);
procedure PutValue(Key, Value: TObject);
function Remove(Key: TObject): TObject;
function Size: Integer;
function Values: IJclCollection;
property Items[Key: TObject]: TObject read GetValue write PutValue;
{$IFNDEF BUGGY_DEFAULT_INDEXED_PROP} default; {$ENDIF ~BUGGY_DEFAULT_INDEXED_PROP}
end;
answered 2010-05-19T14:07:38.147