unit SuBaseProperty;
interface
uses
System.Generics.Collections;
Type
PBaseProperty = class
private
m_Owner : Cardinal;
m_Entries : TDictionary<Cardinal,TList<String>>;
public
Constructor Create(AOwner:Cardinal);
class function CreateObject(AOwner:Cardinal):PBaseProperty;
function GetParams(ClilocID:Cardinal):TList<String>;
function Contains(ClilocID:Cardinal):Boolean;
property Owner : Cardinal read m_Owner;
end;
implementation
uses
SUStealth; //Stealth_Wrapper.pas => Name may be different!
{ PBaseObject }
function PBaseProperty.Contains(ClilocID: Cardinal): Boolean;
var
ergebnis : Boolean;
begin
ergebnis := False;
if( Assigned(m_Entries))then
begin
ergebnis := m_Entries.ContainsKey(ClilocID);
end;
Result := ergebnis;
end;
constructor PBaseProperty.Create(AOwner: Cardinal);
var
ObjectList : TClilocRec;
SubObject : TClilocItemRec;
list : TList<String>;
begin
m_Owner := AOwner;
ObjectList := TUOObject.GetClilocRec(AOwner);
m_Entries := TDictionary<Cardinal,TList<String>>.Create;;
for SubObject in ObjectList.Items do
begin
list := TList<String>.Create();
list.AddRange(SubObject.Params);
m_Entries.Add(SubObject.ClilocID,list);
end;
end;
class function PBaseProperty.CreateObject(AOwner: Cardinal): PBaseProperty;
begin
Result := PBaseProperty.Create(AOwner);
end;
function PBaseProperty.GetParams(ClilocID: Cardinal): TList<String>;
var
ergebnis : TList<String>;
begin
if(Contains(ClilocID))then
begin
ergebnis := m_Entries[ClilocID];
end;
if(ergebnis = nil)then
begin
ergebnis := TList<String>.Create;
end;
Result := ergebnis;
end;
end.