You've already forked lazarus-ccr
soapAction parsing for operation, soap:address ( location ) parsing
TServiceOperation now has Properties ( see IModuleMetadataMngr.SetServiceCustomData ), Code has been refactored to use ParseFilter() instead using TRttiFilterCreator git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@136 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -267,6 +267,7 @@ type
|
||||
);
|
||||
procedure BeginArray(
|
||||
Const AName : string;
|
||||
Const ATypeInfo : PTypeInfo;
|
||||
Const AItemTypeInfo : PTypeInfo;
|
||||
Const ABounds : Array Of Integer
|
||||
);
|
||||
@ -999,7 +1000,12 @@ begin
|
||||
PushStack(FRootData,stObject);
|
||||
end;
|
||||
|
||||
procedure TBaseBinaryFormatter.BeginArray(const AName: string;const AItemTypeInfo: PTypeInfo; const ABounds: array of Integer);
|
||||
procedure TBaseBinaryFormatter.BeginArray(
|
||||
Const AName : string;
|
||||
Const ATypeInfo : PTypeInfo;
|
||||
Const AItemTypeInfo : PTypeInfo;
|
||||
Const ABounds : Array Of Integer
|
||||
);
|
||||
Var
|
||||
i, j, k : Integer;
|
||||
begin
|
||||
|
@ -24,8 +24,11 @@ const
|
||||
stObject = stBase + 1;
|
||||
stArray = stBase + 2;
|
||||
|
||||
Type
|
||||
type
|
||||
{ standart data types defines }
|
||||
anyURI = type string;
|
||||
token = type string;
|
||||
float = Single;
|
||||
|
||||
TScopeType = Integer;
|
||||
THeaderDirection = ( hdOut, hdIn );
|
||||
@ -118,6 +121,7 @@ type
|
||||
);
|
||||
procedure BeginArray(
|
||||
Const AName : string;
|
||||
Const ATypeInfo : PTypeInfo;
|
||||
Const AItemTypeInfo : PTypeInfo;
|
||||
Const ABounds : Array Of Integer
|
||||
);
|
||||
@ -265,6 +269,12 @@ type
|
||||
//class function FormatDate(const ADate : TDateTime):string;override;
|
||||
//class function ParseDate(const ABuffer : string):TDateTime;override;
|
||||
end;
|
||||
|
||||
TTimeRemotable = class(TBaseDateRemotable)
|
||||
protected
|
||||
//class function FormatDate(const ADate : TDateTime):string;override;
|
||||
//class function ParseDate(const ABuffer : string):TDateTime;override;
|
||||
end;
|
||||
|
||||
TAbstractComplexRemotableClass = class of TAbstractComplexRemotable;
|
||||
|
||||
@ -498,6 +508,7 @@ type
|
||||
|
||||
TBaseArrayRemotable = class(TAbstractComplexRemotable)
|
||||
protected
|
||||
class function GetItemName():string;virtual;
|
||||
procedure CheckIndex(const AIndex : Integer);
|
||||
function GetLength():Integer;virtual;abstract;
|
||||
public
|
||||
@ -1118,6 +1129,7 @@ begin
|
||||
|
||||
r.Register(sXSD_NS,TypeInfo(TDateRemotable),'dateTime').AddPascalSynonym('TDateRemotable');
|
||||
r.Register(sXSD_NS,TypeInfo(TDurationRemotable),'duration').AddPascalSynonym('TDurationRemotable');
|
||||
r.Register(sXSD_NS,TypeInfo(TTimeRemotable),'time').AddPascalSynonym('TTimeRemotable');
|
||||
|
||||
ri := r.Register(sWST_BASE_NS,TypeInfo(TBaseArrayRemotable),'TBaseArrayRemotable');
|
||||
ri.Options := ri.Options + [trioNonVisibleToMetadataService];
|
||||
@ -1706,6 +1718,7 @@ Var
|
||||
i,j : Integer;
|
||||
nativObj : TBaseObjectArrayRemotable;
|
||||
itm : TObject;
|
||||
itmName : string;
|
||||
begin
|
||||
If Assigned(AObject) Then Begin
|
||||
Assert(AObject.InheritsFrom(TBaseObjectArrayRemotable));
|
||||
@ -1714,11 +1727,12 @@ begin
|
||||
End Else
|
||||
j := 0;
|
||||
itmTypInfo := PTypeInfo(GetItemClass().ClassInfo);
|
||||
AStore.BeginArray(AName,itmTypInfo,[0,Pred(j)]);
|
||||
AStore.BeginArray(AName,PTypeInfo(Self.ClassInfo),itmTypInfo,[0,Pred(j)]);
|
||||
Try
|
||||
itmName := GetItemName();
|
||||
For i := 0 To Pred(j) Do Begin
|
||||
itm := nativObj.Item[i];
|
||||
AStore.Put(sARRAY_ITEM,itmTypInfo,itm);
|
||||
AStore.Put(itmName,itmTypInfo,itm);
|
||||
End;
|
||||
Finally
|
||||
AStore.EndScope();
|
||||
@ -2218,6 +2232,7 @@ class procedure TBaseSimpleTypeArrayRemotable.Save(
|
||||
var
|
||||
i,j : Integer;
|
||||
nativObj : TBaseSimpleTypeArrayRemotable;
|
||||
itmName : string;
|
||||
begin
|
||||
if Assigned(AObject) then begin
|
||||
Assert(AObject.InheritsFrom(TBaseSimpleTypeArrayRemotable));
|
||||
@ -2226,10 +2241,11 @@ begin
|
||||
end else begin
|
||||
j := 0;
|
||||
end;
|
||||
AStore.BeginArray(AName,GetItemTypeInfo(),[0,Pred(j)]);
|
||||
AStore.BeginArray(AName,PTypeInfo(Self.ClassInfo),GetItemTypeInfo(),[0,Pred(j)]);
|
||||
try
|
||||
itmName := GetItemName();
|
||||
for i := 0 to Pred(j) do begin
|
||||
nativObj.SaveItem(AStore,sARRAY_ITEM,i);
|
||||
nativObj.SaveItem(AStore,itmName,i);
|
||||
end;
|
||||
finally
|
||||
AStore.EndScope();
|
||||
@ -2288,7 +2304,7 @@ procedure TArrayOfStringRemotable.SaveItem(
|
||||
const AIndex : Integer
|
||||
);
|
||||
begin
|
||||
AStore.Put(sARRAY_ITEM,TypeInfo(ansistring),FData[AIndex]);
|
||||
AStore.Put(AName,TypeInfo(ansistring),FData[AIndex]);
|
||||
end;
|
||||
|
||||
procedure TArrayOfStringRemotable.LoadItem(
|
||||
@ -2298,7 +2314,7 @@ procedure TArrayOfStringRemotable.LoadItem(
|
||||
var
|
||||
sName : string;
|
||||
begin
|
||||
sName := sARRAY_ITEM;
|
||||
sName := GetItemName();
|
||||
AStore.Get(TypeInfo(ansistring),sName,FData[AIndex]);
|
||||
end;
|
||||
|
||||
@ -2320,6 +2336,17 @@ end;
|
||||
|
||||
{ TBaseArrayRemotable }
|
||||
|
||||
class function TBaseArrayRemotable.GetItemName(): string;
|
||||
var
|
||||
tri : TTypeRegistryItem;
|
||||
begin
|
||||
tri := GetTypeRegistry().Find(PTypeInfo(Self.ClassInfo),False);
|
||||
if Assigned(tri) then
|
||||
Result := Trim(tri.GetExternalPropertyName(sARRAY_ITEM));
|
||||
if ( System.Length(Result) = 0 ) then
|
||||
Result := sARRAY_ITEM;
|
||||
end;
|
||||
|
||||
procedure TBaseArrayRemotable.CheckIndex(const AIndex : Integer);
|
||||
begin
|
||||
if ( AIndex < 0 ) or ( AIndex >= Length ) then
|
||||
@ -2354,14 +2381,14 @@ end;
|
||||
procedure TArrayOfBooleanRemotable.SaveItem(AStore: IFormatterBase;
|
||||
const AName: String; const AIndex: Integer);
|
||||
begin
|
||||
AStore.Put(sARRAY_ITEM,TypeInfo(Boolean),FData[AIndex]);
|
||||
AStore.Put(AName,TypeInfo(Boolean),FData[AIndex]);
|
||||
end;
|
||||
|
||||
procedure TArrayOfBooleanRemotable.LoadItem(AStore: IFormatterBase;const AIndex: Integer);
|
||||
var
|
||||
sName : string;
|
||||
begin
|
||||
sName := sARRAY_ITEM;
|
||||
sName := GetItemName();
|
||||
AStore.Get(TypeInfo(Boolean),sName,FData[AIndex]);
|
||||
end;
|
||||
|
||||
@ -2403,14 +2430,14 @@ end;
|
||||
procedure TArrayOfInt8URemotable.SaveItem(AStore: IFormatterBase;
|
||||
const AName: String; const AIndex: Integer);
|
||||
begin
|
||||
AStore.Put(sARRAY_ITEM,TypeInfo(Byte),FData[AIndex]);
|
||||
AStore.Put(AName,TypeInfo(Byte),FData[AIndex]);
|
||||
end;
|
||||
|
||||
procedure TArrayOfInt8URemotable.LoadItem(AStore: IFormatterBase; const AIndex: Integer);
|
||||
var
|
||||
sName : string;
|
||||
begin
|
||||
sName := sARRAY_ITEM;
|
||||
sName := GetItemName();
|
||||
AStore.Get(TypeInfo(Byte),sName,FData[AIndex]);
|
||||
end;
|
||||
|
||||
@ -2452,14 +2479,14 @@ end;
|
||||
procedure TArrayOfInt8SRemotable.SaveItem(AStore: IFormatterBase;
|
||||
const AName: String; const AIndex: Integer);
|
||||
begin
|
||||
AStore.Put(sARRAY_ITEM,TypeInfo(ShortInt),FData[AIndex]);
|
||||
AStore.Put(AName,TypeInfo(ShortInt),FData[AIndex]);
|
||||
end;
|
||||
|
||||
procedure TArrayOfInt8SRemotable.LoadItem(AStore: IFormatterBase;const AIndex: Integer);
|
||||
var
|
||||
sName : string;
|
||||
begin
|
||||
sName := sARRAY_ITEM;
|
||||
sName := GetItemName();
|
||||
AStore.Get(TypeInfo(ShortInt),sName,FData[AIndex]);
|
||||
end;
|
||||
|
||||
@ -2501,14 +2528,14 @@ end;
|
||||
procedure TArrayOfInt16SRemotable.SaveItem(AStore: IFormatterBase;
|
||||
const AName: String; const AIndex: Integer);
|
||||
begin
|
||||
AStore.Put(sARRAY_ITEM,TypeInfo(SmallInt),FData[AIndex]);
|
||||
AStore.Put(AName,TypeInfo(SmallInt),FData[AIndex]);
|
||||
end;
|
||||
|
||||
procedure TArrayOfInt16SRemotable.LoadItem(AStore: IFormatterBase;const AIndex: Integer);
|
||||
var
|
||||
sName : string;
|
||||
begin
|
||||
sName := sARRAY_ITEM;
|
||||
sName := GetItemName();
|
||||
AStore.Get(TypeInfo(SmallInt),sName,FData[AIndex]);
|
||||
end;
|
||||
|
||||
@ -2550,14 +2577,14 @@ end;
|
||||
procedure TArrayOfInt16URemotable.SaveItem(AStore: IFormatterBase;
|
||||
const AName: String; const AIndex: Integer);
|
||||
begin
|
||||
AStore.Put(sARRAY_ITEM,TypeInfo(Word),FData[AIndex]);
|
||||
AStore.Put(AName,TypeInfo(Word),FData[AIndex]);
|
||||
end;
|
||||
|
||||
procedure TArrayOfInt16URemotable.LoadItem(AStore: IFormatterBase;const AIndex: Integer);
|
||||
var
|
||||
sName : string;
|
||||
begin
|
||||
sName := sARRAY_ITEM;
|
||||
sName := GetItemName();
|
||||
AStore.Get(TypeInfo(Word),sName,FData[AIndex]);
|
||||
end;
|
||||
|
||||
@ -2599,14 +2626,14 @@ end;
|
||||
procedure TArrayOfInt32URemotable.SaveItem(AStore: IFormatterBase;
|
||||
const AName: String; const AIndex: Integer);
|
||||
begin
|
||||
AStore.Put(sARRAY_ITEM,TypeInfo(LongWord),FData[AIndex]);
|
||||
AStore.Put(AName,TypeInfo(LongWord),FData[AIndex]);
|
||||
end;
|
||||
|
||||
procedure TArrayOfInt32URemotable.LoadItem(AStore: IFormatterBase;const AIndex: Integer);
|
||||
var
|
||||
sName : string;
|
||||
begin
|
||||
sName := sARRAY_ITEM;
|
||||
sName := GetItemName();
|
||||
AStore.Get(TypeInfo(LongWord),sName,FData[AIndex]);
|
||||
end;
|
||||
|
||||
@ -2648,14 +2675,14 @@ end;
|
||||
procedure TArrayOfInt32SRemotable.SaveItem(AStore: IFormatterBase;
|
||||
const AName: String; const AIndex: Integer);
|
||||
begin
|
||||
AStore.Put(sARRAY_ITEM,TypeInfo(LongInt),FData[AIndex]);
|
||||
AStore.Put(AName,TypeInfo(LongInt),FData[AIndex]);
|
||||
end;
|
||||
|
||||
procedure TArrayOfInt32SRemotable.LoadItem(AStore: IFormatterBase;const AIndex: Integer);
|
||||
var
|
||||
sName : string;
|
||||
begin
|
||||
sName := sARRAY_ITEM;
|
||||
sName := GetItemName();
|
||||
AStore.Get(TypeInfo(LongInt),sName,FData[AIndex]);
|
||||
end;
|
||||
|
||||
@ -2697,14 +2724,14 @@ end;
|
||||
procedure TArrayOfInt64SRemotable.SaveItem(AStore: IFormatterBase;
|
||||
const AName: String; const AIndex: Integer);
|
||||
begin
|
||||
AStore.Put(sARRAY_ITEM,TypeInfo(Int64),FData[AIndex]);
|
||||
AStore.Put(AName,TypeInfo(Int64),FData[AIndex]);
|
||||
end;
|
||||
|
||||
procedure TArrayOfInt64SRemotable.LoadItem(AStore: IFormatterBase;const AIndex: Integer);
|
||||
var
|
||||
sName : string;
|
||||
begin
|
||||
sName := sARRAY_ITEM;
|
||||
sName := GetItemName();
|
||||
AStore.Get(TypeInfo(Int64),sName,FData[AIndex]);
|
||||
end;
|
||||
|
||||
@ -2746,14 +2773,14 @@ end;
|
||||
procedure TArrayOfInt64URemotable.SaveItem(AStore: IFormatterBase;
|
||||
const AName: String; const AIndex: Integer);
|
||||
begin
|
||||
AStore.Put(sARRAY_ITEM,TypeInfo(QWord),FData[AIndex]);
|
||||
AStore.Put(AName,TypeInfo(QWord),FData[AIndex]);
|
||||
end;
|
||||
|
||||
procedure TArrayOfInt64URemotable.LoadItem(AStore: IFormatterBase;const AIndex: Integer);
|
||||
var
|
||||
sName : string;
|
||||
begin
|
||||
sName := sARRAY_ITEM;
|
||||
sName := GetItemName();
|
||||
AStore.Get(TypeInfo(QWord),sName,FData[AIndex]);
|
||||
end;
|
||||
|
||||
@ -2795,14 +2822,14 @@ end;
|
||||
procedure TArrayOfFloatSingleRemotable.SaveItem(AStore: IFormatterBase;
|
||||
const AName: String; const AIndex: Integer);
|
||||
begin
|
||||
AStore.Put(sARRAY_ITEM,TypeInfo(Single),FData[AIndex]);
|
||||
AStore.Put(AName,TypeInfo(Single),FData[AIndex]);
|
||||
end;
|
||||
|
||||
procedure TArrayOfFloatSingleRemotable.LoadItem(AStore: IFormatterBase;const AIndex: Integer);
|
||||
var
|
||||
sName : string;
|
||||
begin
|
||||
sName := sARRAY_ITEM;
|
||||
sName := GetItemName();
|
||||
AStore.Get(TypeInfo(Single),sName,FData[AIndex]);
|
||||
end;
|
||||
|
||||
@ -2844,14 +2871,14 @@ end;
|
||||
procedure TArrayOfFloatDoubleRemotable.SaveItem(AStore: IFormatterBase;
|
||||
const AName: String; const AIndex: Integer);
|
||||
begin
|
||||
AStore.Put(sARRAY_ITEM,TypeInfo(Double),FData[AIndex]);
|
||||
AStore.Put(AName,TypeInfo(Double),FData[AIndex]);
|
||||
end;
|
||||
|
||||
procedure TArrayOfFloatDoubleRemotable.LoadItem(AStore: IFormatterBase;const AIndex: Integer);
|
||||
var
|
||||
sName : string;
|
||||
begin
|
||||
sName := sARRAY_ITEM;
|
||||
sName := GetItemName();
|
||||
AStore.Get(TypeInfo(Double),sName,FData[AIndex]);
|
||||
end;
|
||||
|
||||
@ -2893,14 +2920,14 @@ end;
|
||||
procedure TArrayOfFloatExtendedRemotable.SaveItem(AStore: IFormatterBase;
|
||||
const AName: String; const AIndex: Integer);
|
||||
begin
|
||||
AStore.Put(sARRAY_ITEM,TypeInfo(Extended),FData[AIndex]);
|
||||
AStore.Put(AName,TypeInfo(Extended),FData[AIndex]);
|
||||
end;
|
||||
|
||||
procedure TArrayOfFloatExtendedRemotable.LoadItem(AStore: IFormatterBase;const AIndex: Integer);
|
||||
var
|
||||
sName : string;
|
||||
begin
|
||||
sName := sARRAY_ITEM;
|
||||
sName := GetItemName();
|
||||
AStore.Get(TypeInfo(Extended),sName,FData[AIndex]);
|
||||
end;
|
||||
|
||||
@ -2942,14 +2969,14 @@ end;
|
||||
procedure TArrayOfFloatCurrencyRemotable.SaveItem(AStore: IFormatterBase;
|
||||
const AName: String; const AIndex: Integer);
|
||||
begin
|
||||
AStore.Put(sARRAY_ITEM,TypeInfo(Currency),FData[AIndex]);
|
||||
AStore.Put(AName,TypeInfo(Currency),FData[AIndex]);
|
||||
end;
|
||||
|
||||
procedure TArrayOfFloatCurrencyRemotable.LoadItem(AStore: IFormatterBase;const AIndex: Integer);
|
||||
var
|
||||
sName : string;
|
||||
begin
|
||||
sName := sARRAY_ITEM;
|
||||
sName := GetItemName();
|
||||
AStore.Get(TypeInfo(Currency),sName,FData[AIndex]);
|
||||
end;
|
||||
|
||||
|
@ -235,6 +235,7 @@ Type
|
||||
);
|
||||
procedure BeginArray(
|
||||
Const AName : string;
|
||||
Const ATypeInfo : PTypeInfo;
|
||||
Const AItemTypeInfo : PTypeInfo;
|
||||
Const ABounds : Array Of Integer
|
||||
);
|
||||
@ -903,15 +904,17 @@ begin
|
||||
end;
|
||||
|
||||
procedure TSOAPBaseFormatter.BeginArray(
|
||||
const AName : string;
|
||||
const AItemTypeInfo : PTypeInfo;
|
||||
const ABounds : array of Integer
|
||||
Const AName : string;
|
||||
Const ATypeInfo : PTypeInfo;
|
||||
Const AItemTypeInfo : PTypeInfo;
|
||||
Const ABounds : Array Of Integer
|
||||
);
|
||||
Var
|
||||
typData : TTypeRegistryItem;
|
||||
nmspc,nmspcSH : string;
|
||||
i,j, k : Integer;
|
||||
strNodeName : string;
|
||||
xsiNmspcSH : string;
|
||||
begin
|
||||
If ( Length(ABounds) < 2 ) Then
|
||||
Error('Invalid array bounds.');
|
||||
@ -921,18 +924,20 @@ begin
|
||||
If ( k < 0 ) Then
|
||||
Error('Invalid array bounds.');
|
||||
k := j - i + 1;
|
||||
typData := GetTypeRegistry().Find(AItemTypeInfo,False);
|
||||
typData := GetTypeRegistry().Find(ATypeInfo,False);
|
||||
If Not Assigned(typData) Then
|
||||
Error('Array item''type not registered.');
|
||||
Error('Array type not registered.');
|
||||
nmspc := typData.NameSpace;
|
||||
If IsStrEmpty(nmspc) Then
|
||||
nmspcSH := 'tns'
|
||||
Else Begin
|
||||
nmspcSH := FindAttributeByValueInScope(nmspc);
|
||||
If IsStrEmpty(nmspcSH) Then Begin
|
||||
if IsStrEmpty(nmspcSH) then begin
|
||||
nmspcSH := 'ns' + IntToStr(NextNameSpaceCounter());
|
||||
AddScopeAttribute('xmlns:'+nmspcSH, nmspc);
|
||||
End;
|
||||
end else begin
|
||||
nmspcSH := Copy(nmspcSH,Length('xmlns:')+1,MaxInt);
|
||||
end;
|
||||
End;
|
||||
|
||||
if ( Style = Document ) then begin
|
||||
@ -946,10 +951,14 @@ begin
|
||||
if ( EncodingStyle = Encoded ) then begin
|
||||
//AddScopeAttribute(sXSI_TYPE,nmspc);
|
||||
//SOAP-ENC:arrayType="xsd:int[2]"
|
||||
AddScopeAttribute(
|
||||
{AddScopeAttribute(
|
||||
Format('%s:%s',[sSOAP_ENC_ABR,sARRAY_TYPE]) ,
|
||||
Format('%s:%s[%d]',[nmspcSH,typData.DeclaredName,k])
|
||||
);
|
||||
);}
|
||||
xsiNmspcSH := GetNameSpaceShortName(sXSI_NS,True);
|
||||
if not IsStrEmpty(xsiNmspcSH) then
|
||||
xsiNmspcSH := xsiNmspcSH + ':';
|
||||
AddScopeAttribute(xsiNmspcSH + sTYPE,Format('%s:%s',[nmspcSH,typData.DeclaredName]));
|
||||
end;
|
||||
StackTop().SetNameSpace(nmspc);
|
||||
end;
|
||||
|
@ -59,6 +59,7 @@ type
|
||||
Name : ShortString;
|
||||
OperationsCount : Byte;
|
||||
Operations : PServiceOperation;
|
||||
Properties : PPropertyData;
|
||||
end;
|
||||
|
||||
PServiceRepository = ^TServiceRepository;
|
||||
@ -81,6 +82,12 @@ type
|
||||
out ARepository : PServiceRepository
|
||||
):Integer;
|
||||
procedure ClearRepository(var ARepository : PServiceRepository);
|
||||
procedure SetServiceCustomData(
|
||||
const ARepName : shortstring;
|
||||
const AServiceName : shortstring;
|
||||
const ADataName,
|
||||
AData : string
|
||||
);
|
||||
procedure SetOperationCustomData(
|
||||
const ARepName : shortstring;
|
||||
const AServiceName : shortstring;
|
||||
@ -211,6 +218,8 @@ begin
|
||||
end;
|
||||
Freemem(AService^.Operations, k * SizeOf(PServiceOperation^) );
|
||||
AService^.Operations := nil;
|
||||
ClearProperties(AService^.Properties);
|
||||
AService^.Properties := nil;
|
||||
end;
|
||||
if AFreeService then
|
||||
Freemem(AService,SizeOf(PService^));
|
||||
@ -276,6 +285,7 @@ var
|
||||
po : PServiceOperation;
|
||||
begin
|
||||
AService^.Name := rdr.ReadStr();
|
||||
AService^.Properties := nil;
|
||||
k := rdr.ReadInt8U();
|
||||
if ( k > 0 ) then begin
|
||||
AService^.Operations := GetMem( k * SizeOf(PServiceOperation^) );
|
||||
@ -354,6 +364,7 @@ var
|
||||
po : PServiceOperation;
|
||||
begin
|
||||
ADestService^.Name := ASrcService^.Name;
|
||||
ADestService^.Properties := CloneProperties(ASrcService^.Properties);
|
||||
k := ASrcService^.OperationsCount;
|
||||
if ( k > 0 ) then begin
|
||||
ADestService^.Operations := GetMem( k * SizeOf(PServiceOperation^) );
|
||||
@ -435,6 +446,12 @@ type
|
||||
out ARepository : PServiceRepository
|
||||
):Integer;
|
||||
procedure ClearRepository(var ARepository : PServiceRepository);
|
||||
procedure SetServiceCustomData(
|
||||
const ARepName : shortstring;
|
||||
const AServiceName : shortstring;
|
||||
const ADataName,
|
||||
AData : string
|
||||
);
|
||||
procedure SetOperationCustomData(
|
||||
const ARepName : shortstring;
|
||||
const AServiceName : shortstring;
|
||||
@ -613,6 +630,27 @@ begin
|
||||
Result := nil;
|
||||
end;
|
||||
|
||||
procedure TModuleMetadataMngr.SetServiceCustomData(
|
||||
const ARepName : shortstring;
|
||||
const AServiceName : shortstring;
|
||||
const ADataName,
|
||||
AData : string
|
||||
);
|
||||
var
|
||||
i : Integer;
|
||||
rp : PServiceRepository;
|
||||
sp : PService;
|
||||
begin
|
||||
i := FindInnerListIndex(ARepName);
|
||||
if ( i < 0 ) then
|
||||
i := InternalLoadRepository(ARepName);
|
||||
rp := FRepositories[i];
|
||||
sp := FindService(rp,AServiceName);
|
||||
if not Assigned(sp) then
|
||||
raise EMetadataException.CreateFmt('Service non found : "%s"',[AServiceName]);
|
||||
Add(sp^.Properties,ADataName,AData);
|
||||
end;
|
||||
|
||||
function FindOperation(
|
||||
const AServ : PService;
|
||||
const AOperationName : shortstring
|
||||
|
@ -7,7 +7,7 @@
|
||||
<MainUnit Value="0"/>
|
||||
<IconPath Value="./"/>
|
||||
<TargetFileExt Value=".exe"/>
|
||||
<ActiveEditorIndexAtStart Value="4"/>
|
||||
<ActiveEditorIndexAtStart Value="0"/>
|
||||
</General>
|
||||
<PublishOptions>
|
||||
<Version Value="2"/>
|
||||
@ -26,14 +26,14 @@
|
||||
<PackageName Value="LCL"/>
|
||||
</Item1>
|
||||
</RequiredPackages>
|
||||
<Units Count="30">
|
||||
<Units Count="36">
|
||||
<Unit0>
|
||||
<Filename Value="test_ebay_gui.lpr"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="test_ebay_gui"/>
|
||||
<CursorPos X="1" Y="17"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="101"/>
|
||||
<UsageCount Value="121"/>
|
||||
</Unit0>
|
||||
<Unit1>
|
||||
<Filename Value="umain.pas"/>
|
||||
@ -41,10 +41,10 @@
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ResourceFilename Value="umain.lrs"/>
|
||||
<UnitName Value="umain"/>
|
||||
<CursorPos X="44" Y="9"/>
|
||||
<CursorPos X="1" Y="10"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="0"/>
|
||||
<UsageCount Value="101"/>
|
||||
<UsageCount Value="121"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit1>
|
||||
<Unit2>
|
||||
@ -53,47 +53,47 @@
|
||||
<UnitName Value="synapse_http_protocol"/>
|
||||
<CursorPos X="42" Y="22"/>
|
||||
<TopLine Value="8"/>
|
||||
<EditorIndex Value="1"/>
|
||||
<UsageCount Value="101"/>
|
||||
<Loaded Value="True"/>
|
||||
<UsageCount Value="121"/>
|
||||
</Unit2>
|
||||
<Unit3>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<UnitName Value="base_service_intf"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="4"/>
|
||||
<UsageCount Value="50"/>
|
||||
<CursorPos X="3" Y="2307"/>
|
||||
<TopLine Value="2302"/>
|
||||
<EditorIndex Value="10"/>
|
||||
<UsageCount Value="61"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit3>
|
||||
<Unit4>
|
||||
<Filename Value="..\..\service_intf.pas"/>
|
||||
<UnitName Value="service_intf"/>
|
||||
<CursorPos X="23" Y="333"/>
|
||||
<TopLine Value="320"/>
|
||||
<UsageCount Value="27"/>
|
||||
<CursorPos X="15" Y="158"/>
|
||||
<TopLine Value="136"/>
|
||||
<EditorIndex Value="1"/>
|
||||
<UsageCount Value="26"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit4>
|
||||
<Unit5>
|
||||
<Filename Value="..\..\soap_formatter.pas"/>
|
||||
<UnitName Value="soap_formatter"/>
|
||||
<CursorPos X="60" Y="159"/>
|
||||
<TopLine Value="149"/>
|
||||
<UsageCount Value="20"/>
|
||||
<UsageCount Value="18"/>
|
||||
</Unit5>
|
||||
<Unit6>
|
||||
<Filename Value="..\..\imp_utils.pas"/>
|
||||
<UnitName Value="imp_utils"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="13"/>
|
||||
<UsageCount Value="11"/>
|
||||
</Unit6>
|
||||
<Unit7>
|
||||
<Filename Value="..\..\base_soap_formatter.pas"/>
|
||||
<UnitName Value="base_soap_formatter"/>
|
||||
<CursorPos X="28" Y="377"/>
|
||||
<TopLine Value="371"/>
|
||||
<EditorIndex Value="2"/>
|
||||
<UsageCount Value="43"/>
|
||||
<EditorIndex Value="6"/>
|
||||
<UsageCount Value="54"/>
|
||||
<Bookmarks Count="2">
|
||||
<Item0 X="14" Y="670" ID="1"/>
|
||||
<Item1 X="1" Y="437" ID="2"/>
|
||||
@ -105,32 +105,36 @@
|
||||
<UnitName Value="httpsend"/>
|
||||
<CursorPos X="40" Y="123"/>
|
||||
<TopLine Value="122"/>
|
||||
<UsageCount Value="6"/>
|
||||
<UsageCount Value="4"/>
|
||||
</Unit8>
|
||||
<Unit9>
|
||||
<Filename Value="ebay.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="ebay"/>
|
||||
<CursorPos X="42" Y="535"/>
|
||||
<TopLine Value="139"/>
|
||||
<UsageCount Value="85"/>
|
||||
<CursorPos X="3" Y="237"/>
|
||||
<TopLine Value="223"/>
|
||||
<EditorIndex Value="7"/>
|
||||
<UsageCount Value="105"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit9>
|
||||
<Unit10>
|
||||
<Filename Value="..\..\metadata_service.pas"/>
|
||||
<UnitName Value="metadata_service"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="43"/>
|
||||
<UsageCount Value="4"/>
|
||||
<UsageCount Value="2"/>
|
||||
</Unit10>
|
||||
<Unit11>
|
||||
<Filename Value="..\..\metadata_repository.pas"/>
|
||||
<UnitName Value="metadata_repository"/>
|
||||
<CursorPos X="46" Y="84"/>
|
||||
<TopLine Value="84"/>
|
||||
<UsageCount Value="13"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="8"/>
|
||||
<UsageCount Value="17"/>
|
||||
<Bookmarks Count="1">
|
||||
<Item0 X="1" Y="91" ID="3"/>
|
||||
</Bookmarks>
|
||||
<Loaded Value="True"/>
|
||||
</Unit11>
|
||||
<Unit12>
|
||||
<Filename Value="ebay_proxy.pas"/>
|
||||
@ -138,250 +142,264 @@
|
||||
<UnitName Value="ebay_proxy"/>
|
||||
<CursorPos X="19" Y="11"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="3"/>
|
||||
<UsageCount Value="85"/>
|
||||
<EditorIndex Value="9"/>
|
||||
<UsageCount Value="105"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit12>
|
||||
<Unit13>
|
||||
<Filename Value="D:\lazarusClean\fpcsrc\rtl\inc\heaph.inc"/>
|
||||
<CursorPos X="10" Y="94"/>
|
||||
<TopLine Value="82"/>
|
||||
<UsageCount Value="4"/>
|
||||
<UsageCount Value="2"/>
|
||||
</Unit13>
|
||||
<Unit14>
|
||||
<Filename Value="D:\lazarusClean\fpcsrc\rtl\inc\heap.inc"/>
|
||||
<CursorPos X="3" Y="342"/>
|
||||
<TopLine Value="346"/>
|
||||
<UsageCount Value="4"/>
|
||||
<UsageCount Value="2"/>
|
||||
</Unit14>
|
||||
<Unit15>
|
||||
<Filename Value="D:\lazarusClean\fpcsrc\rtl\objpas\typinfo.pp"/>
|
||||
<UnitName Value="typinfo"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="94"/>
|
||||
<UsageCount Value="5"/>
|
||||
<UsageCount Value="3"/>
|
||||
</Unit15>
|
||||
<Unit16>
|
||||
<Filename Value="ebay.lrs"/>
|
||||
<CursorPos X="20" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="5"/>
|
||||
<UsageCount Value="3"/>
|
||||
</Unit16>
|
||||
<Unit17>
|
||||
<Filename Value="D:\lazarusClean\lcl\lresources.pp"/>
|
||||
<UnitName Value="LResources"/>
|
||||
<CursorPos X="3" Y="930"/>
|
||||
<TopLine Value="907"/>
|
||||
<UsageCount Value="5"/>
|
||||
<UsageCount Value="3"/>
|
||||
</Unit17>
|
||||
<Unit18>
|
||||
<Filename Value="D:\Lazarus\fpcsrc\rtl\inc\objpash.inc"/>
|
||||
<CursorPos X="20" Y="169"/>
|
||||
<TopLine Value="157"/>
|
||||
<UsageCount Value="6"/>
|
||||
<UsageCount Value="4"/>
|
||||
</Unit18>
|
||||
<Unit19>
|
||||
<Filename Value="D:\Lazarus\fpcsrc\rtl\inc\objpas.inc"/>
|
||||
<CursorPos X="28" Y="446"/>
|
||||
<TopLine Value="428"/>
|
||||
<UsageCount Value="6"/>
|
||||
<UsageCount Value="4"/>
|
||||
</Unit19>
|
||||
<Unit20>
|
||||
<Filename Value="D:\Lazarus\fpcsrc\fcl\inc\contnrs.pp"/>
|
||||
<UnitName Value="contnrs"/>
|
||||
<CursorPos X="23" Y="520"/>
|
||||
<TopLine Value="517"/>
|
||||
<UsageCount Value="6"/>
|
||||
<UsageCount Value="4"/>
|
||||
</Unit20>
|
||||
<Unit21>
|
||||
<Filename Value="D:\Lazarus\fpcsrc\rtl\objpas\classes\classesh.inc"/>
|
||||
<CursorPos X="15" Y="204"/>
|
||||
<TopLine Value="192"/>
|
||||
<UsageCount Value="6"/>
|
||||
<UsageCount Value="4"/>
|
||||
</Unit21>
|
||||
<Unit22>
|
||||
<Filename Value="D:\Lazarus\fpcsrc\rtl\objpas\classes\lists.inc"/>
|
||||
<CursorPos X="3" Y="417"/>
|
||||
<TopLine Value="412"/>
|
||||
<UsageCount Value="6"/>
|
||||
<UsageCount Value="4"/>
|
||||
</Unit22>
|
||||
<Unit23>
|
||||
<Filename Value="..\..\wsdl_to_pascal\tmp_intf.pas"/>
|
||||
<UnitName Value="tmp_intf"/>
|
||||
<CursorPos X="34" Y="10344"/>
|
||||
<TopLine Value="10333"/>
|
||||
<UsageCount Value="20"/>
|
||||
<UsageCount Value="18"/>
|
||||
</Unit23>
|
||||
<Unit24>
|
||||
<Filename Value="..\..\..\..\..\lazarusClean\fpc\2.0.4\source\fcl\xml\dom.pp"/>
|
||||
<UnitName Value="DOM"/>
|
||||
<CursorPos X="14" Y="222"/>
|
||||
<TopLine Value="210"/>
|
||||
<UsageCount Value="7"/>
|
||||
<UsageCount Value="5"/>
|
||||
</Unit24>
|
||||
<Unit25>
|
||||
<Filename Value="..\..\..\..\..\lazarusClean\fpc\2.0.4\source\rtl\win32\classes.pp"/>
|
||||
<UnitName Value="Classes"/>
|
||||
<CursorPos X="12" Y="32"/>
|
||||
<TopLine Value="15"/>
|
||||
<UsageCount Value="7"/>
|
||||
<UsageCount Value="5"/>
|
||||
</Unit25>
|
||||
<Unit26>
|
||||
<Filename Value="..\..\..\..\..\lazarusClean\fpc\2.0.4\source\rtl\objpas\classes\classesh.inc"/>
|
||||
<CursorPos X="15" Y="1153"/>
|
||||
<TopLine Value="1136"/>
|
||||
<UsageCount Value="7"/>
|
||||
<UsageCount Value="5"/>
|
||||
</Unit26>
|
||||
<Unit27>
|
||||
<Filename Value="..\..\..\..\..\lazarusClean\fpc\2.0.4\source\rtl\objpas\classes\parser.inc"/>
|
||||
<CursorPos X="34" Y="59"/>
|
||||
<TopLine Value="51"/>
|
||||
<UsageCount Value="7"/>
|
||||
<UsageCount Value="5"/>
|
||||
</Unit27>
|
||||
<Unit28>
|
||||
<Filename Value="..\..\..\..\..\lazarusClean\fpc\2.0.4\source\rtl\inc\objpash.inc"/>
|
||||
<CursorPos X="8" Y="116"/>
|
||||
<TopLine Value="102"/>
|
||||
<UsageCount Value="8"/>
|
||||
<UsageCount Value="6"/>
|
||||
</Unit28>
|
||||
<Unit29>
|
||||
<Filename Value="..\..\binary_streamer.pas"/>
|
||||
<UnitName Value="binary_streamer"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="55"/>
|
||||
<EditorIndex Value="5"/>
|
||||
<UsageCount Value="18"/>
|
||||
<EditorIndex Value="11"/>
|
||||
<UsageCount Value="29"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit29>
|
||||
<Unit30>
|
||||
<Filename Value="..\files\eBayWSDL.pas"/>
|
||||
<UnitName Value="eBayWSDL"/>
|
||||
<CursorPos X="56" Y="16040"/>
|
||||
<TopLine Value="16029"/>
|
||||
<EditorIndex Value="5"/>
|
||||
<UsageCount Value="16"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit30>
|
||||
<Unit31>
|
||||
<Filename Value="..\..\..\..\..\lazarusClean\others_package\synapse\sswin32.pas"/>
|
||||
<UnitName Value="sswin32"/>
|
||||
<CursorPos X="5" Y="1196"/>
|
||||
<TopLine Value="37"/>
|
||||
<UsageCount Value="9"/>
|
||||
</Unit31>
|
||||
<Unit32>
|
||||
<Filename Value="..\files\DataTypes_proxy.pas"/>
|
||||
<UnitName Value="DataTypes_proxy"/>
|
||||
<CursorPos X="40" Y="55"/>
|
||||
<TopLine Value="51"/>
|
||||
<UsageCount Value="9"/>
|
||||
</Unit32>
|
||||
<Unit33>
|
||||
<Filename Value="..\files\eBayWSDL_proxy.pas"/>
|
||||
<UnitName Value="eBayWSDL_proxy"/>
|
||||
<CursorPos X="41" Y="11"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="4"/>
|
||||
<UsageCount Value="15"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit33>
|
||||
<Unit34>
|
||||
<Filename Value="..\files\eBayWSDL_imp.pas"/>
|
||||
<UnitName Value="eBayWSDL_imp"/>
|
||||
<CursorPos X="39" Y="1074"/>
|
||||
<TopLine Value="1327"/>
|
||||
<EditorIndex Value="3"/>
|
||||
<UsageCount Value="10"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit34>
|
||||
<Unit35>
|
||||
<Filename Value="..\files\eBayWSDL_binder.pas"/>
|
||||
<UnitName Value="eBayWSDL_binder"/>
|
||||
<CursorPos X="68" Y="11"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="2"/>
|
||||
<UsageCount Value="10"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit35>
|
||||
</Units>
|
||||
<JumpHistory Count="30" HistoryIndex="29">
|
||||
<JumpHistory Count="21" HistoryIndex="20">
|
||||
<Position1>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="1617" Column="1" TopLine="1595"/>
|
||||
<Filename Value="..\files\eBayWSDL_proxy.pas"/>
|
||||
<Caret Line="506" Column="85" TopLine="500"/>
|
||||
</Position1>
|
||||
<Position2>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="1" Column="1" TopLine="1"/>
|
||||
<Filename Value="ebay.pas"/>
|
||||
<Caret Line="520" Column="27" TopLine="515"/>
|
||||
</Position2>
|
||||
<Position3>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="1056" Column="41" TopLine="1042"/>
|
||||
<Filename Value="ebay.pas"/>
|
||||
<Caret Line="1" Column="1" TopLine="249"/>
|
||||
</Position3>
|
||||
<Position4>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="1609" Column="64" TopLine="1595"/>
|
||||
<Filename Value="ebay.pas"/>
|
||||
<Caret Line="519" Column="17" TopLine="511"/>
|
||||
</Position4>
|
||||
<Position5>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="3060" Column="42" TopLine="3036"/>
|
||||
<Filename Value="..\files\eBayWSDL.pas"/>
|
||||
<Caret Line="1" Column="1" TopLine="1"/>
|
||||
</Position5>
|
||||
<Position6>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="1" Column="1" TopLine="1"/>
|
||||
<Filename Value="..\files\eBayWSDL.pas"/>
|
||||
<Caret Line="31804" Column="8" TopLine="32688"/>
|
||||
</Position6>
|
||||
<Position7>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="1626" Column="48" TopLine="1605"/>
|
||||
<Filename Value="..\files\eBayWSDL.pas"/>
|
||||
<Caret Line="23" Column="71" TopLine="1"/>
|
||||
</Position7>
|
||||
<Position8>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="3068" Column="41" TopLine="3046"/>
|
||||
<Filename Value="..\files\eBayWSDL.pas"/>
|
||||
<Caret Line="10951" Column="10" TopLine="10937"/>
|
||||
</Position8>
|
||||
<Position9>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="1" Column="1" TopLine="1"/>
|
||||
<Filename Value="..\files\eBayWSDL.pas"/>
|
||||
<Caret Line="10958" Column="93" TopLine="10944"/>
|
||||
</Position9>
|
||||
<Position10>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="1646" Column="1" TopLine="1629"/>
|
||||
<Filename Value="..\files\eBayWSDL.pas"/>
|
||||
<Caret Line="16072" Column="5" TopLine="16058"/>
|
||||
</Position10>
|
||||
<Position11>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="1" Column="1" TopLine="1"/>
|
||||
<Filename Value="..\files\eBayWSDL.pas"/>
|
||||
<Caret Line="24735" Column="32" TopLine="24721"/>
|
||||
</Position11>
|
||||
<Position12>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="1629" Column="57" TopLine="1615"/>
|
||||
<Filename Value="..\files\eBayWSDL.pas"/>
|
||||
<Caret Line="24765" Column="39" TopLine="24751"/>
|
||||
</Position12>
|
||||
<Position13>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="300" Column="1" TopLine="285"/>
|
||||
<Filename Value="..\files\eBayWSDL_imp.pas"/>
|
||||
<Caret Line="1" Column="1" TopLine="1"/>
|
||||
</Position13>
|
||||
<Position14>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="1605" Column="1" TopLine="1602"/>
|
||||
<Filename Value="..\files\eBayWSDL.pas"/>
|
||||
<Caret Line="31806" Column="19" TopLine="31802"/>
|
||||
</Position14>
|
||||
<Position15>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="3012" Column="42" TopLine="2998"/>
|
||||
<Filename Value="..\files\eBayWSDL_binder.pas"/>
|
||||
<Caret Line="11" Column="69" TopLine="1"/>
|
||||
</Position15>
|
||||
<Position16>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="1166" Column="41" TopLine="1152"/>
|
||||
<Filename Value="..\..\service_intf.pas"/>
|
||||
<Caret Line="84" Column="29" TopLine="83"/>
|
||||
</Position16>
|
||||
<Position17>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="1237" Column="38" TopLine="1237"/>
|
||||
<Filename Value="..\..\service_intf.pas"/>
|
||||
<Caret Line="158" Column="36" TopLine="144"/>
|
||||
</Position17>
|
||||
<Position18>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="1166" Column="71" TopLine="1166"/>
|
||||
<Filename Value="..\..\service_intf.pas"/>
|
||||
<Caret Line="225" Column="15" TopLine="204"/>
|
||||
</Position18>
|
||||
<Position19>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="1237" Column="113" TopLine="1237"/>
|
||||
<Filename Value="umain.pas"/>
|
||||
<Caret Line="55" Column="36" TopLine="49"/>
|
||||
</Position19>
|
||||
<Position20>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="1241" Column="12" TopLine="1227"/>
|
||||
<Filename Value="..\files\eBayWSDL.pas"/>
|
||||
<Caret Line="32124" Column="58" TopLine="32116"/>
|
||||
</Position20>
|
||||
<Position21>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="1165" Column="80" TopLine="1147"/>
|
||||
</Position21>
|
||||
<Position22>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="1161" Column="74" TopLine="1151"/>
|
||||
</Position22>
|
||||
<Position23>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="1165" Column="14" TopLine="1147"/>
|
||||
</Position23>
|
||||
<Position24>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="1225" Column="34" TopLine="1211"/>
|
||||
</Position24>
|
||||
<Position25>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="1148" Column="59" TopLine="1125"/>
|
||||
</Position25>
|
||||
<Position26>
|
||||
<Filename Value="..\..\binary_streamer.pas"/>
|
||||
<Filename Value="..\files\eBayWSDL.pas"/>
|
||||
<Caret Line="1" Column="1" TopLine="1"/>
|
||||
</Position26>
|
||||
<Position27>
|
||||
<Filename Value="umain.pas"/>
|
||||
<Caret Line="43" Column="9" TopLine="29"/>
|
||||
</Position27>
|
||||
<Position28>
|
||||
<Filename Value="..\..\synapse_http_protocol.pas"/>
|
||||
<Caret Line="1" Column="1" TopLine="139"/>
|
||||
</Position28>
|
||||
<Position29>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="1285" Column="27" TopLine="1294"/>
|
||||
</Position29>
|
||||
<Position30>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="3663" Column="24" TopLine="3652"/>
|
||||
</Position30>
|
||||
</Position21>
|
||||
</JumpHistory>
|
||||
</ProjectOptions>
|
||||
<CompilerOptions>
|
||||
<Version Value="5"/>
|
||||
<PathDelim Value="\"/>
|
||||
<SearchPaths>
|
||||
<OtherUnitFiles Value="C:\lazarusClean\others_package\synapse\;C:\Programmes\lazarus\wst\wsdl_to_pascal\;..\..\"/>
|
||||
<OtherUnitFiles Value="C:\lazarusClean\others_package\synapse\;C:\Programmes\lazarus\wst\tests\files\;..\..\"/>
|
||||
<UnitOutputDirectory Value="obj"/>
|
||||
<SrcPath Value="$(LazarusDir)\lcl\;$(LazarusDir)\lcl\interfaces\$(LCLWidgetType)\"/>
|
||||
</SearchPaths>
|
||||
|
@ -6,7 +6,7 @@ interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ExtCtrls,
|
||||
Buttons, StdCtrls, ComCtrls, eBaySvc_intf;
|
||||
Buttons, StdCtrls, ComCtrls;
|
||||
|
||||
type
|
||||
|
||||
|
@ -418,6 +418,14 @@ type
|
||||
procedure FormatDate();
|
||||
procedure ParseDate();
|
||||
end;
|
||||
|
||||
{ TTest_TTimeRemotable }
|
||||
|
||||
TTest_TTimeRemotable = class(TTestCase)
|
||||
published
|
||||
procedure FormatDate();
|
||||
procedure ParseDate();
|
||||
end;
|
||||
|
||||
implementation
|
||||
uses base_binary_formatter, base_soap_formatter;
|
||||
@ -2967,6 +2975,18 @@ begin
|
||||
Fail('Write me!');
|
||||
end;
|
||||
|
||||
{ TTest_TTimeRemotable }
|
||||
|
||||
procedure TTest_TTimeRemotable.FormatDate();
|
||||
begin
|
||||
Fail('Write me!');
|
||||
end;
|
||||
|
||||
procedure TTest_TTimeRemotable.ParseDate();
|
||||
begin
|
||||
Fail('Write me!');
|
||||
end;
|
||||
|
||||
initialization
|
||||
RegisterStdTypes();
|
||||
GetTypeRegistry().Register(sXSD_NS,TypeInfo(TTestEnum),'TTestEnum').RegisterExternalPropertyName('teOne', '1');
|
||||
@ -2997,4 +3017,5 @@ initialization
|
||||
RegisterTest(TTestBinaryFormatterAttributes);
|
||||
RegisterTest(TTest_TDateRemotable);
|
||||
RegisterTest(TTest_TDurationRemotable);
|
||||
RegisterTest(TTest_TTimeRemotable);
|
||||
end.
|
||||
|
@ -27,7 +27,7 @@
|
||||
<PackageName Value="FPCUnitTestRunner"/>
|
||||
</Item1>
|
||||
</RequiredPackages>
|
||||
<Units Count="40">
|
||||
<Units Count="38">
|
||||
<Unit0>
|
||||
<Filename Value="wst_test_suite.lpr"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
@ -40,9 +40,9 @@
|
||||
<Filename Value="testformatter_unit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="testformatter_unit"/>
|
||||
<CursorPos X="42" Y="2999"/>
|
||||
<TopLine Value="2972"/>
|
||||
<EditorIndex Value="4"/>
|
||||
<CursorPos X="27" Y="3020"/>
|
||||
<TopLine Value="2992"/>
|
||||
<EditorIndex Value="7"/>
|
||||
<UsageCount Value="200"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit1>
|
||||
@ -66,23 +66,22 @@
|
||||
<Filename Value="..\..\base_binary_formatter.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="base_binary_formatter"/>
|
||||
<CursorPos X="48" Y="502"/>
|
||||
<TopLine Value="497"/>
|
||||
<CursorPos X="45" Y="1007"/>
|
||||
<TopLine Value="1003"/>
|
||||
<EditorIndex Value="2"/>
|
||||
<UsageCount Value="200"/>
|
||||
<Bookmarks Count="1">
|
||||
<Item0 X="45" Y="1161" ID="0"/>
|
||||
</Bookmarks>
|
||||
<Loaded Value="True"/>
|
||||
</Unit4>
|
||||
<Unit5>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="base_service_intf"/>
|
||||
<CursorPos X="21" Y="263"/>
|
||||
<TopLine Value="250"/>
|
||||
<CursorPos X="26" Y="2965"/>
|
||||
<TopLine Value="665"/>
|
||||
<EditorIndex Value="0"/>
|
||||
<UsageCount Value="200"/>
|
||||
<Bookmarks Count="1">
|
||||
<Item0 X="5" Y="1159" ID="1"/>
|
||||
<Item0 X="5" Y="1161" ID="1"/>
|
||||
</Bookmarks>
|
||||
<Loaded Value="True"/>
|
||||
</Unit5>
|
||||
@ -90,12 +89,11 @@
|
||||
<Filename Value="..\..\base_soap_formatter.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="base_soap_formatter"/>
|
||||
<CursorPos X="34" Y="900"/>
|
||||
<TopLine Value="872"/>
|
||||
<CursorPos X="18" Y="929"/>
|
||||
<TopLine Value="942"/>
|
||||
<EditorIndex Value="3"/>
|
||||
<UsageCount Value="200"/>
|
||||
<Bookmarks Count="1">
|
||||
<Item0 X="22" Y="1236" ID="1"/>
|
||||
</Bookmarks>
|
||||
<Loaded Value="True"/>
|
||||
</Unit6>
|
||||
<Unit7>
|
||||
<Filename Value="..\..\binary_formatter.pas"/>
|
||||
@ -122,353 +120,345 @@
|
||||
<UsageCount Value="200"/>
|
||||
</Unit9>
|
||||
<Unit10>
|
||||
<Filename Value="D:\lazarusClean\fpcsrc\fcl\fpcunit\testregistry.pp"/>
|
||||
<UnitName Value="testregistry"/>
|
||||
<CursorPos X="11" Y="29"/>
|
||||
<TopLine Value="35"/>
|
||||
<UsageCount Value="1"/>
|
||||
</Unit10>
|
||||
<Unit11>
|
||||
<Filename Value="..\..\metadata_repository.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="metadata_repository"/>
|
||||
<CursorPos X="3" Y="79"/>
|
||||
<TopLine Value="70"/>
|
||||
<CursorPos X="25" Y="14"/>
|
||||
<TopLine Value="712"/>
|
||||
<EditorIndex Value="1"/>
|
||||
<UsageCount Value="200"/>
|
||||
</Unit11>
|
||||
<Unit12>
|
||||
<Loaded Value="True"/>
|
||||
</Unit10>
|
||||
<Unit11>
|
||||
<Filename Value="D:\Lazarus\fpcsrc\rtl\objpas\typinfo.pp"/>
|
||||
<UnitName Value="typinfo"/>
|
||||
<CursorPos X="15" Y="579"/>
|
||||
<TopLine Value="565"/>
|
||||
<UsageCount Value="7"/>
|
||||
</Unit12>
|
||||
<Unit13>
|
||||
<UsageCount Value="6"/>
|
||||
</Unit11>
|
||||
<Unit12>
|
||||
<Filename Value="testmetadata_unit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="testmetadata_unit"/>
|
||||
<CursorPos X="83" Y="119"/>
|
||||
<TopLine Value="46"/>
|
||||
<UsageCount Value="199"/>
|
||||
</Unit13>
|
||||
<Unit14>
|
||||
<CursorPos X="50" Y="118"/>
|
||||
<TopLine Value="106"/>
|
||||
<EditorIndex Value="8"/>
|
||||
<UsageCount Value="202"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit12>
|
||||
<Unit13>
|
||||
<Filename Value="..\..\ws_helper\metadata_generator.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="metadata_generator"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="31"/>
|
||||
<UsageCount Value="199"/>
|
||||
</Unit14>
|
||||
<Unit15>
|
||||
<UsageCount Value="202"/>
|
||||
</Unit13>
|
||||
<Unit14>
|
||||
<Filename Value="..\..\ws_helper\parserdefs.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="parserdefs"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="2"/>
|
||||
<UsageCount Value="199"/>
|
||||
<EditorIndex Value="5"/>
|
||||
<UsageCount Value="202"/>
|
||||
<Bookmarks Count="2">
|
||||
<Item0 X="45" Y="1146" ID="0"/>
|
||||
<Item1 X="18" Y="1133" ID="2"/>
|
||||
</Bookmarks>
|
||||
<Loaded Value="True"/>
|
||||
</Unit15>
|
||||
<Unit16>
|
||||
</Unit14>
|
||||
<Unit15>
|
||||
<Filename Value="..\..\metadata_wsdl.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="metadata_wsdl"/>
|
||||
<CursorPos X="25" Y="759"/>
|
||||
<TopLine Value="751"/>
|
||||
<EditorIndex Value="1"/>
|
||||
<UsageCount Value="191"/>
|
||||
<TopLine Value="748"/>
|
||||
<EditorIndex Value="4"/>
|
||||
<UsageCount Value="206"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit16>
|
||||
<Unit17>
|
||||
</Unit15>
|
||||
<Unit16>
|
||||
<Filename Value="D:\Lazarus\fpcsrc\fcl\xml\dom.pp"/>
|
||||
<UnitName Value="DOM"/>
|
||||
<CursorPos X="15" Y="429"/>
|
||||
<TopLine Value="413"/>
|
||||
<UsageCount Value="6"/>
|
||||
</Unit17>
|
||||
<Unit18>
|
||||
<UsageCount Value="5"/>
|
||||
</Unit16>
|
||||
<Unit17>
|
||||
<Filename Value="D:\lazarusClean\fpc\2.0.4\source\rtl\objpas\sysutils\sysutilh.inc"/>
|
||||
<CursorPos X="13" Y="235"/>
|
||||
<TopLine Value="215"/>
|
||||
<UsageCount Value="0"/>
|
||||
</Unit18>
|
||||
<Unit19>
|
||||
<Filename Value="D:\lazarusClean\fpc\2.0.4\source\fcl\xml\dom.pp"/>
|
||||
<UnitName Value="DOM"/>
|
||||
<CursorPos X="3" Y="187"/>
|
||||
<TopLine Value="175"/>
|
||||
<UsageCount Value="1"/>
|
||||
</Unit19>
|
||||
<Unit20>
|
||||
<UsageCount Value="9"/>
|
||||
</Unit17>
|
||||
<Unit18>
|
||||
<Filename Value="..\..\server_service_intf.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="server_service_intf"/>
|
||||
<CursorPos X="35" Y="379"/>
|
||||
<TopLine Value="397"/>
|
||||
<UsageCount Value="125"/>
|
||||
</Unit20>
|
||||
<Unit21>
|
||||
<UsageCount Value="143"/>
|
||||
</Unit18>
|
||||
<Unit19>
|
||||
<Filename Value="..\..\service_intf.pas"/>
|
||||
<UnitName Value="service_intf"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="23"/>
|
||||
<UsageCount Value="11"/>
|
||||
</Unit21>
|
||||
<Unit22>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit19>
|
||||
<Unit20>
|
||||
<Filename Value="D:\lazarusClean\fpc\2.0.4\source\rtl\objpas\classes\classesh.inc"/>
|
||||
<CursorPos X="3" Y="316"/>
|
||||
<TopLine Value="304"/>
|
||||
<UsageCount Value="0"/>
|
||||
</Unit22>
|
||||
<Unit23>
|
||||
<UsageCount Value="9"/>
|
||||
</Unit20>
|
||||
<Unit21>
|
||||
<Filename Value="D:\lazarusClean\fpc\2.0.4\source\rtl\objpas\classes\lists.inc"/>
|
||||
<CursorPos X="3" Y="407"/>
|
||||
<TopLine Value="404"/>
|
||||
<UsageCount Value="0"/>
|
||||
</Unit23>
|
||||
<Unit24>
|
||||
<UsageCount Value="9"/>
|
||||
</Unit21>
|
||||
<Unit22>
|
||||
<Filename Value="D:\lazarusClean\fpc\2.0.4\source\fcl\inc\contnrs.pp"/>
|
||||
<UnitName Value="contnrs"/>
|
||||
<CursorPos X="3" Y="474"/>
|
||||
<TopLine Value="471"/>
|
||||
<UsageCount Value="0"/>
|
||||
</Unit24>
|
||||
<Unit25>
|
||||
<UsageCount Value="9"/>
|
||||
</Unit22>
|
||||
<Unit23>
|
||||
<Filename Value="D:\lazarusClean\fpc\2.0.4\source\rtl\inc\objpash.inc"/>
|
||||
<CursorPos X="27" Y="121"/>
|
||||
<TopLine Value="104"/>
|
||||
<UsageCount Value="0"/>
|
||||
</Unit25>
|
||||
<Unit26>
|
||||
<UsageCount Value="9"/>
|
||||
</Unit23>
|
||||
<Unit24>
|
||||
<Filename Value="D:\lazarusClean\fpc\2.0.4\source\rtl\inc\objpas.inc"/>
|
||||
<CursorPos X="9" Y="166"/>
|
||||
<TopLine Value="142"/>
|
||||
<UsageCount Value="0"/>
|
||||
</Unit26>
|
||||
<Unit27>
|
||||
<UsageCount Value="9"/>
|
||||
</Unit24>
|
||||
<Unit25>
|
||||
<Filename Value="D:\Lazarus\components\fpcunit\guitestrunner.pas"/>
|
||||
<ComponentName Value="GUITestRunner"/>
|
||||
<HasResources Value="True"/>
|
||||
<UnitName Value="GuiTestRunner"/>
|
||||
<CursorPos X="34" Y="32"/>
|
||||
<TopLine Value="25"/>
|
||||
<UsageCount Value="0"/>
|
||||
</Unit27>
|
||||
<Unit28>
|
||||
<Filename Value="D:\lazarusClean\fpc\2.0.4\source\fcl\fpcunit\fpcunit.pp"/>
|
||||
<UnitName Value="fpcunit"/>
|
||||
<CursorPos X="26" Y="231"/>
|
||||
<TopLine Value="193"/>
|
||||
<UsageCount Value="1"/>
|
||||
</Unit28>
|
||||
<Unit29>
|
||||
<UsageCount Value="9"/>
|
||||
</Unit25>
|
||||
<Unit26>
|
||||
<Filename Value="..\..\..\..\..\lazarusClean\fpc\2.0.4\source\fcl\fpcunit\fpcunit.pp"/>
|
||||
<UnitName Value="fpcunit"/>
|
||||
<CursorPos X="21" Y="94"/>
|
||||
<TopLine Value="83"/>
|
||||
<UsageCount Value="8"/>
|
||||
</Unit29>
|
||||
<Unit30>
|
||||
<UsageCount Value="7"/>
|
||||
</Unit26>
|
||||
<Unit27>
|
||||
<Filename Value="..\..\..\..\..\lazarusClean\fpc\2.0.4\source\fcl\fpcunit\DUnitCompatibleInterface.inc"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="4"/>
|
||||
<UsageCount Value="2"/>
|
||||
</Unit30>
|
||||
<Unit31>
|
||||
<UsageCount Value="1"/>
|
||||
</Unit27>
|
||||
<Unit28>
|
||||
<Filename Value="..\..\imp_utils.pas"/>
|
||||
<UnitName Value="imp_utils"/>
|
||||
<CursorPos X="15" Y="36"/>
|
||||
<TopLine Value="22"/>
|
||||
<UsageCount Value="2"/>
|
||||
</Unit31>
|
||||
<Unit32>
|
||||
<UsageCount Value="1"/>
|
||||
</Unit28>
|
||||
<Unit29>
|
||||
<Filename Value="..\..\..\..\..\lazarusClean\fpc\2.0.4\source\fcl\xml\dom.pp"/>
|
||||
<UnitName Value="DOM"/>
|
||||
<CursorPos X="3" Y="1412"/>
|
||||
<TopLine Value="1407"/>
|
||||
<UsageCount Value="6"/>
|
||||
</Unit32>
|
||||
<Unit33>
|
||||
<UsageCount Value="5"/>
|
||||
</Unit29>
|
||||
<Unit30>
|
||||
<Filename Value="..\..\..\..\..\lazarusClean\fpc\2.0.4\source\rtl\objpas\typinfo.pp"/>
|
||||
<UnitName Value="typinfo"/>
|
||||
<CursorPos X="33" Y="192"/>
|
||||
<TopLine Value="186"/>
|
||||
<UsageCount Value="5"/>
|
||||
</Unit33>
|
||||
<Unit34>
|
||||
<UsageCount Value="4"/>
|
||||
</Unit30>
|
||||
<Unit31>
|
||||
<Filename Value="..\..\..\..\..\lazarusClean\fpc\2.0.4\source\fcl\xml\xmlread.pp"/>
|
||||
<UnitName Value="XMLRead"/>
|
||||
<CursorPos X="43" Y="13"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="6"/>
|
||||
</Unit34>
|
||||
<Unit35>
|
||||
<UsageCount Value="5"/>
|
||||
</Unit31>
|
||||
<Unit32>
|
||||
<Filename Value="..\..\..\..\..\lazarusClean\fpc\2.0.4\source\rtl\objpas\sysutils\datih.inc"/>
|
||||
<CursorPos X="10" Y="109"/>
|
||||
<TopLine Value="107"/>
|
||||
<UsageCount Value="7"/>
|
||||
</Unit35>
|
||||
<Unit36>
|
||||
<UsageCount Value="6"/>
|
||||
</Unit32>
|
||||
<Unit33>
|
||||
<Filename Value="..\..\..\..\..\lazarusClean\fpc\2.0.4\source\rtl\objpas\sysutils\dati.inc"/>
|
||||
<CursorPos X="46" Y="130"/>
|
||||
<TopLine Value="122"/>
|
||||
<UsageCount Value="7"/>
|
||||
</Unit36>
|
||||
<Unit37>
|
||||
<UsageCount Value="6"/>
|
||||
</Unit33>
|
||||
<Unit34>
|
||||
<Filename Value="test_parserdef.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="test_parserdef"/>
|
||||
<CursorPos X="93" Y="76"/>
|
||||
<TopLine Value="11"/>
|
||||
<EditorIndex Value="3"/>
|
||||
<UsageCount Value="45"/>
|
||||
<EditorIndex Value="6"/>
|
||||
<UsageCount Value="63"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit37>
|
||||
<Unit38>
|
||||
</Unit34>
|
||||
<Unit35>
|
||||
<Filename Value="..\..\..\..\..\lazarusClean\fpc\2.0.4\source\fcl\fpcunit\testutils.pp"/>
|
||||
<UnitName Value="testutils"/>
|
||||
<CursorPos X="34" Y="25"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="7"/>
|
||||
</Unit38>
|
||||
<Unit39>
|
||||
<UsageCount Value="6"/>
|
||||
</Unit35>
|
||||
<Unit36>
|
||||
<Filename Value="..\..\..\..\..\lazarusClean\fpc\2.0.4\source\fcl\fpcunit\testregistry.pp"/>
|
||||
<UnitName Value="testregistry"/>
|
||||
<CursorPos X="18" Y="17"/>
|
||||
<TopLine Value="16"/>
|
||||
<UsageCount Value="7"/>
|
||||
</Unit39>
|
||||
<UsageCount Value="6"/>
|
||||
</Unit36>
|
||||
<Unit37>
|
||||
<Filename Value="..\..\..\..\..\lazarusClean\fpc\2.0.4\source\rtl\inc\objpash.inc"/>
|
||||
<CursorPos X="26" Y="134"/>
|
||||
<TopLine Value="141"/>
|
||||
<UsageCount Value="9"/>
|
||||
</Unit37>
|
||||
</Units>
|
||||
<JumpHistory Count="30" HistoryIndex="29">
|
||||
<Position1>
|
||||
<Filename Value="..\..\ws_helper\parserdefs.pas"/>
|
||||
<Caret Line="1128" Column="39" TopLine="1122"/>
|
||||
<Filename Value="..\..\metadata_repository.pas"/>
|
||||
<Caret Line="315" Column="17" TopLine="291"/>
|
||||
</Position1>
|
||||
<Position2>
|
||||
<Filename Value="..\..\ws_helper\parserdefs.pas"/>
|
||||
<Caret Line="956" Column="19" TopLine="935"/>
|
||||
<Filename Value="..\..\metadata_repository.pas"/>
|
||||
<Caret Line="230" Column="17" TopLine="216"/>
|
||||
</Position2>
|
||||
<Position3>
|
||||
<Filename Value="..\..\ws_helper\parserdefs.pas"/>
|
||||
<Caret Line="977" Column="50" TopLine="956"/>
|
||||
<Filename Value="..\..\metadata_repository.pas"/>
|
||||
<Caret Line="198" Column="17" TopLine="185"/>
|
||||
</Position3>
|
||||
<Position4>
|
||||
<Filename Value="..\..\ws_helper\parserdefs.pas"/>
|
||||
<Caret Line="978" Column="33" TopLine="957"/>
|
||||
<Filename Value="..\..\metadata_repository.pas"/>
|
||||
<Caret Line="230" Column="14" TopLine="220"/>
|
||||
</Position4>
|
||||
<Position5>
|
||||
<Filename Value="..\..\ws_helper\parserdefs.pas"/>
|
||||
<Caret Line="1118" Column="28" TopLine="1112"/>
|
||||
<Filename Value="..\..\metadata_repository.pas"/>
|
||||
<Caret Line="360" Column="27" TopLine="353"/>
|
||||
</Position5>
|
||||
<Position6>
|
||||
<Filename Value="..\..\ws_helper\parserdefs.pas"/>
|
||||
<Filename Value="..\..\metadata_repository.pas"/>
|
||||
<Caret Line="1" Column="1" TopLine="1"/>
|
||||
</Position6>
|
||||
<Position7>
|
||||
<Filename Value="..\..\ws_helper\parserdefs.pas"/>
|
||||
<Caret Line="956" Column="48" TopLine="935"/>
|
||||
<Filename Value="..\..\metadata_repository.pas"/>
|
||||
<Caret Line="54" Column="15" TopLine="39"/>
|
||||
</Position7>
|
||||
<Position8>
|
||||
<Filename Value="..\..\ws_helper\parserdefs.pas"/>
|
||||
<Caret Line="977" Column="28" TopLine="956"/>
|
||||
<Filename Value="..\..\metadata_repository.pas"/>
|
||||
<Caret Line="62" Column="15" TopLine="47"/>
|
||||
</Position8>
|
||||
<Position9>
|
||||
<Filename Value="..\..\ws_helper\parserdefs.pas"/>
|
||||
<Caret Line="1142" Column="1" TopLine="1129"/>
|
||||
<Filename Value="..\..\metadata_repository.pas"/>
|
||||
<Caret Line="108" Column="26" TopLine="93"/>
|
||||
</Position9>
|
||||
<Position10>
|
||||
<Filename Value="..\..\ws_helper\parserdefs.pas"/>
|
||||
<Caret Line="1" Column="1" TopLine="1"/>
|
||||
<Filename Value="..\..\metadata_repository.pas"/>
|
||||
<Caret Line="127" Column="25" TopLine="112"/>
|
||||
</Position10>
|
||||
<Position11>
|
||||
<Filename Value="..\..\ws_helper\parserdefs.pas"/>
|
||||
<Caret Line="986" Column="21" TopLine="951"/>
|
||||
<Filename Value="..\..\metadata_repository.pas"/>
|
||||
<Caret Line="198" Column="20" TopLine="192"/>
|
||||
</Position11>
|
||||
<Position12>
|
||||
<Filename Value="..\..\ws_helper\parserdefs.pas"/>
|
||||
<Caret Line="963" Column="27" TopLine="941"/>
|
||||
<Filename Value="..\..\metadata_repository.pas"/>
|
||||
<Caret Line="220" Column="15" TopLine="198"/>
|
||||
</Position12>
|
||||
<Position13>
|
||||
<Filename Value="..\..\ws_helper\parserdefs.pas"/>
|
||||
<Caret Line="974" Column="1" TopLine="957"/>
|
||||
<Filename Value="..\..\metadata_repository.pas"/>
|
||||
<Caret Line="264" Column="29" TopLine="252"/>
|
||||
</Position13>
|
||||
<Position14>
|
||||
<Filename Value="..\..\ws_helper\parserdefs.pas"/>
|
||||
<Caret Line="976" Column="17" TopLine="962"/>
|
||||
<Filename Value="..\..\metadata_repository.pas"/>
|
||||
<Caret Line="342" Column="30" TopLine="327"/>
|
||||
</Position14>
|
||||
<Position15>
|
||||
<Filename Value="..\..\ws_helper\parserdefs.pas"/>
|
||||
<Caret Line="978" Column="50" TopLine="964"/>
|
||||
<Filename Value="..\..\metadata_repository.pas"/>
|
||||
<Caret Line="1" Column="1" TopLine="1"/>
|
||||
</Position15>
|
||||
<Position16>
|
||||
<Filename Value="..\..\ws_helper\parserdefs.pas"/>
|
||||
<Caret Line="980" Column="33" TopLine="965"/>
|
||||
<Filename Value="..\..\metadata_repository.pas"/>
|
||||
<Caret Line="54" Column="15" TopLine="39"/>
|
||||
</Position16>
|
||||
<Position17>
|
||||
<Filename Value="testformatter_unit.pas"/>
|
||||
<Caret Line="1050" Column="19" TopLine="1039"/>
|
||||
<Filename Value="..\..\metadata_repository.pas"/>
|
||||
<Caret Line="62" Column="15" TopLine="47"/>
|
||||
</Position17>
|
||||
<Position18>
|
||||
<Filename Value="testformatter_unit.pas"/>
|
||||
<Caret Line="214" Column="45" TopLine="210"/>
|
||||
<Filename Value="..\..\metadata_repository.pas"/>
|
||||
<Caret Line="108" Column="26" TopLine="93"/>
|
||||
</Position18>
|
||||
<Position19>
|
||||
<Filename Value="testformatter_unit.pas"/>
|
||||
<Caret Line="2881" Column="31" TopLine="2866"/>
|
||||
<Filename Value="..\..\metadata_repository.pas"/>
|
||||
<Caret Line="127" Column="25" TopLine="112"/>
|
||||
</Position19>
|
||||
<Position20>
|
||||
<Filename Value="testformatter_unit.pas"/>
|
||||
<Caret Line="213" Column="35" TopLine="200"/>
|
||||
<Filename Value="..\..\metadata_repository.pas"/>
|
||||
<Caret Line="220" Column="20" TopLine="195"/>
|
||||
</Position20>
|
||||
<Position21>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="1139" Column="42" TopLine="1126"/>
|
||||
<Filename Value="..\..\metadata_repository.pas"/>
|
||||
<Caret Line="326" Column="21" TopLine="303"/>
|
||||
</Position21>
|
||||
<Position22>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="467" Column="3" TopLine="465"/>
|
||||
<Filename Value="..\..\metadata_repository.pas"/>
|
||||
<Caret Line="343" Column="75" TopLine="328"/>
|
||||
</Position22>
|
||||
<Position23>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="3667" Column="88" TopLine="3647"/>
|
||||
<Filename Value="..\..\metadata_repository.pas"/>
|
||||
<Caret Line="383" Column="25" TopLine="364"/>
|
||||
</Position23>
|
||||
<Position24>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="1" Column="1" TopLine="1"/>
|
||||
<Filename Value="..\..\metadata_repository.pas"/>
|
||||
<Caret Line="423" Column="65" TopLine="413"/>
|
||||
</Position24>
|
||||
<Position25>
|
||||
<Filename Value="..\..\ws_helper\parserdefs.pas"/>
|
||||
<Caret Line="1132" Column="44" TopLine="1113"/>
|
||||
<Filename Value="..\..\metadata_repository.pas"/>
|
||||
<Caret Line="85" Column="1" TopLine="71"/>
|
||||
</Position25>
|
||||
<Position26>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="1167" Column="124" TopLine="1145"/>
|
||||
<Filename Value="..\..\metadata_repository.pas"/>
|
||||
<Caret Line="429" Column="68" TopLine="426"/>
|
||||
</Position26>
|
||||
<Position27>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="3927" Column="13" TopLine="3912"/>
|
||||
<Filename Value="..\..\metadata_repository.pas"/>
|
||||
<Caret Line="85" Column="1" TopLine="71"/>
|
||||
</Position27>
|
||||
<Position28>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="1" Column="1" TopLine="1"/>
|
||||
<Filename Value="..\..\metadata_repository.pas"/>
|
||||
<Caret Line="621" Column="5" TopLine="586"/>
|
||||
</Position28>
|
||||
<Position29>
|
||||
<Filename Value="testformatter_unit.pas"/>
|
||||
<Caret Line="416" Column="3" TopLine="414"/>
|
||||
<Filename Value="..\..\metadata_repository.pas"/>
|
||||
<Caret Line="635" Column="8" TopLine="617"/>
|
||||
</Position29>
|
||||
<Position30>
|
||||
<Filename Value="testformatter_unit.pas"/>
|
||||
<Caret Line="2965" Column="35" TopLine="2960"/>
|
||||
<Filename Value="testmetadata_unit.pas"/>
|
||||
<Caret Line="118" Column="50" TopLine="106"/>
|
||||
</Position30>
|
||||
</JumpHistory>
|
||||
</ProjectOptions>
|
||||
<CompilerOptions>
|
||||
<Version Value="5"/>
|
||||
<PathDelim Value="\"/>
|
||||
<Target>
|
||||
<Filename Value="wst_test_suite.exe"/>
|
||||
</Target>
|
||||
<SearchPaths>
|
||||
<OtherUnitFiles Value="..\..\;..\..\ws_helper\"/>
|
||||
<UnitOutputDirectory Value="obj"/>
|
||||
|
@ -159,6 +159,7 @@ type
|
||||
procedure GenerateEnum(ASymbol : TEnumTypeDefinition);
|
||||
procedure GenerateArray(ASymbol : TArrayDefinition);
|
||||
|
||||
procedure GenerateCustomMetadatas();
|
||||
function GetDestUnitName():string;
|
||||
public
|
||||
constructor Create(
|
||||
@ -177,14 +178,13 @@ Const sPROXY_BASE_CLASS = 'TBaseProxy';
|
||||
sBINDER_BASE_CLASS = 'TBaseServiceBinder';
|
||||
sIMP_BASE_CLASS = 'TBaseServiceImplementation';
|
||||
sSERIALIZER_CLASS = 'IFormatterClient';
|
||||
RETURN_PARAM_NAME = 'return';
|
||||
//RETURN_PARAM_NAME = 'return';
|
||||
RETURN_VAL_NAME = 'returnVal';
|
||||
sNAME_SPACE = 'sNAME_SPACE';
|
||||
sUNIT_NAME = 'sUNIT_NAME';
|
||||
|
||||
sPRM_NAME = 'strPrmName';
|
||||
sLOC_SERIALIZER = 'locSerializer';
|
||||
//sRES_TYPE_INFO = 'resTypeInfo';
|
||||
//sLOC_TYPE_INFO = 'locTypeInfo';
|
||||
|
||||
{ TProxyGenerator }
|
||||
|
||||
@ -776,7 +776,7 @@ Var
|
||||
prm := AMthd.Parameter[prmCnt];
|
||||
If prm.DataType.NeedFinalization() Then Begin
|
||||
if prm.DataType.InheritsFrom(TClassTypeDefinition) then begin
|
||||
WriteLn('Pointer(%s) := Nil;',[RETURN_VAL_NAME]);
|
||||
WriteLn('TObject(%s) := Nil;',[RETURN_VAL_NAME]);
|
||||
end else begin
|
||||
WriteLn('If ( PTypeInfo(TypeInfo(%s))^.Kind in [tkClass,tkInterface] ) Then',[prm.DataType.Name]);
|
||||
IncIndent();
|
||||
@ -790,7 +790,7 @@ Var
|
||||
prm := AMthd.Parameter[k];
|
||||
If prm.DataType.NeedFinalization() Then Begin
|
||||
if prm.DataType.InheritsFrom(TClassTypeDefinition) then begin
|
||||
WriteLn('Pointer(%s) := Nil;',[prm.Name]);
|
||||
WriteLn('TObject(%s) := Nil;',[prm.Name]);
|
||||
end else begin
|
||||
WriteLn('If ( PTypeInfo(TypeInfo(%s))^.Kind in [tkClass,tkObject,tkInterface] ) Then',[prm.DataType.Name]);
|
||||
IncIndent();
|
||||
@ -846,7 +846,7 @@ Var
|
||||
prm := AMthd.Parameter[prmCnt];
|
||||
If prm.DataType.NeedFinalization() Then Begin
|
||||
if prm.DataType.InheritsFrom(TClassTypeDefinition) then
|
||||
WriteLn('If Assigned(Pointer(%s)) Then',[RETURN_VAL_NAME])
|
||||
WriteLn('If Assigned(TObject(%s)) Then',[RETURN_VAL_NAME])
|
||||
else
|
||||
WriteLn('If ( PTypeInfo(TypeInfo(%s))^.Kind = tkClass ) And Assigned(Pointer(%s)) Then',[prm.DataType.Name,RETURN_VAL_NAME]);
|
||||
IncIndent();
|
||||
@ -1270,6 +1270,7 @@ begin
|
||||
|
||||
IncIndent();
|
||||
Indent();WriteLn('sNAME_SPACE = %s;',[QuotedStr(FSymbolTable.ExternalName)]);
|
||||
Indent();WriteLn('sUNIT_NAME = %s;',[QuotedStr(FSymbolTable.Name)]);
|
||||
DecIndent();
|
||||
|
||||
WriteLn('');
|
||||
@ -1282,6 +1283,7 @@ begin
|
||||
SetCurrentStream(FImpStream);
|
||||
WriteLn('');
|
||||
WriteLn('Implementation');
|
||||
WriteLn('uses metadata_repository;');
|
||||
FImpTempStream.WriteLn('initialization');
|
||||
end;
|
||||
|
||||
@ -1756,11 +1758,83 @@ begin
|
||||
|
||||
FImpTempStream.Indent();
|
||||
FImpTempStream.WriteLn('GetTypeRegistry().Register(%s,TypeInfo(%s),%s);',[sNAME_SPACE,ASymbol.Name,QuotedStr(ASymbol.ExternalName)]);
|
||||
if ( ASymbol.ItemName <> ASymbol.ItemExternalName ) then begin
|
||||
FImpTempStream.WriteLn(
|
||||
'GetTypeRegistry().ItemByTypeInfo[%s].RegisterExternalPropertyName(''item'',%s);',
|
||||
[ASymbol.Name,QuotedStr(ASymbol.ItemExternalName)]
|
||||
);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TInftGenerator.GenerateCustomMetadatas();
|
||||
|
||||
procedure WriteOperationDatas(AInftDef : TInterfaceDefinition; AOp : TMethodDefinition);
|
||||
var
|
||||
k : Integer;
|
||||
pl : TStrings;
|
||||
begin
|
||||
pl := AOp.Properties;
|
||||
for k := 0 to Pred(pl.Count) do begin
|
||||
if not IsStrEmpty(pl.ValueFromIndex[k]) then begin
|
||||
Indent();WriteLn('mm.SetOperationCustomData(');
|
||||
IncIndent();
|
||||
Indent(); WriteLn('%s,',[sUNIT_NAME]);
|
||||
Indent(); WriteLn('%s,',[QuotedStr(AInftDef.Name)]);
|
||||
Indent(); WriteLn('%s,',[QuotedStr(AOp.Name)]);
|
||||
Indent(); WriteLn('%s,',[QuotedStr(pl.Names[k])]);
|
||||
Indent(); WriteLn('%s' ,[QuotedStr(pl.ValueFromIndex[k])]);
|
||||
DecIndent();
|
||||
Indent();WriteLn(');');
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure WriteServiceDatas(AIntf : TInterfaceDefinition);
|
||||
var
|
||||
k : Integer;
|
||||
begin
|
||||
if not IsStrEmpty(AIntf.Address) then begin
|
||||
Indent();WriteLn('mm.SetServiceCustomData(');
|
||||
IncIndent();
|
||||
Indent(); WriteLn('%s,',[sUNIT_NAME]);
|
||||
Indent(); WriteLn('%s,',[QuotedStr(AIntf.Name)]);
|
||||
Indent(); WriteLn('%s,',[QuotedStr('Address')]);
|
||||
Indent(); WriteLn('%s' ,[QuotedStr(AIntf.Address)]);
|
||||
DecIndent();
|
||||
Indent();WriteLn(');');
|
||||
end;
|
||||
|
||||
for k := 0 to Pred(AIntf.MethodCount) do begin
|
||||
WriteOperationDatas(AIntf,AIntf.Method[k]);
|
||||
end;
|
||||
end;
|
||||
|
||||
var
|
||||
i : Integer;
|
||||
begin
|
||||
SetCurrentStream(FImpStream);
|
||||
IncIndent();
|
||||
|
||||
NewLine();NewLine();
|
||||
WriteLn('procedure Register_%s_ServiceMetadata();',[SymbolTable.Name]);
|
||||
WriteLn('var');
|
||||
Indent(); WriteLn('mm : IModuleMetadataMngr;');
|
||||
WriteLn('begin');
|
||||
Indent();WriteLn('mm := GetModuleMetadataMngr();');
|
||||
Indent();WriteLn('mm.SetRepositoryNameSpace(%s, %s);',[sUNIT_NAME,sNAME_SPACE]);
|
||||
for i := 0 to Pred(SymbolTable.Count) do begin
|
||||
if SymbolTable.Item[i] is TInterfaceDefinition then begin
|
||||
WriteServiceDatas(SymbolTable.Item[i] as TInterfaceDefinition);
|
||||
end;
|
||||
end;
|
||||
|
||||
WriteLn('end;');
|
||||
DecIndent();
|
||||
end;
|
||||
|
||||
function TInftGenerator.GetDestUnitName(): string;
|
||||
begin
|
||||
Result := Format('%s_intf',[SymbolTable.Name]);
|
||||
Result := SymbolTable.Name;
|
||||
end;
|
||||
|
||||
constructor TInftGenerator.Create(
|
||||
@ -1865,6 +1939,12 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
NewLine();
|
||||
IncIndent();
|
||||
Indent(); WriteLn('procedure Register_%s_ServiceMetadata();',[SymbolTable.Name]);
|
||||
DecIndent();
|
||||
GenerateCustomMetadatas();
|
||||
|
||||
GenerateUnitImplementationFooter();
|
||||
FSrcMngr.Merge(GetDestUnitName() + '.pas',[FDecStream,FImpStream,FImpTempStream]);
|
||||
FDecStream := nil;
|
||||
|
@ -133,6 +133,7 @@ Type
|
||||
|
||||
TArrayDefinition = class(TTypeDefinition)
|
||||
private
|
||||
FItemExternalName: string;
|
||||
FItemName: string;
|
||||
FItemType: TTypeDefinition;
|
||||
protected
|
||||
@ -142,13 +143,15 @@ Type
|
||||
);override;
|
||||
public
|
||||
constructor Create(
|
||||
const AName : string;
|
||||
AItemType : TTypeDefinition;
|
||||
ItemName : string
|
||||
const AName : string;
|
||||
AItemType : TTypeDefinition;
|
||||
const AItemName,
|
||||
AItemExternalName : string
|
||||
);
|
||||
function NeedFinalization():Boolean;override;
|
||||
property ItemName : string read FItemName;
|
||||
property ItemType : TTypeDefinition read FItemType;
|
||||
property ItemExternalName : string read FItemExternalName;
|
||||
end;
|
||||
|
||||
TEnumTypeDefinition = class;
|
||||
@ -296,6 +299,7 @@ Type
|
||||
FMethodType: TMethodType;
|
||||
FParameterList : TObjectList;
|
||||
private
|
||||
FProperties: TStrings;
|
||||
function GetParameter(Index: Integer): TParameterDefinition;
|
||||
function GetParameterCount: Integer;
|
||||
protected
|
||||
@ -317,6 +321,7 @@ Type
|
||||
property MethodType : TMethodType Read FMethodType;
|
||||
property ParameterCount : Integer Read GetParameterCount;
|
||||
property Parameter[Index:Integer] : TParameterDefinition Read GetParameter;
|
||||
property Properties : TStrings read FProperties;
|
||||
End;
|
||||
|
||||
{ TInterfaceDefinition }
|
||||
@ -326,6 +331,7 @@ Type
|
||||
FInterfaceGUID: string;
|
||||
FMethodList : TObjectList;
|
||||
private
|
||||
FAddress: string;
|
||||
function GetMethod(Index: Integer): TMethodDefinition;
|
||||
function GetMethodCount: Integer;
|
||||
protected
|
||||
@ -346,6 +352,7 @@ Type
|
||||
Property MethodCount : Integer Read GetMethodCount;
|
||||
Property Method[Index:Integer] : TMethodDefinition Read GetMethod;
|
||||
property InterfaceGUID : string read FInterfaceGUID write FInterfaceGUID;
|
||||
property Address : string read FAddress write FAddress;
|
||||
End;
|
||||
|
||||
{ TSymbolTable }
|
||||
@ -525,10 +532,12 @@ begin
|
||||
Inherited Create(AName);
|
||||
FMethodType := AMethodType;
|
||||
FParameterList := TObjectList.create(True);
|
||||
FProperties := TStringList.Create();
|
||||
end;
|
||||
|
||||
destructor TMethodDefinition.Destroy();
|
||||
begin
|
||||
FreeAndNil(FProperties);
|
||||
FreeAndNil(FParameterList);
|
||||
inherited Destroy();
|
||||
end;
|
||||
@ -1176,6 +1185,7 @@ begin
|
||||
AddClassDef(Result,'TAbstractSimpleRemotable','TBaseRemotable');
|
||||
AddClassDef(Result,'TDateRemotable','TAbstractSimpleRemotable').RegisterExternalAlias('dateTime');
|
||||
AddClassDef(Result,'TDurationRemotable','TAbstractSimpleRemotable').RegisterExternalAlias('duration');
|
||||
AddClassDef(Result,'TTimeRemotable','TAbstractSimpleRemotable').RegisterExternalAlias('time');
|
||||
|
||||
AddClassDef(Result,'TAbstractComplexRemotable','TBaseRemotable');
|
||||
loc_TBaseComplexSimpleContentRemotable := AddClassDef(Result,'TBaseComplexSimpleContentRemotable','TAbstractComplexRemotable');
|
||||
@ -1267,14 +1277,19 @@ begin
|
||||
end;
|
||||
|
||||
constructor TArrayDefinition.Create(
|
||||
const AName : string;
|
||||
AItemType : TTypeDefinition;
|
||||
ItemName : string
|
||||
const AName : string;
|
||||
AItemType : TTypeDefinition;
|
||||
const AItemName,
|
||||
AItemExternalName : string
|
||||
);
|
||||
begin
|
||||
Assert(Assigned(AItemType));
|
||||
inherited Create(AName);
|
||||
FItemType := AItemType;
|
||||
FItemName := AItemName;
|
||||
FItemExternalName := AItemExternalName;
|
||||
if IsStrEmpty(FItemExternalName) then
|
||||
FItemExternalName := FItemName;
|
||||
end;
|
||||
|
||||
function TArrayDefinition.NeedFinalization(): Boolean;
|
||||
|
@ -24,7 +24,7 @@
|
||||
<RunParams>
|
||||
<local>
|
||||
<FormatVersion Value="1"/>
|
||||
<CommandLineParams Value="-u -i -p -b -a"C:\Programmes\lazarus\wst\tests\files" "C:\Programmes\lazarus\utils\googleapi\GoogleSearch.wsdl""/>
|
||||
<CommandLineParams Value="-u -i -p -b -a"C:\Programmes\lazarus\wst\tests\files" "C:\Programmes\lazarus\wst\tests\files\MathService.wsdl""/>
|
||||
<LaunchingApplication PathPlusParams="\usr\X11R6\bin\xterm -T 'Lazarus Run Output' -e $(LazarusDir)\tools\runwait.sh $(TargetCmdLine)"/>
|
||||
</local>
|
||||
</RunParams>
|
||||
@ -38,8 +38,8 @@
|
||||
<Filename Value="ws_helper.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="ws_helper"/>
|
||||
<CursorPos X="26" Y="29"/>
|
||||
<TopLine Value="15"/>
|
||||
<CursorPos X="30" Y="181"/>
|
||||
<TopLine Value="99"/>
|
||||
<EditorIndex Value="1"/>
|
||||
<UsageCount Value="200"/>
|
||||
<Loaded Value="True"/>
|
||||
@ -48,9 +48,9 @@
|
||||
<Filename Value="ws_parser.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="ws_parser"/>
|
||||
<CursorPos X="53" Y="420"/>
|
||||
<TopLine Value="400"/>
|
||||
<EditorIndex Value="7"/>
|
||||
<CursorPos X="1" Y="437"/>
|
||||
<TopLine Value="423"/>
|
||||
<EditorIndex Value="8"/>
|
||||
<UsageCount Value="200"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit1>
|
||||
@ -58,14 +58,15 @@
|
||||
<Filename Value="generator.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="generator"/>
|
||||
<CursorPos X="112" Y="448"/>
|
||||
<TopLine Value="417"/>
|
||||
<CursorPos X="36" Y="1286"/>
|
||||
<TopLine Value="1281"/>
|
||||
<EditorIndex Value="0"/>
|
||||
<UsageCount Value="200"/>
|
||||
<Bookmarks Count="3">
|
||||
<Bookmarks Count="4">
|
||||
<Item0 X="43" Y="723" ID="0"/>
|
||||
<Item1 X="69" Y="860" ID="1"/>
|
||||
<Item2 X="17" Y="219" ID="2"/>
|
||||
<Item3 X="23" Y="1810" ID="4"/>
|
||||
</Bookmarks>
|
||||
<Loaded Value="True"/>
|
||||
</Unit2>
|
||||
@ -73,9 +74,9 @@
|
||||
<Filename Value="parserdefs.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="parserdefs"/>
|
||||
<CursorPos X="3" Y="41"/>
|
||||
<TopLine Value="30"/>
|
||||
<EditorIndex Value="5"/>
|
||||
<CursorPos X="58" Y="355"/>
|
||||
<TopLine Value="330"/>
|
||||
<EditorIndex Value="6"/>
|
||||
<UsageCount Value="200"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit3>
|
||||
@ -85,7 +86,7 @@
|
||||
<UnitName Value="parserutils"/>
|
||||
<CursorPos X="1" Y="39"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="6"/>
|
||||
<EditorIndex Value="7"/>
|
||||
<UsageCount Value="200"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit4>
|
||||
@ -93,7 +94,7 @@
|
||||
<Filename Value="ws_helper.lpi"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="8"/>
|
||||
<UsageCount Value="7"/>
|
||||
<SyntaxHighlighter Value="None"/>
|
||||
</Unit5>
|
||||
<Unit6>
|
||||
@ -101,42 +102,42 @@
|
||||
<UnitName Value="Classes"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="8"/>
|
||||
<UsageCount Value="7"/>
|
||||
</Unit6>
|
||||
<Unit7>
|
||||
<Filename Value="usr\share\fpcsrc\rtl\objpas\strutils.pp"/>
|
||||
<UnitName Value="strutils"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="8"/>
|
||||
<UsageCount Value="7"/>
|
||||
</Unit7>
|
||||
<Unit8>
|
||||
<Filename Value="usr\share\fpcsrc\rtl\unix\sysutils.pp"/>
|
||||
<UnitName Value="sysutils"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="8"/>
|
||||
<UsageCount Value="7"/>
|
||||
</Unit8>
|
||||
<Unit9>
|
||||
<Filename Value="D:\Lazarus\others_package\indy\indy-10.2.0.1\lazarus\IdDsnCoreResourceStrings.pas"/>
|
||||
<UnitName Value="IdDsnCoreResourceStrings"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="9"/>
|
||||
<UsageCount Value="8"/>
|
||||
</Unit9>
|
||||
<Unit10>
|
||||
<Filename Value="D:\Lazarus\others_package\indy\indy-10.2.0.1\lazarus\IdDsnPropEdBinding.pas"/>
|
||||
<UnitName Value="IdDsnPropEdBinding"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="9"/>
|
||||
<UsageCount Value="8"/>
|
||||
</Unit10>
|
||||
<Unit11>
|
||||
<Filename Value="D:\Lazarus\ide\lazarus.pp"/>
|
||||
<UnitName Value="Lazarus"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="9"/>
|
||||
<UsageCount Value="8"/>
|
||||
</Unit11>
|
||||
<Unit12>
|
||||
<Filename Value="source_utils.pas"/>
|
||||
@ -151,26 +152,26 @@
|
||||
<UnitName Value="getopts"/>
|
||||
<CursorPos X="16" Y="45"/>
|
||||
<TopLine Value="33"/>
|
||||
<UsageCount Value="4"/>
|
||||
<UsageCount Value="3"/>
|
||||
</Unit13>
|
||||
<Unit14>
|
||||
<Filename Value="D:\lazarusClean\fpcsrc\rtl\objpas\strutils.pp"/>
|
||||
<UnitName Value="strutils"/>
|
||||
<CursorPos X="23" Y="246"/>
|
||||
<TopLine Value="246"/>
|
||||
<UsageCount Value="3"/>
|
||||
<UsageCount Value="2"/>
|
||||
</Unit14>
|
||||
<Unit15>
|
||||
<Filename Value="D:\lazarusClean\fpcsrc\rtl\objpas\sysutils\sysstrh.inc"/>
|
||||
<CursorPos X="10" Y="74"/>
|
||||
<TopLine Value="70"/>
|
||||
<UsageCount Value="3"/>
|
||||
<UsageCount Value="2"/>
|
||||
</Unit15>
|
||||
<Unit16>
|
||||
<Filename Value="D:\lazarusClean\fpcsrc\rtl\objpas\sysutils\sysstr.inc"/>
|
||||
<CursorPos X="3" Y="185"/>
|
||||
<TopLine Value="180"/>
|
||||
<UsageCount Value="3"/>
|
||||
<UsageCount Value="2"/>
|
||||
</Unit16>
|
||||
<Unit17>
|
||||
<Filename Value="command_line_parser.pas"/>
|
||||
@ -184,80 +185,82 @@
|
||||
<Filename Value="metadata_generator.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="metadata_generator"/>
|
||||
<CursorPos X="1" Y="19"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="170"/>
|
||||
<CursorPos X="3" Y="96"/>
|
||||
<TopLine Value="69"/>
|
||||
<EditorIndex Value="2"/>
|
||||
<UsageCount Value="190"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit18>
|
||||
<Unit19>
|
||||
<Filename Value="..\binary_streamer.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="binary_streamer"/>
|
||||
<CursorPos X="6" Y="13"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="170"/>
|
||||
<CursorPos X="32" Y="344"/>
|
||||
<TopLine Value="328"/>
|
||||
<UsageCount Value="190"/>
|
||||
</Unit19>
|
||||
<Unit20>
|
||||
<Filename Value="D:\Lazarus\fpcsrc\rtl\objpas\sysutils\finah.inc"/>
|
||||
<CursorPos X="11" Y="27"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="2"/>
|
||||
<UsageCount Value="1"/>
|
||||
</Unit20>
|
||||
<Unit21>
|
||||
<Filename Value="D:\Lazarus\fpcsrc\rtl\objpas\sysutils\fina.inc"/>
|
||||
<CursorPos X="3" Y="26"/>
|
||||
<TopLine Value="23"/>
|
||||
<UsageCount Value="2"/>
|
||||
<UsageCount Value="1"/>
|
||||
</Unit21>
|
||||
<Unit22>
|
||||
<Filename Value="D:\Lazarus\fpcsrc\rtl\objpas\classes\classesh.inc"/>
|
||||
<CursorPos X="17" Y="662"/>
|
||||
<TopLine Value="652"/>
|
||||
<UsageCount Value="9"/>
|
||||
<UsageCount Value="8"/>
|
||||
</Unit22>
|
||||
<Unit23>
|
||||
<Filename Value="D:\Lazarus\fpcsrc\rtl\objpas\sysutils\filutilh.inc"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="54"/>
|
||||
<UsageCount Value="2"/>
|
||||
<UsageCount Value="1"/>
|
||||
</Unit23>
|
||||
<Unit24>
|
||||
<Filename Value="D:\Lazarus\lcl\lresources.pp"/>
|
||||
<UnitName Value="LResources"/>
|
||||
<CursorPos X="15" Y="590"/>
|
||||
<TopLine Value="586"/>
|
||||
<UsageCount Value="5"/>
|
||||
<UsageCount Value="4"/>
|
||||
</Unit24>
|
||||
<Unit25>
|
||||
<Filename Value="D:\Lazarus\fpcsrc\rtl\win\sysutils.pp"/>
|
||||
<UnitName Value="sysutils"/>
|
||||
<CursorPos X="12" Y="33"/>
|
||||
<TopLine Value="11"/>
|
||||
<UsageCount Value="2"/>
|
||||
<UsageCount Value="1"/>
|
||||
</Unit25>
|
||||
<Unit26>
|
||||
<Filename Value="D:\Lazarus\fpcsrc\rtl\objpas\sysutils\sysutilh.inc"/>
|
||||
<CursorPos X="11" Y="221"/>
|
||||
<TopLine Value="194"/>
|
||||
<UsageCount Value="2"/>
|
||||
<UsageCount Value="1"/>
|
||||
</Unit26>
|
||||
<Unit27>
|
||||
<Filename Value="D:\lazarusClean\fpcsrc\rtl\win32\classes.pp"/>
|
||||
<UnitName Value="Classes"/>
|
||||
<CursorPos X="1" Y="47"/>
|
||||
<TopLine Value="25"/>
|
||||
<UsageCount Value="2"/>
|
||||
<UsageCount Value="1"/>
|
||||
</Unit27>
|
||||
<Unit28>
|
||||
<Filename Value="D:\lazarusClean\fpcsrc\rtl\objpas\classes\classesh.inc"/>
|
||||
<CursorPos X="30" Y="1183"/>
|
||||
<TopLine Value="1171"/>
|
||||
<UsageCount Value="4"/>
|
||||
<UsageCount Value="3"/>
|
||||
</Unit28>
|
||||
<Unit29>
|
||||
<Filename Value="D:\lazarusClean\fpcsrc\rtl\objpas\classes\parser.inc"/>
|
||||
<CursorPos X="3" Y="303"/>
|
||||
<TopLine Value="299"/>
|
||||
<UsageCount Value="4"/>
|
||||
<UsageCount Value="3"/>
|
||||
</Unit29>
|
||||
<Unit30>
|
||||
<Filename Value="wst_resources_utils.pas"/>
|
||||
@ -265,45 +268,45 @@
|
||||
<UnitName Value="wst_resources_utils"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="85"/>
|
||||
<UsageCount Value="105"/>
|
||||
</Unit30>
|
||||
<Unit31>
|
||||
<Filename Value="..\..\..\..\lazarusClean\fpc\2.0.4\source\rtl\win32\classes.pp"/>
|
||||
<UnitName Value="Classes"/>
|
||||
<CursorPos X="1" Y="47"/>
|
||||
<TopLine Value="20"/>
|
||||
<UsageCount Value="9"/>
|
||||
<UsageCount Value="8"/>
|
||||
</Unit31>
|
||||
<Unit32>
|
||||
<Filename Value="..\..\..\..\lazarusClean\fpc\2.0.4\source\rtl\win32\sysutils.pp"/>
|
||||
<UnitName Value="sysutils"/>
|
||||
<CursorPos X="15" Y="33"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="6"/>
|
||||
<UsageCount Value="5"/>
|
||||
</Unit32>
|
||||
<Unit33>
|
||||
<Filename Value="..\..\..\..\lazarusClean\fpc\2.0.4\source\rtl\objpas\sysutils\sysutilh.inc"/>
|
||||
<CursorPos X="15" Y="19"/>
|
||||
<TopLine Value="7"/>
|
||||
<UsageCount Value="6"/>
|
||||
<UsageCount Value="5"/>
|
||||
</Unit33>
|
||||
<Unit34>
|
||||
<Filename Value="..\..\..\..\lazarusClean\fpc\2.0.4\source\rtl\objpas\sysutils\osutilsh.inc"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="6"/>
|
||||
<UsageCount Value="5"/>
|
||||
</Unit34>
|
||||
<Unit35>
|
||||
<Filename Value="..\..\..\..\lazarusClean\fpc\2.0.4\source\rtl\objpas\sysutils\finah.inc"/>
|
||||
<CursorPos X="10" Y="30"/>
|
||||
<TopLine Value="16"/>
|
||||
<UsageCount Value="6"/>
|
||||
<UsageCount Value="5"/>
|
||||
</Unit35>
|
||||
<Unit36>
|
||||
<Filename Value="..\..\..\..\lazarusClean\fpc\2.0.4\source\rtl\objpas\sysutils\fina.inc"/>
|
||||
<CursorPos X="15" Y="102"/>
|
||||
<TopLine Value="78"/>
|
||||
<UsageCount Value="6"/>
|
||||
<UsageCount Value="5"/>
|
||||
</Unit36>
|
||||
<Unit37>
|
||||
<Filename Value="..\wsdl_to_pascal\wsdl2pas_imp.pas"/>
|
||||
@ -311,193 +314,204 @@
|
||||
<UnitName Value="wsdl2pas_imp"/>
|
||||
<CursorPos X="29" Y="1641"/>
|
||||
<TopLine Value="1633"/>
|
||||
<UsageCount Value="77"/>
|
||||
<UsageCount Value="97"/>
|
||||
</Unit37>
|
||||
<Unit38>
|
||||
<Filename Value="..\..\..\..\lazarusClean\fpc\2.0.4\source\rtl\inc\fexpand.inc"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="124"/>
|
||||
<UsageCount Value="6"/>
|
||||
<UsageCount Value="5"/>
|
||||
</Unit38>
|
||||
<Unit39>
|
||||
<Filename Value="..\wst_rtti_filter\rtti_filters.pas"/>
|
||||
<UnitName Value="rtti_filters"/>
|
||||
<CursorPos X="1" Y="571"/>
|
||||
<TopLine Value="557"/>
|
||||
<UsageCount Value="11"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit39>
|
||||
<Unit40>
|
||||
<Filename Value="..\wst_rtti_filter\dom_cursors.pas"/>
|
||||
<UnitName Value="dom_cursors"/>
|
||||
<CursorPos X="1" Y="194"/>
|
||||
<TopLine Value="180"/>
|
||||
<CursorPos X="3" Y="110"/>
|
||||
<TopLine Value="108"/>
|
||||
<EditorIndex Value="4"/>
|
||||
<UsageCount Value="23"/>
|
||||
<UsageCount Value="31"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit40>
|
||||
<Unit41>
|
||||
<Filename Value="..\wst_rtti_filter\cursor_intf.pas"/>
|
||||
<UnitName Value="cursor_intf"/>
|
||||
<CursorPos X="1" Y="113"/>
|
||||
<TopLine Value="99"/>
|
||||
<EditorIndex Value="3"/>
|
||||
<UsageCount Value="23"/>
|
||||
<CursorPos X="3" Y="89"/>
|
||||
<TopLine Value="84"/>
|
||||
<EditorIndex Value="5"/>
|
||||
<UsageCount Value="33"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit41>
|
||||
<Unit42>
|
||||
<Filename Value="..\..\..\..\lazarusClean\fpc\2.0.4\source\rtl\objpas\sysutils\sysstrh.inc"/>
|
||||
<CursorPos X="41" Y="69"/>
|
||||
<TopLine Value="67"/>
|
||||
<UsageCount Value="7"/>
|
||||
<UsageCount Value="6"/>
|
||||
</Unit42>
|
||||
<Unit43>
|
||||
<Filename Value="..\..\..\..\lazarusClean\fpc\2.0.4\source\fcl\xml\dom.pp"/>
|
||||
<UnitName Value="DOM"/>
|
||||
<CursorPos X="14" Y="292"/>
|
||||
<TopLine Value="271"/>
|
||||
<UsageCount Value="10"/>
|
||||
<CursorPos X="14" Y="232"/>
|
||||
<TopLine Value="215"/>
|
||||
<UsageCount Value="9"/>
|
||||
</Unit43>
|
||||
<Unit44>
|
||||
<Filename Value="..\..\..\..\lazarusClean\fpc\2.0.4\source\rtl\inc\objpash.inc"/>
|
||||
<CursorPos X="26" Y="139"/>
|
||||
<TopLine Value="125"/>
|
||||
<UsageCount Value="9"/>
|
||||
<UsageCount Value="8"/>
|
||||
</Unit44>
|
||||
<Unit45>
|
||||
<Filename Value="..\..\..\..\lazarusClean\fpc\2.0.4\source\rtl\inc\objpas.inc"/>
|
||||
<CursorPos X="11" Y="360"/>
|
||||
<TopLine Value="354"/>
|
||||
<UsageCount Value="9"/>
|
||||
<UsageCount Value="8"/>
|
||||
</Unit45>
|
||||
<Unit46>
|
||||
<Filename Value="..\..\..\..\lazarusClean\fpc\2.0.4\source\rtl\objpas\classes\classesh.inc"/>
|
||||
<CursorPos X="14" Y="219"/>
|
||||
<TopLine Value="183"/>
|
||||
<UsageCount Value="10"/>
|
||||
<UsageCount Value="9"/>
|
||||
</Unit46>
|
||||
<Unit47>
|
||||
<Filename Value="wsdl2pas_imp.pas"/>
|
||||
<UnitName Value="wsdl2pas_imp"/>
|
||||
<CursorPos X="43" Y="883"/>
|
||||
<TopLine Value="862"/>
|
||||
<EditorIndex Value="2"/>
|
||||
<UsageCount Value="14"/>
|
||||
<CursorPos X="21" Y="514"/>
|
||||
<TopLine Value="514"/>
|
||||
<EditorIndex Value="3"/>
|
||||
<UsageCount Value="24"/>
|
||||
<Bookmarks Count="1">
|
||||
<Item0 X="21" Y="646" ID="3"/>
|
||||
</Bookmarks>
|
||||
<Loaded Value="True"/>
|
||||
</Unit47>
|
||||
</Units>
|
||||
<JumpHistory Count="28" HistoryIndex="27">
|
||||
<JumpHistory Count="30" HistoryIndex="29">
|
||||
<Position1>
|
||||
<Filename Value="wsdl2pas_imp.pas"/>
|
||||
<Caret Line="802" Column="48" TopLine="780"/>
|
||||
<Caret Line="401" Column="34" TopLine="386"/>
|
||||
</Position1>
|
||||
<Position2>
|
||||
<Filename Value="wsdl2pas_imp.pas"/>
|
||||
<Caret Line="1" Column="1" TopLine="1"/>
|
||||
<Caret Line="1063" Column="19" TopLine="1049"/>
|
||||
</Position2>
|
||||
<Position3>
|
||||
<Filename Value="wsdl2pas_imp.pas"/>
|
||||
<Caret Line="1321" Column="37" TopLine="1300"/>
|
||||
<Caret Line="176" Column="63" TopLine="151"/>
|
||||
</Position3>
|
||||
<Position4>
|
||||
<Filename Value="wsdl2pas_imp.pas"/>
|
||||
<Caret Line="1460" Column="57" TopLine="1438"/>
|
||||
<Caret Line="1066" Column="24" TopLine="1054"/>
|
||||
</Position4>
|
||||
<Position5>
|
||||
<Filename Value="wsdl2pas_imp.pas"/>
|
||||
<Caret Line="849" Column="32" TopLine="861"/>
|
||||
<Caret Line="559" Column="20" TopLine="544"/>
|
||||
</Position5>
|
||||
<Position6>
|
||||
<Filename Value="wsdl2pas_imp.pas"/>
|
||||
<Caret Line="802" Column="112" TopLine="788"/>
|
||||
<Caret Line="297" Column="37" TopLine="279"/>
|
||||
</Position6>
|
||||
<Position7>
|
||||
<Filename Value="generator.pas"/>
|
||||
<Caret Line="458" Column="20" TopLine="420"/>
|
||||
<Filename Value="wsdl2pas_imp.pas"/>
|
||||
<Caret Line="193" Column="88" TopLine="175"/>
|
||||
</Position7>
|
||||
<Position8>
|
||||
<Filename Value="generator.pas"/>
|
||||
<Caret Line="1" Column="1" TopLine="1"/>
|
||||
<Filename Value="wsdl2pas_imp.pas"/>
|
||||
<Caret Line="617" Column="31" TopLine="594"/>
|
||||
</Position8>
|
||||
<Position9>
|
||||
<Filename Value="generator.pas"/>
|
||||
<Caret Line="193" Column="9" TopLine="172"/>
|
||||
<Filename Value="wsdl2pas_imp.pas"/>
|
||||
<Caret Line="561" Column="20" TopLine="553"/>
|
||||
</Position9>
|
||||
<Position10>
|
||||
<Filename Value="generator.pas"/>
|
||||
<Caret Line="194" Column="39" TopLine="173"/>
|
||||
<Filename Value="wsdl2pas_imp.pas"/>
|
||||
<Caret Line="1092" Column="15" TopLine="1074"/>
|
||||
</Position10>
|
||||
<Position11>
|
||||
<Filename Value="generator.pas"/>
|
||||
<Caret Line="274" Column="9" TopLine="253"/>
|
||||
<Filename Value="wsdl2pas_imp.pas"/>
|
||||
<Caret Line="442" Column="13" TopLine="428"/>
|
||||
</Position11>
|
||||
<Position12>
|
||||
<Filename Value="generator.pas"/>
|
||||
<Caret Line="439" Column="47" TopLine="418"/>
|
||||
<Filename Value="wsdl2pas_imp.pas"/>
|
||||
<Caret Line="508" Column="20" TopLine="492"/>
|
||||
</Position12>
|
||||
<Position13>
|
||||
<Filename Value="generator.pas"/>
|
||||
<Caret Line="443" Column="49" TopLine="422"/>
|
||||
<Filename Value="wsdl2pas_imp.pas"/>
|
||||
<Caret Line="617" Column="1" TopLine="602"/>
|
||||
</Position13>
|
||||
<Position14>
|
||||
<Filename Value="generator.pas"/>
|
||||
<Caret Line="497" Column="34" TopLine="476"/>
|
||||
<Filename Value="wsdl2pas_imp.pas"/>
|
||||
<Caret Line="508" Column="14" TopLine="485"/>
|
||||
</Position14>
|
||||
<Position15>
|
||||
<Filename Value="generator.pas"/>
|
||||
<Caret Line="541" Column="9" TopLine="520"/>
|
||||
<Filename Value="wsdl2pas_imp.pas"/>
|
||||
<Caret Line="116" Column="58" TopLine="102"/>
|
||||
</Position15>
|
||||
<Position16>
|
||||
<Filename Value="generator.pas"/>
|
||||
<Caret Line="546" Column="9" TopLine="525"/>
|
||||
<Filename Value="wsdl2pas_imp.pas"/>
|
||||
<Caret Line="513" Column="68" TopLine="513"/>
|
||||
</Position16>
|
||||
<Position17>
|
||||
<Filename Value="generator.pas"/>
|
||||
<Caret Line="586" Column="9" TopLine="565"/>
|
||||
<Filename Value="wsdl2pas_imp.pas"/>
|
||||
<Caret Line="117" Column="28" TopLine="116"/>
|
||||
</Position17>
|
||||
<Position18>
|
||||
<Filename Value="generator.pas"/>
|
||||
<Caret Line="587" Column="19" TopLine="566"/>
|
||||
<Filename Value="wsdl2pas_imp.pas"/>
|
||||
<Caret Line="1095" Column="15" TopLine="1071"/>
|
||||
</Position18>
|
||||
<Position19>
|
||||
<Filename Value="generator.pas"/>
|
||||
<Caret Line="588" Column="18" TopLine="567"/>
|
||||
<Filename Value="wsdl2pas_imp.pas"/>
|
||||
<Caret Line="442" Column="10" TopLine="428"/>
|
||||
</Position19>
|
||||
<Position20>
|
||||
<Filename Value="generator.pas"/>
|
||||
<Caret Line="604" Column="9" TopLine="583"/>
|
||||
<Filename Value="wsdl2pas_imp.pas"/>
|
||||
<Caret Line="499" Column="53" TopLine="471"/>
|
||||
</Position20>
|
||||
<Position21>
|
||||
<Filename Value="generator.pas"/>
|
||||
<Caret Line="605" Column="47" TopLine="584"/>
|
||||
<Filename Value="wsdl2pas_imp.pas"/>
|
||||
<Caret Line="137" Column="55" TopLine="119"/>
|
||||
</Position21>
|
||||
<Position22>
|
||||
<Filename Value="generator.pas"/>
|
||||
<Caret Line="927" Column="26" TopLine="906"/>
|
||||
<Filename Value="parserdefs.pas"/>
|
||||
<Caret Line="334" Column="22" TopLine="330"/>
|
||||
</Position22>
|
||||
<Position23>
|
||||
<Filename Value="generator.pas"/>
|
||||
<Caret Line="966" Column="9" TopLine="945"/>
|
||||
<Caret Line="1770" Column="41" TopLine="1765"/>
|
||||
</Position23>
|
||||
<Position24>
|
||||
<Filename Value="generator.pas"/>
|
||||
<Caret Line="1001" Column="9" TopLine="980"/>
|
||||
<Caret Line="1812" Column="4" TopLine="1805"/>
|
||||
</Position24>
|
||||
<Position25>
|
||||
<Filename Value="generator.pas"/>
|
||||
<Caret Line="1002" Column="44" TopLine="981"/>
|
||||
<Caret Line="1795" Column="28" TopLine="1780"/>
|
||||
</Position25>
|
||||
<Position26>
|
||||
<Filename Value="generator.pas"/>
|
||||
<Caret Line="1215" Column="9" TopLine="1194"/>
|
||||
<Filename Value="wsdl2pas_imp.pas"/>
|
||||
<Caret Line="507" Column="40" TopLine="478"/>
|
||||
</Position26>
|
||||
<Position27>
|
||||
<Filename Value="generator.pas"/>
|
||||
<Caret Line="1250" Column="9" TopLine="1229"/>
|
||||
<Filename Value="wsdl2pas_imp.pas"/>
|
||||
<Caret Line="153" Column="56" TopLine="127"/>
|
||||
</Position27>
|
||||
<Position28>
|
||||
<Filename Value="generator.pas"/>
|
||||
<Caret Line="1535" Column="30" TopLine="1514"/>
|
||||
<Filename Value="wsdl2pas_imp.pas"/>
|
||||
<Caret Line="506" Column="16" TopLine="487"/>
|
||||
</Position28>
|
||||
<Position29>
|
||||
<Filename Value="wsdl2pas_imp.pas"/>
|
||||
<Caret Line="508" Column="1" TopLine="493"/>
|
||||
</Position29>
|
||||
<Position30>
|
||||
<Filename Value="wsdl2pas_imp.pas"/>
|
||||
<Caret Line="515" Column="1" TopLine="490"/>
|
||||
</Position30>
|
||||
</JumpHistory>
|
||||
</ProjectOptions>
|
||||
<CompilerOptions>
|
||||
|
@ -257,13 +257,10 @@ Var
|
||||
sbl : TInterfaceDefinition;
|
||||
|
||||
procedure ReadIntfHeader();
|
||||
Var
|
||||
tmpStr : String;
|
||||
begin
|
||||
NextToken();
|
||||
Repeat
|
||||
Tokenizer.CheckToken(toSymbol);
|
||||
tmpStr := Tokenizer.TokenString;
|
||||
NextToken();
|
||||
If AnsiSameText(Tokenizer.TokenString,GetPascalTokenStr(ptRigthParenthesis)) Then Begin
|
||||
NextToken();
|
||||
@ -437,7 +434,6 @@ end;
|
||||
procedure TPascalParser.ParseClassType(const AName: String);
|
||||
Var
|
||||
sbl : TClassTypeDefinition;
|
||||
tmpStr : String;
|
||||
begin
|
||||
sbl := TClassTypeDefinition.Create(AName);
|
||||
FSymbolTable.Add(sbl);
|
||||
|
@ -91,6 +91,7 @@ type
|
||||
FWsdlShortNames : TStringList;
|
||||
FSoapShortNames : TStringList;
|
||||
FXSShortNames : TStringList;
|
||||
FChildCursor : IObjectCursor;
|
||||
FServiceCursor : IObjectCursor;
|
||||
FBindingCursor : IObjectCursor;
|
||||
FPortTypeCursor : IObjectCursor;
|
||||
@ -112,14 +113,14 @@ type
|
||||
procedure Prepare();
|
||||
procedure ParseService(ANode : TDOMNode);
|
||||
procedure ParsePort(ANode : TDOMNode);
|
||||
procedure ParsePortType(
|
||||
function ParsePortType(
|
||||
ANode, ABindingNode : TDOMNode
|
||||
);
|
||||
procedure ParseOperation(
|
||||
) : TInterfaceDefinition;
|
||||
function ParseOperation(
|
||||
AOwner : TInterfaceDefinition;
|
||||
ANode : TDOMNode;
|
||||
const ASoapBindingStyle : string
|
||||
);
|
||||
) : TMethodDefinition;
|
||||
function ParseType(const AName, ATypeOrElement : string) : TTypeDefinition;
|
||||
public
|
||||
constructor Create(ADoc : TXMLDocument; ASymbols : TSymbolTable);
|
||||
@ -133,8 +134,9 @@ implementation
|
||||
uses dom_cursors, parserutils, StrUtils, Contnrs;
|
||||
|
||||
const
|
||||
s_address : WideString = 'address';
|
||||
s_all : WideString = 'all';
|
||||
s_any : WideString = 'any';
|
||||
//s_any : WideString = 'any';
|
||||
s_array : WideString = 'array';
|
||||
s_arrayType : WideString = 'arrayType';
|
||||
s_attribute : WideString = 'attribute';
|
||||
@ -148,6 +150,7 @@ const
|
||||
s_extension : WideString = 'extension';
|
||||
s_input : WideString = 'input';
|
||||
s_item : WideString = 'item';
|
||||
s_location : WideString = 'location';
|
||||
s_message : WideString = 'message';
|
||||
s_maxOccurs : WideString = 'maxOccurs';
|
||||
s_minOccurs : WideString = 'minOccurs';
|
||||
@ -161,7 +164,7 @@ const
|
||||
s_prohibited : WideString = 'prohibited';
|
||||
s_required : WideString = 'required';
|
||||
s_restriction : WideString = 'restriction';
|
||||
s_return : WideString = 'return';
|
||||
//s_return : WideString = 'return';
|
||||
s_rpc : WideString = 'rpc';
|
||||
s_schema : WideString = 'schema';
|
||||
s_xs : WideString = 'http://www.w3.org/2001/XMLSchema';
|
||||
@ -170,7 +173,9 @@ const
|
||||
s_simpleContent : WideString = 'simpleContent';
|
||||
s_simpleType : WideString = 'simpleType';
|
||||
s_soap : WideString = 'http://schemas.xmlsoap.org/wsdl/soap/';
|
||||
s_soapAction : WideString = 'soapAction';
|
||||
s_style : WideString = 'style';
|
||||
s_targetNamespace : WideString = 'targetNamespace';
|
||||
s_type : WideString = 'type';
|
||||
s_types : WideString = 'types';
|
||||
s_unbounded : WideString = 'unbounded';
|
||||
@ -187,7 +192,7 @@ type TCursorExposedType = ( cetRttiNode, cetDomNode );
|
||||
function CreateAttributesCursor(ANode : TDOMNode; const AExposedType : TCursorExposedType):IObjectCursor;
|
||||
begin
|
||||
Result := nil;
|
||||
if ( ANode <> nil ) and ( ANode.Attributes <> nil ) then begin
|
||||
if ( ANode <> nil ) and ( ANode.Attributes <> nil ) and ( ANode.Attributes.Length > 0 ) then begin
|
||||
Result := TDOMNamedNodeMapCursor.Create(ANode.Attributes,faNone) ;
|
||||
if ( AExposedType = cetRttiNode ) then
|
||||
Result := TDOMNodeRttiExposerCursor.Create(Result);
|
||||
@ -272,23 +277,8 @@ begin
|
||||
end;
|
||||
|
||||
function TWsdlParser.CreateWsdlNameFilter(const AName: WideString): IObjectFilter;
|
||||
var
|
||||
k : Integer;
|
||||
locStr : string;
|
||||
locWStr : WideString;
|
||||
begin
|
||||
locStr := '';
|
||||
for k := 0 to Pred(FWsdlShortNames.Count) do begin
|
||||
if IsStrEmpty(FWsdlShortNames[k]) then
|
||||
locWStr := ''
|
||||
else
|
||||
locWStr := FWsdlShortNames[k] + ':';
|
||||
locWStr := locWStr + AName;
|
||||
locStr := locStr + ' or ' + s_NODE_NAME + '=' + QuotedStr(locWStr) ;
|
||||
end;
|
||||
if ( Length(locStr) > 0 ) then
|
||||
Delete(locStr,1,Length(' or '));
|
||||
Result := ParseFilter(locStr,TDOMNodeRttiExposer);
|
||||
Result := ParseFilter(CreateQualifiedNameFilterStr(AName,FWsdlShortNames),TDOMNodeRttiExposer);
|
||||
end;
|
||||
|
||||
function TWsdlParser.FindNamedNode(
|
||||
@ -298,20 +288,17 @@ function TWsdlParser.FindNamedNode(
|
||||
var
|
||||
attCrs, crs : IObjectCursor;
|
||||
curObj : TDOMNodeRttiExposer;
|
||||
fltrCreator : TRttiFilterCreator;
|
||||
s : string;
|
||||
fltr : IObjectFilter;
|
||||
begin
|
||||
Result := nil;
|
||||
fltrCreator := TRttiFilterCreator.Create(TDOMNodeRttiExposer);
|
||||
try
|
||||
s := s_NODE_NAME;
|
||||
fltrCreator.AddCondition(s,sfoEqualCaseInsensitive,s_name,fcNone);
|
||||
if Assigned(AList) then begin
|
||||
fltr := ParseFilter(Format('%s = %s',[s_NODE_NAME,QuotedStr(s_name)]),TDOMNodeRttiExposer);
|
||||
AList.Reset();
|
||||
while AList.MoveNext() do begin
|
||||
curObj := AList.GetCurrent() as TDOMNodeRttiExposer;
|
||||
attCrs := CreateAttributesCursor(curObj.InnerObject,cetRttiNode);
|
||||
if Assigned(attCrs) then begin
|
||||
crs := CreateCursorOn(attCrs,TRttiObjectFilter.Create(fltrCreator.Root,clrNone));
|
||||
crs := CreateCursorOn(attCrs,fltr);
|
||||
crs.Reset();
|
||||
if crs.MoveNext() and WideSameText(AName,TDOMNodeRttiExposer(crs.GetCurrent()).NodeValue) then begin
|
||||
Result := curObj.InnerObject;
|
||||
@ -319,9 +306,6 @@ begin
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
finally
|
||||
fltrCreator.Clear(clrFreeObjects);
|
||||
FreeAndNil(fltrCreator);
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -386,95 +370,79 @@ end;
|
||||
procedure TWsdlParser.Prepare();
|
||||
var
|
||||
locAttCursor : IObjectCursor;
|
||||
locChildCursor : IObjectCursor;
|
||||
locFltrCreator : TRttiFilterCreator;
|
||||
locObj : TDOMNodeRttiExposer;
|
||||
locSrvcCrs : IObjectCursor;
|
||||
begin
|
||||
FPortTypeCursor := nil;
|
||||
FWsdlShortNames.Clear();
|
||||
locAttCursor := CreateAttributesCursor(FDoc.DocumentElement,cetRttiNode);
|
||||
|
||||
locChildCursor := TDOMNodeListCursor.Create(FDoc.DocumentElement.GetChildNodes,faFreeOnDestroy) ;
|
||||
locChildCursor := TDOMNodeRttiExposerCursor.Create(locChildCursor);
|
||||
FChildCursor := TDOMNodeListCursor.Create(FDoc.DocumentElement.GetChildNodes,faFreeOnDestroy) ;
|
||||
FChildCursor := TDOMNodeRttiExposerCursor.Create(FChildCursor);
|
||||
|
||||
locFltrCreator := TRttiFilterCreator.Create(TDOMNodeRttiExposer);
|
||||
try
|
||||
ExtractNameSpaceShortNames(locAttCursor,FWsdlShortNames,s_wsdl,nfaRaiseException,True);
|
||||
ExtractNameSpaceShortNames(locAttCursor,FSoapShortNames,s_soap,nfaRaiseException,False);
|
||||
ExtractNameSpaceShortNames(locAttCursor,FXSShortNames,s_xs,nfaRaiseException,True);
|
||||
ExtractNameSpaceShortNames(locAttCursor,FWsdlShortNames,s_wsdl,nfaRaiseException,True);
|
||||
ExtractNameSpaceShortNames(locAttCursor,FSoapShortNames,s_soap,nfaRaiseException,False);
|
||||
ExtractNameSpaceShortNames(locAttCursor,FXSShortNames,s_xs,nfaRaiseException,True);
|
||||
|
||||
locFltrCreator.Clear(clrFreeObjects);
|
||||
CreateWsdlNameFilter(locFltrCreator,s_service);
|
||||
FServiceCursor := CreateCursorOn(locChildCursor.Clone() as IObjectCursor,TRttiObjectFilter.Create(locFltrCreator.Root,clrFreeObjects));
|
||||
FServiceCursor.Reset();
|
||||
|
||||
locFltrCreator.Clear(clrNone);
|
||||
CreateWsdlNameFilter(locFltrCreator,s_binding);
|
||||
FBindingCursor := CreateCursorOn(locChildCursor.Clone() as IObjectCursor,TRttiObjectFilter.Create(locFltrCreator.Root,clrFreeObjects));
|
||||
FBindingCursor.Reset();
|
||||
FServiceCursor := CreateCursorOn(
|
||||
FChildCursor.Clone() as IObjectCursor,
|
||||
ParseFilter(CreateQualifiedNameFilterStr(s_service,FWsdlShortNames),TDOMNodeRttiExposer)
|
||||
);
|
||||
FServiceCursor.Reset();
|
||||
|
||||
FBindingCursor := CreateCursorOn(
|
||||
FChildCursor.Clone() as IObjectCursor,
|
||||
ParseFilter(CreateQualifiedNameFilterStr(s_binding,FWsdlShortNames),TDOMNodeRttiExposer)
|
||||
);
|
||||
FBindingCursor.Reset();
|
||||
|
||||
locFltrCreator.Clear(clrNone);
|
||||
CreateWsdlNameFilter(locFltrCreator,s_portType);
|
||||
FPortTypeCursor := CreateCursorOn(locChildCursor.Clone() as IObjectCursor,TRttiObjectFilter.Create(locFltrCreator.Root,clrFreeObjects));
|
||||
FPortTypeCursor.Reset();
|
||||
FPortTypeCursor := CreateCursorOn(
|
||||
FChildCursor.Clone() as IObjectCursor,
|
||||
ParseFilter(CreateQualifiedNameFilterStr(s_portType,FWsdlShortNames),TDOMNodeRttiExposer)
|
||||
);
|
||||
FPortTypeCursor.Reset();
|
||||
|
||||
FSchemaCursor := nil;
|
||||
locFltrCreator.Clear(clrNone);
|
||||
CreateWsdlNameFilter(locFltrCreator,s_types);
|
||||
FTypesCursor := CreateCursorOn(locChildCursor.Clone() as IObjectCursor,TRttiObjectFilter.Create(locFltrCreator.Root,clrFreeObjects));
|
||||
FTypesCursor.Reset();
|
||||
if FTypesCursor.MoveNext() then begin
|
||||
locObj := FTypesCursor.GetCurrent() as TDOMNodeRttiExposer;
|
||||
if locObj.InnerObject.HasChildNodes() then begin
|
||||
FSchemaCursor := CreateChildrenCursor(locObj.InnerObject,cetRttiNode);
|
||||
FSchemaCursor.Reset();
|
||||
locFltrCreator.Clear(clrNone);
|
||||
CreateXsNameFilter(locFltrCreator,s_schema);
|
||||
FSchemaCursor := CreateCursorOn(
|
||||
FSchemaCursor,//.Clone() as IObjectCursor,
|
||||
TRttiObjectFilter.Create(locFltrCreator.Root,clrFreeObjects)
|
||||
);
|
||||
FSchemaCursor.Reset();
|
||||
end;
|
||||
FSchemaCursor := nil;
|
||||
FTypesCursor := CreateCursorOn(
|
||||
FChildCursor.Clone() as IObjectCursor,
|
||||
ParseFilter(CreateQualifiedNameFilterStr(s_types,FWsdlShortNames),TDOMNodeRttiExposer)
|
||||
);
|
||||
FTypesCursor.Reset();
|
||||
if FTypesCursor.MoveNext() then begin
|
||||
locObj := FTypesCursor.GetCurrent() as TDOMNodeRttiExposer;
|
||||
if locObj.InnerObject.HasChildNodes() then begin
|
||||
FSchemaCursor := CreateChildrenCursor(locObj.InnerObject,cetRttiNode);
|
||||
FSchemaCursor.Reset();
|
||||
FSchemaCursor := CreateCursorOn(
|
||||
FSchemaCursor,//.Clone() as IObjectCursor,
|
||||
ParseFilter(CreateQualifiedNameFilterStr(s_schema,FXSShortNames),TDOMNodeRttiExposer)
|
||||
);
|
||||
FSchemaCursor.Reset();
|
||||
end;
|
||||
|
||||
locFltrCreator.Clear(clrNone);
|
||||
CreateWsdlNameFilter(locFltrCreator,s_message);
|
||||
FMessageCursor := CreateCursorOn(locChildCursor.Clone() as IObjectCursor,TRttiObjectFilter.Create(locFltrCreator.Root,clrFreeObjects));
|
||||
FMessageCursor.Reset();
|
||||
|
||||
locSrvcCrs := FServiceCursor.Clone() as IObjectCursor;
|
||||
while locSrvcCrs.MoveNext() do begin
|
||||
locObj := locSrvcCrs.GetCurrent() as TDOMNodeRttiExposer;
|
||||
ParseService(locObj.InnerObject);
|
||||
end;
|
||||
finally
|
||||
locFltrCreator.Free();
|
||||
end;
|
||||
|
||||
FMessageCursor := CreateCursorOn(
|
||||
FChildCursor.Clone() as IObjectCursor,
|
||||
ParseFilter(CreateQualifiedNameFilterStr(s_message,FWsdlShortNames),TDOMNodeRttiExposer)
|
||||
);
|
||||
FMessageCursor.Reset();
|
||||
end;
|
||||
|
||||
procedure TWsdlParser.ParseService(ANode: TDOMNode);
|
||||
var
|
||||
locFltrCreator : TRttiFilterCreator;
|
||||
locCursor, locPortCursor : IObjectCursor;
|
||||
locObj : TDOMNodeRttiExposer;
|
||||
begin
|
||||
locFltrCreator := TRttiFilterCreator.Create(TDOMNodeRttiExposer);
|
||||
try
|
||||
CreateWsdlNameFilter(locFltrCreator,s_port);
|
||||
locCursor := CreateChildrenCursor(ANode,cetRttiNode);
|
||||
if Assigned(locCursor) then begin
|
||||
locPortCursor := CreateCursorOn(locCursor,TRttiObjectFilter.Create(locFltrCreator.Root,clrFreeObjects));
|
||||
locFltrCreator.Clear(clrNone);
|
||||
locPortCursor.Reset();
|
||||
while locPortCursor.MoveNext() do begin
|
||||
locObj := locPortCursor.GetCurrent() as TDOMNodeRttiExposer;
|
||||
ParsePort(locObj.InnerObject);
|
||||
end;
|
||||
locCursor := CreateChildrenCursor(ANode,cetRttiNode);
|
||||
if Assigned(locCursor) then begin
|
||||
locPortCursor := CreateCursorOn(
|
||||
locCursor,
|
||||
ParseFilter(CreateQualifiedNameFilterStr(s_port,FWsdlShortNames),TDOMNodeRttiExposer)
|
||||
);
|
||||
locPortCursor.Reset();
|
||||
while locPortCursor.MoveNext() do begin
|
||||
locObj := locPortCursor.GetCurrent() as TDOMNodeRttiExposer;
|
||||
ParsePort(locObj.InnerObject);
|
||||
end;
|
||||
finally
|
||||
locFltrCreator.Free();
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -488,26 +456,16 @@ procedure TWsdlParser.ParsePort(ANode: TDOMNode);
|
||||
function ExtractBindingQName(out AName : WideString):Boolean ;
|
||||
var
|
||||
attCrs, crs : IObjectCursor;
|
||||
fltrCreator : TRttiFilterCreator;
|
||||
s : string;
|
||||
begin
|
||||
Result := False;
|
||||
attCrs := CreateAttributesCursor(ANode,cetRttiNode);
|
||||
if Assigned(attCrs) then begin
|
||||
fltrCreator := TRttiFilterCreator.Create(TDOMNodeRttiExposer);
|
||||
try
|
||||
s := s_NODE_NAME;
|
||||
fltrCreator.AddCondition(s,sfoEqualCaseInsensitive,s_binding,fcNone);
|
||||
crs := CreateCursorOn(attCrs,TRttiObjectFilter.Create(fltrCreator.Root,clrNone));
|
||||
crs.Reset();
|
||||
if crs.MoveNext() then begin
|
||||
AName := TDOMNodeRttiExposer(crs.GetCurrent()).NodeValue;
|
||||
Result := True;
|
||||
exit;
|
||||
end;
|
||||
finally
|
||||
fltrCreator.Clear(clrFreeObjects);
|
||||
FreeAndNil(fltrCreator);
|
||||
crs := CreateCursorOn(attCrs,ParseFilter(Format('%s = %s',[s_NODE_NAME,QuotedStr(s_binding)]),TDOMNodeRttiExposer));
|
||||
crs.Reset();
|
||||
if crs.MoveNext() then begin
|
||||
AName := TDOMNodeRttiExposer(crs.GetCurrent()).NodeValue;
|
||||
Result := True;
|
||||
exit;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
@ -515,26 +473,16 @@ procedure TWsdlParser.ParsePort(ANode: TDOMNode);
|
||||
function ExtractTypeQName(ABndgNode : TDOMNode; out AName : WideString):Boolean ;
|
||||
var
|
||||
attCrs, crs : IObjectCursor;
|
||||
fltrCreator : TRttiFilterCreator;
|
||||
s : string;
|
||||
begin
|
||||
Result := False;
|
||||
attCrs := CreateAttributesCursor(ABndgNode,cetRttiNode);
|
||||
if Assigned(attCrs) then begin
|
||||
fltrCreator := TRttiFilterCreator.Create(TDOMNodeRttiExposer);
|
||||
try
|
||||
s := s_NODE_NAME;
|
||||
fltrCreator.AddCondition(s,sfoEqualCaseInsensitive,s_type,fcNone);
|
||||
crs := CreateCursorOn(attCrs,TRttiObjectFilter.Create(fltrCreator.Root,clrNone));
|
||||
crs.Reset();
|
||||
if crs.MoveNext() then begin
|
||||
AName := TDOMNodeRttiExposer(crs.GetCurrent()).NodeValue;
|
||||
Result := True;
|
||||
exit;
|
||||
end;
|
||||
finally
|
||||
fltrCreator.Clear(clrFreeObjects);
|
||||
FreeAndNil(fltrCreator);
|
||||
crs := CreateCursorOn(attCrs,ParseFilter(Format('%s = %s',[s_NODE_NAME,QuotedStr(s_type)]),TDOMNodeRttiExposer));
|
||||
crs.Reset();
|
||||
if crs.MoveNext() then begin
|
||||
AName := TDOMNodeRttiExposer(crs.GetCurrent()).NodeValue;
|
||||
Result := True;
|
||||
exit;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
@ -544,10 +492,36 @@ procedure TWsdlParser.ParsePort(ANode: TDOMNode);
|
||||
Result := FindNamedNode(FPortTypeCursor,AName);
|
||||
end;
|
||||
|
||||
function ExtractAddress() : string;
|
||||
var
|
||||
tmpCrs : IObjectCursor;
|
||||
nd : TDOMNode;
|
||||
begin
|
||||
Result := '';
|
||||
if ANode.HasChildNodes() then begin
|
||||
tmpCrs := CreateCursorOn(
|
||||
CreateChildrenCursor(ANode,cetRttiNode),
|
||||
ParseFilter(CreateQualifiedNameFilterStr(s_address,FSoapShortNames),TDOMNodeRttiExposer)
|
||||
);
|
||||
tmpCrs.Reset();
|
||||
if tmpCrs.MoveNext() then begin
|
||||
nd := (tmpCrs.GetCurrent() as TDOMNodeRttiExposer).InnerObject;
|
||||
tmpCrs := CreateCursorOn(
|
||||
CreateAttributesCursor(nd,cetRttiNode),
|
||||
ParseFilter(Format('%s = %s',[s_NODE_NAME,QuotedStr(s_location)]),TDOMNodeRttiExposer)
|
||||
);
|
||||
if Assigned(tmpCrs) and tmpCrs.MoveNext() then begin
|
||||
Result := (tmpCrs.GetCurrent() as TDOMNodeRttiExposer).NodeValue;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
var
|
||||
bindingName, typeName : WideString;
|
||||
i : Integer;
|
||||
bindingNode, typeNode : TDOMNode;
|
||||
intfDef : TInterfaceDefinition;
|
||||
begin
|
||||
if ExtractBindingQName(bindingName) then begin
|
||||
i := Pos(':',bindingName);
|
||||
@ -559,14 +533,15 @@ begin
|
||||
typeName := Copy(typeName,( i + 1 ), MaxInt);
|
||||
typeNode := FindTypeNode(typeName);
|
||||
if Assigned(typeNode) then begin
|
||||
ParsePortType(typeNode,bindingNode);
|
||||
intfDef := ParsePortType(typeNode,bindingNode);
|
||||
intfDef.Address := ExtractAddress();
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TWsdlParser.ParsePortType(ANode, ABindingNode : TDOMNode);
|
||||
function TWsdlParser.ParsePortType(ANode, ABindingNode : TDOMNode) : TInterfaceDefinition;
|
||||
|
||||
function ExtractSoapBindingStyle(out AName : WideString):Boolean ;
|
||||
var
|
||||
@ -596,56 +571,83 @@ procedure TWsdlParser.ParsePortType(ANode, ABindingNode : TDOMNode);
|
||||
end;
|
||||
end;
|
||||
|
||||
function ExtractBindingOperationCursor() : IObjectCursor ;
|
||||
begin
|
||||
Result := nil;
|
||||
if ABindingNode.HasChildNodes() then begin
|
||||
Result := CreateCursorOn(
|
||||
CreateChildrenCursor(ABindingNode,cetRttiNode),
|
||||
ParseFilter(CreateQualifiedNameFilterStr(s_operation,FWsdlShortNames),TDOMNodeRttiExposer)
|
||||
);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure ParseOperationAtt_SoapAction(ABndngOpCurs : IObjectCursor; AOp : TMethodDefinition);
|
||||
var
|
||||
nd : TDOMNode;
|
||||
tmpCrs : IObjectCursor;
|
||||
begin
|
||||
nd := FindNamedNode(ABndngOpCurs,AOp.ExternalName);
|
||||
if Assigned(nd) and nd.HasChildNodes() then begin
|
||||
tmpCrs := CreateCursorOn(
|
||||
CreateChildrenCursor(nd,cetRttiNode),
|
||||
ParseFilter(CreateQualifiedNameFilterStr(s_operation,FSoapShortNames),TDOMNodeRttiExposer)
|
||||
);
|
||||
tmpCrs.Reset();
|
||||
if tmpCrs.MoveNext() then begin
|
||||
nd := (tmpCrs.GetCurrent() as TDOMNodeRttiExposer).InnerObject;
|
||||
if Assigned(nd.Attributes) and ( nd.Attributes.Length > 0 ) then begin
|
||||
tmpCrs := CreateCursorOn(
|
||||
CreateAttributesCursor(nd,cetRttiNode),
|
||||
ParseFilter(Format('%s = %s',[s_NODE_NAME,QuotedStr(s_soapAction)]),TDOMNodeRttiExposer)
|
||||
);
|
||||
tmpCrs.Reset();
|
||||
if tmpCrs.MoveNext() then begin
|
||||
nd := (tmpCrs.GetCurrent() as TDOMNodeRttiExposer).InnerObject;
|
||||
AOp.Properties.Values[s_soapAction] := nd.NodeValue;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
var
|
||||
locIntf : TInterfaceDefinition;
|
||||
locAttCursor : IObjectCursor;
|
||||
locFltrCreator : TRttiFilterCreator;
|
||||
locCursor, locOpCursor : IObjectCursor;
|
||||
locCursor, locOpCursor, locBindingOperationCursor : IObjectCursor;
|
||||
locObj : TDOMNodeRttiExposer;
|
||||
i : Integer;
|
||||
locStrBuffer, locSoapBindingStyle : string;
|
||||
locSoapBindingStyle : string;
|
||||
locWStrBuffer : WideString;
|
||||
locMthd : TMethodDefinition;
|
||||
begin
|
||||
locAttCursor := CreateAttributesCursor(ANode,cetRttiNode);
|
||||
locFltrCreator := TRttiFilterCreator.Create(TDOMNodeRttiExposer);
|
||||
locCursor := CreateCursorOn(locAttCursor,ParseFilter(Format('%s = %s',[s_NODE_NAME,QuotedStr(s_name)]),TDOMNodeRttiExposer));
|
||||
locCursor.Reset();
|
||||
if not locCursor.MoveNext() then
|
||||
raise EWslParserException.CreateFmt('PortType Attribute not found : "%s"',[s_name]);
|
||||
locObj := locCursor.GetCurrent() as TDOMNodeRttiExposer;
|
||||
locIntf := TInterfaceDefinition.Create(locObj.NodeValue);
|
||||
try
|
||||
locStrBuffer := s_NODE_NAME;
|
||||
locFltrCreator.AddCondition(locStrBuffer,sfoEqualCaseInsensitive,s_name,fcNone);
|
||||
locCursor := CreateCursorOn(locAttCursor,TRttiObjectFilter.Create(locFltrCreator.Root,clrNone));
|
||||
locCursor.Reset();
|
||||
if not locCursor.MoveNext() then
|
||||
raise EWslParserException.CreateFmt('PortType Attribute not found : "%s"',[s_name]);
|
||||
locObj := locCursor.GetCurrent() as TDOMNodeRttiExposer;
|
||||
locIntf := TInterfaceDefinition.Create(locObj.NodeValue);
|
||||
try
|
||||
FSymbols.Add(locIntf);
|
||||
except
|
||||
FreeAndNil(locIntf);
|
||||
raise;
|
||||
end;
|
||||
locCursor := CreateChildrenCursor(ANode,cetRttiNode);
|
||||
if Assigned(locCursor) then begin
|
||||
locFltrCreator.Clear(clrFreeObjects);
|
||||
for i := 0 to Pred(FWsdlShortNames.Count) do begin
|
||||
if IsStrEmpty(FWsdlShortNames[i]) then
|
||||
locWStrBuffer := ''
|
||||
else
|
||||
locWStrBuffer := FWsdlShortNames[i] + ':';
|
||||
locWStrBuffer := locWStrBuffer + s_operation;
|
||||
locStrBuffer := s_NODE_NAME;
|
||||
locFltrCreator.AddCondition(locStrBuffer,sfoEqualCaseInsensitive,locWStrBuffer,fcOr);
|
||||
end;
|
||||
locOpCursor := CreateCursorOn(locCursor,TRttiObjectFilter.Create(locFltrCreator.Root,clrNone));
|
||||
locOpCursor.Reset();
|
||||
ExtractSoapBindingStyle(locWStrBuffer);
|
||||
locSoapBindingStyle := locWStrBuffer;
|
||||
while locOpCursor.MoveNext() do begin
|
||||
locObj := locOpCursor.GetCurrent() as TDOMNodeRttiExposer;
|
||||
ParseOperation(locIntf,locObj.InnerObject,locSoapBindingStyle);
|
||||
FSymbols.Add(locIntf);
|
||||
except
|
||||
FreeAndNil(locIntf);
|
||||
raise;
|
||||
end;
|
||||
Result := locIntf;
|
||||
locCursor := CreateChildrenCursor(ANode,cetRttiNode);
|
||||
if Assigned(locCursor) then begin
|
||||
locOpCursor := CreateCursorOn(locCursor,ParseFilter(CreateQualifiedNameFilterStr(s_operation,FWsdlShortNames),TDOMNodeRttiExposer));
|
||||
locOpCursor.Reset();
|
||||
ExtractSoapBindingStyle(locWStrBuffer);
|
||||
locSoapBindingStyle := locWStrBuffer;
|
||||
locBindingOperationCursor := ExtractBindingOperationCursor();
|
||||
while locOpCursor.MoveNext() do begin
|
||||
locObj := locOpCursor.GetCurrent() as TDOMNodeRttiExposer;
|
||||
locMthd := ParseOperation(locIntf,locObj.InnerObject,locSoapBindingStyle);
|
||||
if Assigned(locMthd) then begin
|
||||
ParseOperationAtt_SoapAction(locBindingOperationCursor,locMthd);
|
||||
end;
|
||||
end;
|
||||
finally
|
||||
locFltrCreator.Free();
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -679,11 +681,11 @@ begin
|
||||
inherited;
|
||||
end;
|
||||
|
||||
procedure TWsdlParser.ParseOperation(
|
||||
function TWsdlParser.ParseOperation(
|
||||
AOwner : TInterfaceDefinition;
|
||||
ANode : TDOMNode;
|
||||
const ASoapBindingStyle : string
|
||||
);
|
||||
) : TMethodDefinition;
|
||||
|
||||
function ExtractOperationName(out AName : string):Boolean;
|
||||
var
|
||||
@ -875,7 +877,7 @@ procedure TWsdlParser.ParseOperation(
|
||||
end;
|
||||
end;
|
||||
if ( SameText(ASoapBindingStyle,s_rpc) and
|
||||
( prmDef <> nil ) and SameText(prmDef.Name,s_return) and
|
||||
( prmDef <> nil ) and ( prmDef.Modifier = pmOut ) and//and SameText(prmDef.Name,s_return) and
|
||||
( prmDef = tmpMthd.Parameter[Pred(tmpMthd.ParameterCount)] )
|
||||
) or
|
||||
( SameText(ASoapBindingStyle,s_document) and
|
||||
@ -909,6 +911,8 @@ var
|
||||
locMthd : TMethodDefinition;
|
||||
mthdName : string;
|
||||
begin
|
||||
Result := nil;
|
||||
locMthd := nil;
|
||||
if not ExtractOperationName(mthdName) then
|
||||
raise EWslParserException.CreateFmt('Operation Attribute not found : "%s"',[s_name]);
|
||||
if SameText(s_document,ASoapBindingStyle) then begin
|
||||
@ -920,6 +924,7 @@ begin
|
||||
if ( locMthd <> nil ) then
|
||||
AOwner.AddMethod(locMthd);
|
||||
end;
|
||||
Result := locMthd;
|
||||
end;
|
||||
|
||||
function TWsdlParser.ParseType(const AName, ATypeOrElement: string): TTypeDefinition;
|
||||
@ -1083,10 +1088,44 @@ procedure TWsdlParser.Parse();
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure ExtractNameSpace();
|
||||
var
|
||||
tmpCrs : IObjectCursor;
|
||||
nd : TDOMNode;
|
||||
s : string;
|
||||
begin
|
||||
nd := FDoc.DocumentElement;
|
||||
if Assigned(nd.Attributes) and ( nd.Attributes.Length > 0 ) then begin
|
||||
tmpCrs := CreateCursorOn(
|
||||
CreateAttributesCursor(nd,cetRttiNode),
|
||||
ParseFilter(Format('%s = %s',[s_NODE_NAME,QuotedStr(s_targetNamespace)]),TDOMNodeRttiExposer)
|
||||
);
|
||||
tmpCrs.Reset();
|
||||
if tmpCrs.MoveNext() then begin
|
||||
s := (tmpCrs.GetCurrent() as TDOMNodeRttiExposer).NodeValue;
|
||||
if not IsStrEmpty(s) then begin
|
||||
FSymbols.RegisterExternalAlias(s);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
var
|
||||
locSrvcCrs : IObjectCursor;
|
||||
locObj : TDOMNodeRttiExposer;
|
||||
begin
|
||||
Prepare();
|
||||
|
||||
locSrvcCrs := FServiceCursor.Clone() as IObjectCursor;
|
||||
locSrvcCrs.Reset();
|
||||
while locSrvcCrs.MoveNext() do begin
|
||||
locObj := locSrvcCrs.GetCurrent() as TDOMNodeRttiExposer;
|
||||
ParseService(locObj.InnerObject);
|
||||
end;
|
||||
|
||||
ParseForwardDeclarations();
|
||||
ExtractNameSpace();
|
||||
end;
|
||||
|
||||
{ TAbstractTypeParser }
|
||||
@ -1375,7 +1414,8 @@ var
|
||||
TArrayDefinition.Create(
|
||||
Format('%s_%sArray',[AClassName,locPropTyp.Name]),
|
||||
locPropTyp.DataType,
|
||||
locPropTyp.Name
|
||||
locPropTyp.Name,
|
||||
locPropTyp.ExternalName
|
||||
)
|
||||
);
|
||||
end;
|
||||
@ -1440,7 +1480,7 @@ var
|
||||
end;
|
||||
if not locSym.InheritsFrom(TTypeDefinition) then
|
||||
raise EWslParserException.CreateFmt('Invalid array type definition, invalid item type definition : "%s".',[FTypeName]);
|
||||
Result := TArrayDefinition.Create(AInternalName,locSym as TTypeDefinition,s_item);
|
||||
Result := TArrayDefinition.Create(AInternalName,locSym as TTypeDefinition,s_item,s_item);
|
||||
if AHasInternalName then
|
||||
Result.RegisterExternalAlias(ATypeName);
|
||||
end;
|
||||
@ -1493,7 +1533,7 @@ begin
|
||||
Result := nil;
|
||||
propTyp := arrayItems[0] as TPropertyDefinition;
|
||||
//arrayDef := TArrayDefinition.Create(internalName,(arrayItemType as TTypeDefinition),arrayItemName);
|
||||
arrayDef := TArrayDefinition.Create(internalName,propTyp.DataType,propTyp.Name);
|
||||
arrayDef := TArrayDefinition.Create(internalName,propTyp.DataType,propTyp.Name,propTyp.ExternalName);
|
||||
FreeAndNil(classDef);
|
||||
Result := arrayDef;
|
||||
if hasInternalName then
|
||||
@ -1748,74 +1788,60 @@ end;
|
||||
procedure TSimpleTypeParser.ExtractContentType();
|
||||
var
|
||||
locCrs, locAttCrs : IObjectCursor;
|
||||
fltrCtr : TRttiFilterCreator;
|
||||
tmpNode : TDOMNode;
|
||||
begin
|
||||
fltrCtr := TRttiFilterCreator.Create(TDOMNodeRttiExposer);
|
||||
try
|
||||
CreateQualifiedNameFilter(fltrCtr,s_restriction,FOwner.FXSShortNames);
|
||||
locCrs := CreateCursorOn(
|
||||
FChildCursor.Clone() as IObjectCursor,TRttiObjectFilter.Create(fltrCtr.Root,clrFreeObjects)
|
||||
);
|
||||
locCrs.Reset();
|
||||
if locCrs.MoveNext() then begin
|
||||
FRestrictionNode := (locCrs.GetCurrent() as TDOMNodeRttiExposer).InnerObject;
|
||||
tmpNode := nil;
|
||||
locAttCrs := CreateAttributesCursor(FRestrictionNode,cetRttiNode);
|
||||
if Assigned(locAttCrs) then begin
|
||||
locAttCrs := CreateCursorOn(locAttCrs,ParseFilter(Format('%s=%s',[s_NODE_NAME,QuotedStr(s_base)]),TDOMNodeRttiExposer));
|
||||
locAttCrs.Reset();
|
||||
if locAttCrs.MoveNext() then begin
|
||||
tmpNode := (locAttCrs.GetCurrent() as TDOMNodeRttiExposer).InnerObject;
|
||||
end;
|
||||
locCrs := CreateCursorOn(
|
||||
FChildCursor.Clone() as IObjectCursor,
|
||||
ParseFilter(CreateQualifiedNameFilterStr(s_restriction,FOwner.FXSShortNames),TDOMNodeRttiExposer)
|
||||
);
|
||||
locCrs.Reset();
|
||||
if locCrs.MoveNext() then begin
|
||||
FRestrictionNode := (locCrs.GetCurrent() as TDOMNodeRttiExposer).InnerObject;
|
||||
tmpNode := nil;
|
||||
locAttCrs := CreateAttributesCursor(FRestrictionNode,cetRttiNode);
|
||||
if Assigned(locAttCrs) then begin
|
||||
locAttCrs := CreateCursorOn(locAttCrs,ParseFilter(Format('%s=%s',[s_NODE_NAME,QuotedStr(s_base)]),TDOMNodeRttiExposer));
|
||||
locAttCrs.Reset();
|
||||
if locAttCrs.MoveNext() then begin
|
||||
tmpNode := (locAttCrs.GetCurrent() as TDOMNodeRttiExposer).InnerObject;
|
||||
end;
|
||||
FBaseName := '';
|
||||
if Assigned(tmpNode) then begin
|
||||
FBaseName := ExtractNameFromQName(tmpNode.NodeValue);
|
||||
end;
|
||||
fltrCtr.Clear(clrNone);
|
||||
CreateQualifiedNameFilter(fltrCtr,s_enumeration,FOwner.FXSShortNames);
|
||||
locCrs := CreateChildrenCursor(FRestrictionNode,cetRttiNode) as IObjectCursor;
|
||||
if Assigned(locCrs) then begin
|
||||
locCrs.Reset();
|
||||
if locCrs.MoveNext() then begin
|
||||
FIsEnum := True;
|
||||
end else begin
|
||||
if IsStrEmpty(FBaseName) then
|
||||
raise EWslParserException.CreateFmt('Base type is not specified for the simple type, parsing : "%s".',[FTypeName]);
|
||||
FIsEnum := False
|
||||
end;
|
||||
end;
|
||||
FBaseName := '';
|
||||
if Assigned(tmpNode) then begin
|
||||
FBaseName := ExtractNameFromQName(tmpNode.NodeValue);
|
||||
end;
|
||||
locCrs := CreateChildrenCursor(FRestrictionNode,cetRttiNode) as IObjectCursor;
|
||||
if Assigned(locCrs) then begin
|
||||
locCrs := CreateCursorOn(
|
||||
locCrs,
|
||||
ParseFilter(CreateQualifiedNameFilterStr(s_enumeration,FOwner.FXSShortNames),TDOMNodeRttiExposer)
|
||||
);
|
||||
locCrs.Reset();
|
||||
if locCrs.MoveNext() then begin
|
||||
FIsEnum := True;
|
||||
end else begin
|
||||
if IsStrEmpty(FBaseName) then
|
||||
raise EWslParserException.CreateFmt('Base type is not specified for the simple type, parsing : "%s".',[FTypeName]);
|
||||
FIsEnum := False
|
||||
end;
|
||||
end else begin
|
||||
raise EWslParserException.CreateFmt('The parser only support "Restriction" mode simple type derivation, parsing : "%s".',[FTypeName]);
|
||||
if IsStrEmpty(FBaseName) then
|
||||
raise EWslParserException.CreateFmt('Base type is not specified for the simple type, parsing : "%s".',[FTypeName]);
|
||||
FIsEnum := False
|
||||
end;
|
||||
finally
|
||||
fltrCtr.Clear(clrNone);
|
||||
FreeAndNil(fltrCtr);
|
||||
end else begin
|
||||
raise EWslParserException.CreateFmt('The parser only support "Restriction" mode simple type derivation, parsing : "%s".',[FTypeName]);
|
||||
end;
|
||||
end;
|
||||
|
||||
function TSimpleTypeParser.ParseEnumContent(): TTypeDefinition;
|
||||
|
||||
function ExtractEnumCursor():IObjectCursor ;
|
||||
var
|
||||
fltrCtr : TRttiFilterCreator;
|
||||
begin
|
||||
fltrCtr := TRttiFilterCreator.Create(TDOMNodeRttiExposer);
|
||||
try
|
||||
CreateQualifiedNameFilter(fltrCtr,s_enumeration,FOwner.FXSShortNames);
|
||||
Result := CreateCursorOn(
|
||||
CreateChildrenCursor(FRestrictionNode,cetRttiNode),
|
||||
TRttiObjectFilter.Create(fltrCtr.Root,clrFreeObjects)
|
||||
);
|
||||
finally
|
||||
fltrCtr.Clear(clrNone);
|
||||
FreeAndNil(fltrCtr);
|
||||
end;
|
||||
Result := CreateCursorOn(
|
||||
CreateChildrenCursor(FRestrictionNode,cetRttiNode),
|
||||
ParseFilter(CreateQualifiedNameFilterStr(s_enumeration,FOwner.FXSShortNames),TDOMNodeRttiExposer)
|
||||
);
|
||||
end;
|
||||
|
||||
var
|
||||
|
Reference in New Issue
Block a user