git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.jvcl@19 7f62d464-2af8-f54e-996c-e91b33f51cbe
110 lines
2.4 KiB
ObjectPascal
110 lines
2.4 KiB
ObjectPascal
unit GenerateAlias;
|
|
|
|
{$I jvcl.inc}
|
|
|
|
interface
|
|
|
|
uses
|
|
Contnrs, Classes,
|
|
JclSimpleXml,
|
|
PackageInformation;
|
|
|
|
type
|
|
TAlias = class (TObject)
|
|
private
|
|
FValue: string;
|
|
FName: string;
|
|
FValueAsTStrings : TStringList;
|
|
function GetValueAsTStrings: TStrings;
|
|
public
|
|
constructor Create(Node : TJclSimpleXmlElem); overload;
|
|
destructor Destroy; override;
|
|
|
|
property Name : string read FName;
|
|
property Value : string read FValue;
|
|
property ValueAsTStrings : TStrings read GetValueAsTStrings;
|
|
end;
|
|
|
|
TAliasList = class (TObjectList)
|
|
private
|
|
function GetItemsByName(name: string): TAlias;
|
|
function GetItems(index: integer): TAlias;
|
|
procedure SetItems(index: integer; const Value: TAlias);
|
|
public
|
|
constructor Create(Node : TJclSimpleXmlElem); overload;
|
|
|
|
property Items[index : integer] : TAlias read GetItems write SetItems;
|
|
property ItemsByName[name : string] : TAlias read GetItemsByName; default;
|
|
end;
|
|
|
|
implementation
|
|
|
|
uses
|
|
SysUtils,
|
|
JclStrings;
|
|
|
|
{ TAlias }
|
|
|
|
constructor TAlias.Create(Node: TJclSimpleXmlElem);
|
|
begin
|
|
inherited Create;
|
|
FName := AnsiLowerCase(Node.Properties.ItemNamed['name'].Value);
|
|
FValue := AnsiLowerCase(Node.Properties.ItemNamed['value'].Value);
|
|
FValueAsTStrings := nil;
|
|
end;
|
|
|
|
destructor TAlias.Destroy;
|
|
begin
|
|
FValueAsTStrings.Free;
|
|
inherited Destroy;
|
|
end;
|
|
|
|
function TAlias.GetValueAsTStrings: TStrings;
|
|
begin
|
|
if not Assigned(FValueAsTStrings) then
|
|
FValueAsTStrings := TStringList.Create;
|
|
|
|
StrToStrings(Value, ',', FValueAsTStrings, false);
|
|
Result := FValueAsTStrings;
|
|
end;
|
|
|
|
{ TAliasList }
|
|
|
|
constructor TAliasList.Create(Node: TJclSimpleXmlElem);
|
|
var
|
|
i : integer;
|
|
begin
|
|
inherited Create(True);
|
|
if Assigned(Node) then
|
|
for i := 0 to Node.Items.Count - 1 do
|
|
if Node.Items[i].Name = 'alias' then
|
|
begin
|
|
Add(TAlias.Create(Node.Items[i]));
|
|
end;
|
|
end;
|
|
|
|
function TAliasList.GetItems(index: integer): TAlias;
|
|
begin
|
|
Result := TAlias(inherited Items[index]);
|
|
end;
|
|
|
|
function TAliasList.GetItemsByName(name: string): TAlias;
|
|
var
|
|
i : integer;
|
|
begin
|
|
Result := nil;
|
|
for i := 0 to Count - 1 do
|
|
if SameText(TAlias(Items[i]).Name, name) then
|
|
begin
|
|
Result := TAlias(Items[i]);
|
|
Break;
|
|
end;
|
|
end;
|
|
|
|
procedure TAliasList.SetItems(index: integer; const Value: TAlias);
|
|
begin
|
|
inherited Items[index] := Value;
|
|
end;
|
|
|
|
end.
|