From b9c0acc99d3cb6211019835c75724fa8b3efa031 Mon Sep 17 00:00:00 2001 From: michael Date: Sat, 9 May 2015 11:41:47 +0000 Subject: [PATCH] * Some small additions to restbase (ArrayArray) and code gen (logging) git-svn-id: trunk@30827 - --- packages/fcl-web/src/base/restbase.pp | 4 ++++ packages/fcl-web/src/base/restcodegen.pp | 24 +++++++++++++++++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/packages/fcl-web/src/base/restbase.pp b/packages/fcl-web/src/base/restbase.pp index 4d1ab410c9..efa9ed6f79 100644 --- a/packages/fcl-web/src/base/restbase.pp +++ b/packages/fcl-web/src/base/restbase.pp @@ -24,12 +24,15 @@ uses Type ERESTAPI = Class(Exception); TStringArray = Array of string; + TStringArrayArray = Array of TStringArray; TUnicodeStringArray = Array of UnicodeString; TIntegerArray = Array of Integer; TInt64Array = Array of Int64; TInt32Array = Array of Integer; TFloatArray = Array of TJSONFloat; + TFloatArrayArray = Array of TFloatArray; TDoubleArray = Array of TJSONFloat; + TDoubleArrayArray = Array of TDoubleArray; TDateTimeArray = Array of TDateTime; TBooleanArray = Array of boolean; TChildType = (ctArray,ctObject); @@ -115,6 +118,7 @@ Type end; TBaseObjectClass = Class of TBaseObject; TObjectArray = Array of TBaseObject; + TObjectArrayArray = Array of TObjectArray; { TBaseObjectList } diff --git a/packages/fcl-web/src/base/restcodegen.pp b/packages/fcl-web/src/base/restcodegen.pp index ea4deecb8d..6d2fb9be40 100644 --- a/packages/fcl-web/src/base/restcodegen.pp +++ b/packages/fcl-web/src/base/restcodegen.pp @@ -22,20 +22,26 @@ uses Classes, SysUtils; Type - + TCodegenLogType = (cltInfo); + TCodegenLogTypes = Set of TCodegenLogType; + TCodeGeneratorLogEvent = Procedure (Sender : TObject; LogType : TCodegenLogType; Const Msg : String) of object; { TRestCodeGenerator } TRestCodeGenerator = Class(TComponent) Private + FAddTimeStamp: Boolean; FBaseClassName: String; FClassPrefix: String; FExtraUnits: String; FLicenseText: TStrings; + FOnLog: TCodeGeneratorLogEvent; FOutputUnitName: String; FSource : TStrings; Findent : String; Protected // Source manipulation + Procedure DoLog(Const Msg : String; AType : TCodegenLogType = cltInfo); + Procedure DoLog(Const Fmt : String; Args : Array of const; AType : TCodegenLogType = cltInfo); Procedure CreateHeader; virtual; Procedure IncIndent; Procedure DecIndent; @@ -66,6 +72,8 @@ Type Property ExtraUnits : String Read FExtraUnits Write FExtraUnits; Property ClassPrefix : String Read FClassPrefix Write FClassPrefix; Property LicenseText : TStrings Read FLicenseText; + Property OnLog : TCodeGeneratorLogEvent Read FOnLog Write FOnlog; + Property AddTimeStamp : Boolean Read FAddTimeStamp Write FAddTimeStamp; end; implementation @@ -203,6 +211,18 @@ begin end; end; +procedure TRestCodeGenerator.DoLog(const Msg: String; AType: TCodegenLogType); +begin + If Assigned(FOnLog) then + FOnLog(Self,Atype,Msg); +end; + +procedure TRestCodeGenerator.DoLog(const Fmt: String; Args: array of const; + AType: TCodegenLogType); +begin + DoLog(Format(Fmt,Args),AType); +end; + procedure TRestCodeGenerator.CreateHeader; Var @@ -211,6 +231,8 @@ Var begin if LicenseText.Count>0 then Comment(LicenseText); + if AddTimeStamp then + Comment('Generated on: '+DateTimeToStr(Now)); addln('{$MODE objfpc}'); addln('{$H+}'); addln('');