瀏覽代碼

* APIString virtual, allow formatting

git-svn-id: trunk@28192 -
michael 11 年之前
父節點
當前提交
7db9fbc234
共有 1 個文件被更改,包括 22 次插入18 次删除
  1. 22 18
      packages/fcl-web/src/jsonrpc/fpextdirect.pp

+ 22 - 18
packages/fcl-web/src/jsonrpc/fpextdirect.pp

@@ -53,7 +53,7 @@ Type
     // Return API description object
     Function API: TJSONData;
     // Return API Description including namespace, as a string
-    Function APIAsString : String;
+    Function APIAsString(Formatted : Boolean = False) : String; virtual;
   end;
 
   { TExtDirectDispatcher }
@@ -164,8 +164,8 @@ begin
   Result:=NameSpace<>DefaultNameSpace;
 end;
 
-function TCustomExtDirectDispatcher.FormatResult(Const AClassName, AMethodName: TJSONStringType;
-Const Params,ID, Return : TJSONData) : TJSONData;
+function TCustomExtDirectDispatcher.FormatResult(const AClassName,
+  AMethodName: TJSONStringType; const Params, ID, Return: TJSONData): TJSONData;
 
 begin
   Result:=Inherited FormatResult(AClassName,AMethodName,Params,ID,Return);
@@ -174,28 +174,28 @@ begin
   TJSONObject(Result).Add('method',AMethodName);
 end;
 
-class function TCustomExtDirectDispatcher.TransactionProperty: String;
+Class Function TCustomExtDirectDispatcher.TransactionProperty: String;
 begin
   Result:='tid';
 end;
 
-class function TCustomExtDirectDispatcher.MethodProperty: String;
+Class Function TCustomExtDirectDispatcher.MethodProperty: String;
 begin
   Result:='method';
 end;
 
-class function TCustomExtDirectDispatcher.ClassNameProperty: String;
+Class Function TCustomExtDirectDispatcher.ClassNameProperty: String;
 begin
   Result:='action';
 end;
 
-class function TCustomExtDirectDispatcher.ParamsProperty: String;
+Class Function TCustomExtDirectDispatcher.ParamsProperty: String;
 begin
   Result:='data';
 end;
 
-function TCustomExtDirectDispatcher.FindHandler(const AClassName,
-  AMethodName: TJSONStringType; AContext: TJSONRPCCallContext; out
+Function TCustomExtDirectDispatcher.FindHandler(Const AClassName,
+  AMethodName: TJSONStringType; AContext: TJSONRPCCallContext; Out
   FreeObject: TComponent): TCustomJSONRPCHandler;
 begin
   {$ifdef extdebug}SendDebugFmt('Searching for %s %s',[AClassName,AMethodName]);{$endif}
@@ -205,25 +205,26 @@ begin
   {$ifdef extdebug}SendDebugFmt('Done with searching for %s %s : %d',[AClassName,AMethodName,Ord(Assigned(Result))]);{$endif}
 end;
 
-function TCustomExtDirectDispatcher.CreateJSON2Error(const AMessage: String;
-  const ACode: Integer; ID: TJSONData; idname: TJSONStringType): TJSONObject;
+function TCustomExtDirectDispatcher.CreateJSON2Error(Const AMessage: String;
+  Const ACode: Integer; ID: TJSONData; idname: TJSONStringType): TJSONObject;
 begin
   Result:=inherited CreateJSON2Error(AMessage,ACode,ID,idname);
   TJSONObject(Result).Add('type','rpc');
 end;
 
-function TCustomExtDirectDispatcher.HandlerToAPIMethod(H: TCustomJSONRPCHandler): TJSONObject;
+Function TCustomExtDirectDispatcher.HandlerToAPIMethod(H: TCustomJSONRPCHandler
+  ): TJSONObject;
 begin
   Result:=TJSONObject.Create(['name',H.Name,'len',H.ParamDefs.Count])
 end;
 
-function TCustomExtDirectDispatcher.HandlerDefToAPIMethod(H: TJSONRPCHandlerDef
+Function TCustomExtDirectDispatcher.HandlerDefToAPIMethod(H: TJSONRPCHandlerDef
   ): TJSONObject;
 begin
   Result:=TJSONObject.Create(['name',H.HandlerMethodName,'len',H.ArgumentCount])
 end;
 
-function TCustomExtDirectDispatcher.DoAPI: TJSONData;
+Function TCustomExtDirectDispatcher.DoAPI: TJSONData;
 
 Var
   A,D : TJSONObject;
@@ -290,7 +291,7 @@ begin
   end;
 end;
 
-constructor TCustomExtDirectDispatcher.Create(AOwner: TComponent);
+Constructor TCustomExtDirectDispatcher.Create(AOwner: TComponent);
 
 Var
   O : TJSONRPCDispatchOptions;
@@ -301,12 +302,12 @@ begin
   APIType:='remoting';
 end;
 
-function TCustomExtDirectDispatcher.API: TJSONData;
+Function TCustomExtDirectDispatcher.API: TJSONData;
 begin
   Result:=DoAPI;
 end;
 
-function TCustomExtDirectDispatcher.APIAsString: String;
+Function TCustomExtDirectDispatcher.APIAsString(Formatted: Boolean = False): String;
 
 Var
   A : TJSONData;
@@ -314,7 +315,10 @@ Var
 begin
   A:=API;
   try
-    Result:=NameSpace + ' = ' + A.AsJSON + ';';
+    if Formatted then
+      Result:=NameSpace + ' = ' + A.FormatJSON + ';'
+    else
+      Result:=NameSpace + ' = ' + A.AsJSON + ';';
   finally
     A.Free;
   end;