Repository URL to install this package:
|
Version:
3.2.0 ▾
|
unit googledoubleclicksearch;
{$MODE objfpc}
{$H+}
interface
uses sysutils, classes, googleservice, restbase, googlebase;
type
//Top-level schema types
TAvailability = Class;
TConversion = Class;
TConversionList = Class;
TCustomDimension = Class;
TCustomMetric = Class;
TReport = Class;
TReportApiColumnSpec = Class;
TReportRequest = Class;
TReportRow = Class;
TSavedColumn = Class;
TSavedColumnList = Class;
TUpdateAvailabilityRequest = Class;
TUpdateAvailabilityResponse = Class;
TAvailabilityArray = Array of TAvailability;
TConversionArray = Array of TConversion;
TConversionListArray = Array of TConversionList;
TCustomDimensionArray = Array of TCustomDimension;
TCustomMetricArray = Array of TCustomMetric;
TReportArray = Array of TReport;
TReportApiColumnSpecArray = Array of TReportApiColumnSpec;
TReportRequestArray = Array of TReportRequest;
TReportRowArray = Array of TReportRow;
TSavedColumnArray = Array of TSavedColumn;
TSavedColumnListArray = Array of TSavedColumnList;
TUpdateAvailabilityRequestArray = Array of TUpdateAvailabilityRequest;
TUpdateAvailabilityResponseArray = Array of TUpdateAvailabilityResponse;
//Anonymous types, using auto-generated names
TReportTypefilesItem = Class;
TReportRequestTypefiltersItem = Class;
TReportRequestTypeorderByItem = Class;
TReportRequestTypereportScope = Class;
TReportRequestTypetimeRange = Class;
TConversionTypecustomDimensionArray = Array of TCustomDimension;
TConversionTypecustomMetricArray = Array of TCustomMetric;
TConversionListTypeconversionArray = Array of TConversion;
TReportTypefilesArray = Array of TReportTypefilesItem;
TReportTyperowsArray = Array of TReportRow;
TReportRequestTypecolumnsArray = Array of TReportApiColumnSpec;
TReportRequestTypefiltersArray = Array of TReportRequestTypefiltersItem;
TReportRequestTypeorderByArray = Array of TReportRequestTypeorderByItem;
TSavedColumnListTypeitemsArray = Array of TSavedColumn;
TUpdateAvailabilityRequestTypeavailabilitiesArray = Array of TAvailability;
TUpdateAvailabilityResponseTypeavailabilitiesArray = Array of TAvailability;
{ --------------------------------------------------------------------
TAvailability
--------------------------------------------------------------------}
TAvailability = Class(TGoogleBaseObject)
Private
FadvertiserId : String;
FagencyId : String;
FavailabilityTimestamp : String;
FsegmentationId : String;
FsegmentationName : String;
FsegmentationType : String;
Protected
//Property setters
Procedure SetadvertiserId(AIndex : Integer; const AValue : String); virtual;
Procedure SetagencyId(AIndex : Integer; const AValue : String); virtual;
Procedure SetavailabilityTimestamp(AIndex : Integer; const AValue : String); virtual;
Procedure SetsegmentationId(AIndex : Integer; const AValue : String); virtual;
Procedure SetsegmentationName(AIndex : Integer; const AValue : String); virtual;
Procedure SetsegmentationType(AIndex : Integer; const AValue : String); virtual;
Public
Published
Property advertiserId : String Index 0 Read FadvertiserId Write SetadvertiserId;
Property agencyId : String Index 8 Read FagencyId Write SetagencyId;
Property availabilityTimestamp : String Index 16 Read FavailabilityTimestamp Write SetavailabilityTimestamp;
Property segmentationId : String Index 24 Read FsegmentationId Write SetsegmentationId;
Property segmentationName : String Index 32 Read FsegmentationName Write SetsegmentationName;
Property segmentationType : String Index 40 Read FsegmentationType Write SetsegmentationType;
end;
TAvailabilityClass = Class of TAvailability;
{ --------------------------------------------------------------------
TConversion
--------------------------------------------------------------------}
TConversion = Class(TGoogleBaseObject)
Private
FadGroupId : String;
FadId : String;
FadvertiserId : String;
FagencyId : String;
FattributionModel : String;
FcampaignId : String;
Fchannel : String;
FclickId : String;
FconversionId : String;
FconversionModifiedTimestamp : String;
FconversionTimestamp : String;
FcountMillis : String;
FcriterionId : String;
FcurrencyCode : String;
FcustomDimension : TConversionTypecustomDimensionArray;
FcustomMetric : TConversionTypecustomMetricArray;
FdeviceType : String;
FdsConversionId : String;
FengineAccountId : String;
FfloodlightOrderId : String;
FinventoryAccountId : String;
FproductCountry : String;
FproductGroupId : String;
FproductId : String;
FproductLanguage : String;
FquantityMillis : String;
FrevenueMicros : String;
FsegmentationId : String;
FsegmentationName : String;
FsegmentationType : String;
Fstate : String;
FstoreId : String;
F_type : String;
Protected
Class Function ExportPropertyName(Const AName : String) : string; override;
//Property setters
Procedure SetadGroupId(AIndex : Integer; const AValue : String); virtual;
Procedure SetadId(AIndex : Integer; const AValue : String); virtual;
Procedure SetadvertiserId(AIndex : Integer; const AValue : String); virtual;
Procedure SetagencyId(AIndex : Integer; const AValue : String); virtual;
Procedure SetattributionModel(AIndex : Integer; const AValue : String); virtual;
Procedure SetcampaignId(AIndex : Integer; const AValue : String); virtual;
Procedure Setchannel(AIndex : Integer; const AValue : String); virtual;
Procedure SetclickId(AIndex : Integer; const AValue : String); virtual;
Procedure SetconversionId(AIndex : Integer; const AValue : String); virtual;
Procedure SetconversionModifiedTimestamp(AIndex : Integer; const AValue : String); virtual;
Procedure SetconversionTimestamp(AIndex : Integer; const AValue : String); virtual;
Procedure SetcountMillis(AIndex : Integer; const AValue : String); virtual;
Procedure SetcriterionId(AIndex : Integer; const AValue : String); virtual;
Procedure SetcurrencyCode(AIndex : Integer; const AValue : String); virtual;
Procedure SetcustomDimension(AIndex : Integer; const AValue : TConversionTypecustomDimensionArray); virtual;
Procedure SetcustomMetric(AIndex : Integer; const AValue : TConversionTypecustomMetricArray); virtual;
Procedure SetdeviceType(AIndex : Integer; const AValue : String); virtual;
Procedure SetdsConversionId(AIndex : Integer; const AValue : String); virtual;
Procedure SetengineAccountId(AIndex : Integer; const AValue : String); virtual;
Procedure SetfloodlightOrderId(AIndex : Integer; const AValue : String); virtual;
Procedure SetinventoryAccountId(AIndex : Integer; const AValue : String); virtual;
Procedure SetproductCountry(AIndex : Integer; const AValue : String); virtual;
Procedure SetproductGroupId(AIndex : Integer; const AValue : String); virtual;
Procedure SetproductId(AIndex : Integer; const AValue : String); virtual;
Procedure SetproductLanguage(AIndex : Integer; const AValue : String); virtual;
Procedure SetquantityMillis(AIndex : Integer; const AValue : String); virtual;
Procedure SetrevenueMicros(AIndex : Integer; const AValue : String); virtual;
Procedure SetsegmentationId(AIndex : Integer; const AValue : String); virtual;
Procedure SetsegmentationName(AIndex : Integer; const AValue : String); virtual;
Procedure SetsegmentationType(AIndex : Integer; const AValue : String); virtual;
Procedure Setstate(AIndex : Integer; const AValue : String); virtual;
Procedure SetstoreId(AIndex : Integer; const AValue : String); virtual;
Procedure Set_type(AIndex : Integer; const AValue : String); virtual;
//2.6.4. bug workaround
{$IFDEF VER2_6}
Procedure SetArrayLength(Const AName : String; ALength : Longint); override;
{$ENDIF VER2_6}
Public
Published
Property adGroupId : String Index 0 Read FadGroupId Write SetadGroupId;
Property adId : String Index 8 Read FadId Write SetadId;
Property advertiserId : String Index 16 Read FadvertiserId Write SetadvertiserId;
Property agencyId : String Index 24 Read FagencyId Write SetagencyId;
Property attributionModel : String Index 32 Read FattributionModel Write SetattributionModel;
Property campaignId : String Index 40 Read FcampaignId Write SetcampaignId;
Property channel : String Index 48 Read Fchannel Write Setchannel;
Property clickId : String Index 56 Read FclickId Write SetclickId;
Property conversionId : String Index 64 Read FconversionId Write SetconversionId;
Property conversionModifiedTimestamp : String Index 72 Read FconversionModifiedTimestamp Write SetconversionModifiedTimestamp;
Property conversionTimestamp : String Index 80 Read FconversionTimestamp Write SetconversionTimestamp;
Property countMillis : String Index 88 Read FcountMillis Write SetcountMillis;
Property criterionId : String Index 96 Read FcriterionId Write SetcriterionId;
Property currencyCode : String Index 104 Read FcurrencyCode Write SetcurrencyCode;
Property customDimension : TConversionTypecustomDimensionArray Index 112 Read FcustomDimension Write SetcustomDimension;
Property customMetric : TConversionTypecustomMetricArray Index 120 Read FcustomMetric Write SetcustomMetric;
Property deviceType : String Index 128 Read FdeviceType Write SetdeviceType;
Property dsConversionId : String Index 136 Read FdsConversionId Write SetdsConversionId;
Property engineAccountId : String Index 144 Read FengineAccountId Write SetengineAccountId;
Property floodlightOrderId : String Index 152 Read FfloodlightOrderId Write SetfloodlightOrderId;
Property inventoryAccountId : String Index 160 Read FinventoryAccountId Write SetinventoryAccountId;
Property productCountry : String Index 168 Read FproductCountry Write SetproductCountry;
Property productGroupId : String Index 176 Read FproductGroupId Write SetproductGroupId;
Property productId : String Index 184 Read FproductId Write SetproductId;
Property productLanguage : String Index 192 Read FproductLanguage Write SetproductLanguage;
Property quantityMillis : String Index 200 Read FquantityMillis Write SetquantityMillis;
Property revenueMicros : String Index 208 Read FrevenueMicros Write SetrevenueMicros;
Property segmentationId : String Index 216 Read FsegmentationId Write SetsegmentationId;
Property segmentationName : String Index 224 Read FsegmentationName Write SetsegmentationName;
Property segmentationType : String Index 232 Read FsegmentationType Write SetsegmentationType;
Property state : String Index 240 Read Fstate Write Setstate;
Property storeId : String Index 248 Read FstoreId Write SetstoreId;
Property _type : String Index 256 Read F_type Write Set_type;
end;
TConversionClass = Class of TConversion;
{ --------------------------------------------------------------------
TConversionList
--------------------------------------------------------------------}
TConversionList = Class(TGoogleBaseObject)
Private
Fconversion : TConversionListTypeconversionArray;
Fkind : String;
Protected
//Property setters
Procedure Setconversion(AIndex : Integer; const AValue : TConversionListTypeconversionArray); virtual;
Procedure Setkind(AIndex : Integer; const AValue : String); virtual;
//2.6.4. bug workaround
{$IFDEF VER2_6}
Procedure SetArrayLength(Const AName : String; ALength : Longint); override;
{$ENDIF VER2_6}
Public
Published
Property conversion : TConversionListTypeconversionArray Index 0 Read Fconversion Write Setconversion;
Property kind : String Index 8 Read Fkind Write Setkind;
end;
TConversionListClass = Class of TConversionList;
{ --------------------------------------------------------------------
TCustomDimension
--------------------------------------------------------------------}
TCustomDimension = Class(TGoogleBaseObject)
Private
Fname : String;
Fvalue : String;
Protected
//Property setters
Procedure Setname(AIndex : Integer; const AValue : String); virtual;
Procedure Setvalue(AIndex : Integer; const AValue : String); virtual;
Public
Published
Property name : String Index 0 Read Fname Write Setname;
Property value : String Index 8 Read Fvalue Write Setvalue;
end;
TCustomDimensionClass = Class of TCustomDimension;
{ --------------------------------------------------------------------
TCustomMetric
--------------------------------------------------------------------}
TCustomMetric = Class(TGoogleBaseObject)
Private
Fname : String;
Fvalue : double;
Protected
//Property setters
Procedure Setname(AIndex : Integer; const AValue : String); virtual;
Procedure Setvalue(AIndex : Integer; const AValue : double); virtual;
Public
Published
Property name : String Index 0 Read Fname Write Setname;
Property value : double Index 8 Read Fvalue Write Setvalue;
end;
TCustomMetricClass = Class of TCustomMetric;
{ --------------------------------------------------------------------
TReportTypefilesItem
--------------------------------------------------------------------}
TReportTypefilesItem = Class(TGoogleBaseObject)
Private
FbyteCount : String;
Furl : String;
Protected
//Property setters
Procedure SetbyteCount(AIndex : Integer; const AValue : String); virtual;
Procedure Seturl(AIndex : Integer; const AValue : String); virtual;
Public
Published
Property byteCount : String Index 0 Read FbyteCount Write SetbyteCount;
Property url : String Index 8 Read Furl Write Seturl;
end;
TReportTypefilesItemClass = Class of TReportTypefilesItem;
{ --------------------------------------------------------------------
TReport
--------------------------------------------------------------------}
TReport = Class(TGoogleBaseObject)
Private
Ffiles : TReportTypefilesArray;
Fid : String;
FisReportReady : boolean;
Fkind : String;
Frequest : TReportRequest;
FrowCount : integer;
Frows : TReportTyperowsArray;
FstatisticsCurrencyCode : String;
FstatisticsTimeZone : String;
Protected
//Property setters
Procedure Setfiles(AIndex : Integer; const AValue : TReportTypefilesArray); virtual;
Procedure Setid(AIndex : Integer; const AValue : String); virtual;
Procedure SetisReportReady(AIndex : Integer; const AValue : boolean); virtual;
Procedure Setkind(AIndex : Integer; const AValue : String); virtual;
Procedure Setrequest(AIndex : Integer; const AValue : TReportRequest); virtual;
Procedure SetrowCount(AIndex : Integer; const AValue : integer); virtual;
Procedure Setrows(AIndex : Integer; const AValue : TReportTyperowsArray); virtual;
Procedure SetstatisticsCurrencyCode(AIndex : Integer; const AValue : String); virtual;
Procedure SetstatisticsTimeZone(AIndex : Integer; const AValue : String); virtual;
//2.6.4. bug workaround
{$IFDEF VER2_6}
Procedure SetArrayLength(Const AName : String; ALength : Longint); override;
{$ENDIF VER2_6}
Public
Published
Property files : TReportTypefilesArray Index 0 Read Ffiles Write Setfiles;
Property id : String Index 8 Read Fid Write Setid;
Property isReportReady : boolean Index 16 Read FisReportReady Write SetisReportReady;
Property kind : String Index 24 Read Fkind Write Setkind;
Property request : TReportRequest Index 32 Read Frequest Write Setrequest;
Property rowCount : integer Index 40 Read FrowCount Write SetrowCount;
Property rows : TReportTyperowsArray Index 48 Read Frows Write Setrows;
Property statisticsCurrencyCode : String Index 56 Read FstatisticsCurrencyCode Write SetstatisticsCurrencyCode;
Property statisticsTimeZone : String Index 64 Read FstatisticsTimeZone Write SetstatisticsTimeZone;
end;
TReportClass = Class of TReport;
{ --------------------------------------------------------------------
TReportApiColumnSpec
--------------------------------------------------------------------}
TReportApiColumnSpec = Class(TGoogleBaseObject)
Private
FcolumnName : String;
FcustomDimensionName : String;
FcustomMetricName : String;
FendDate : String;
FgroupByColumn : boolean;
FheaderText : String;
FplatformSource : String;
FproductReportPerspective : String;
FsavedColumnName : String;
FstartDate : String;
Protected
//Property setters
Procedure SetcolumnName(AIndex : Integer; const AValue : String); virtual;
Procedure SetcustomDimensionName(AIndex : Integer; const AValue : String); virtual;
Procedure SetcustomMetricName(AIndex : Integer; const AValue : String); virtual;
Procedure SetendDate(AIndex : Integer; const AValue : String); virtual;
Procedure SetgroupByColumn(AIndex : Integer; const AValue : boolean); virtual;
Procedure SetheaderText(AIndex : Integer; const AValue : String); virtual;
Procedure SetplatformSource(AIndex : Integer; const AValue : String); virtual;
Procedure SetproductReportPerspective(AIndex : Integer; const AValue : String); virtual;
Procedure SetsavedColumnName(AIndex : Integer; const AValue : String); virtual;
Procedure SetstartDate(AIndex : Integer; const AValue : String); virtual;
Public
Published
Property columnName : String Index 0 Read FcolumnName Write SetcolumnName;
Property customDimensionName : String Index 8 Read FcustomDimensionName Write SetcustomDimensionName;
Property customMetricName : String Index 16 Read FcustomMetricName Write SetcustomMetricName;
Property endDate : String Index 24 Read FendDate Write SetendDate;
Property groupByColumn : boolean Index 32 Read FgroupByColumn Write SetgroupByColumn;
Property headerText : String Index 40 Read FheaderText Write SetheaderText;
Property platformSource : String Index 48 Read FplatformSource Write SetplatformSource;
Property productReportPerspective : String Index 56 Read FproductReportPerspective Write SetproductReportPerspective;
Property savedColumnName : String Index 64 Read FsavedColumnName Write SetsavedColumnName;
Property startDate : String Index 72 Read FstartDate Write SetstartDate;
end;
TReportApiColumnSpecClass = Class of TReportApiColumnSpec;
{ --------------------------------------------------------------------
TReportRequestTypefiltersItem
--------------------------------------------------------------------}
TReportRequestTypefiltersItem = Class(TGoogleBaseObject)
Private
Fcolumn : TReportApiColumnSpec;
F_operator : String;
Fvalues : TTJSONSchemaArray;
Protected
Class Function ExportPropertyName(Const AName : String) : string; override;
//Property setters
Procedure Setcolumn(AIndex : Integer; const AValue : TReportApiColumnSpec); virtual;
Procedure Set_operator(AIndex : Integer; const AValue : String); virtual;
Procedure Setvalues(AIndex : Integer; const AValue : TTJSONSchemaArray); virtual;
//2.6.4. bug workaround
{$IFDEF VER2_6}
Procedure SetArrayLength(Const AName : String; ALength : Longint); override;
{$ENDIF VER2_6}
Public
Published
Property column : TReportApiColumnSpec Index 0 Read Fcolumn Write Setcolumn;
Property _operator : String Index 8 Read F_operator Write Set_operator;
Property values : TTJSONSchemaArray Index 16 Read Fvalues Write Setvalues;
end;
TReportRequestTypefiltersItemClass = Class of TReportRequestTypefiltersItem;
{ --------------------------------------------------------------------
TReportRequestTypeorderByItem
--------------------------------------------------------------------}
TReportRequestTypeorderByItem = Class(TGoogleBaseObject)
Private
Fcolumn : TReportApiColumnSpec;
FsortOrder : String;
Protected
//Property setters
Procedure Setcolumn(AIndex : Integer; const AValue : TReportApiColumnSpec); virtual;
Procedure SetsortOrder(AIndex : Integer; const AValue : String); virtual;
Public
Published
Property column : TReportApiColumnSpec Index 0 Read Fcolumn Write Setcolumn;
Property sortOrder : String Index 8 Read FsortOrder Write SetsortOrder;
end;
TReportRequestTypeorderByItemClass = Class of TReportRequestTypeorderByItem;
{ --------------------------------------------------------------------
TReportRequestTypereportScope
--------------------------------------------------------------------}
TReportRequestTypereportScope = Class(TGoogleBaseObject)
Private
FadGroupId : String;
FadId : String;
FadvertiserId : String;
FagencyId : String;
FcampaignId : String;
FengineAccountId : String;
FkeywordId : String;
Protected
//Property setters
Procedure SetadGroupId(AIndex : Integer; const AValue : String); virtual;
Procedure SetadId(AIndex : Integer; const AValue : String); virtual;
Procedure SetadvertiserId(AIndex : Integer; const AValue : String); virtual;
Procedure SetagencyId(AIndex : Integer; const AValue : String); virtual;
Procedure SetcampaignId(AIndex : Integer; const AValue : String); virtual;
Procedure SetengineAccountId(AIndex : Integer; const AValue : String); virtual;
Procedure SetkeywordId(AIndex : Integer; const AValue : String); virtual;
Public
Published
Property adGroupId : String Index 0 Read FadGroupId Write SetadGroupId;
Property adId : String Index 8 Read FadId Write SetadId;
Property advertiserId : String Index 16 Read FadvertiserId Write SetadvertiserId;
Property agencyId : String Index 24 Read FagencyId Write SetagencyId;
Property campaignId : String Index 32 Read FcampaignId Write SetcampaignId;
Property engineAccountId : String Index 40 Read FengineAccountId Write SetengineAccountId;
Property keywordId : String Index 48 Read FkeywordId Write SetkeywordId;
end;
TReportRequestTypereportScopeClass = Class of TReportRequestTypereportScope;
{ --------------------------------------------------------------------
TReportRequestTypetimeRange
--------------------------------------------------------------------}
TReportRequestTypetimeRange = Class(TGoogleBaseObject)
Private
FchangedAttributesSinceTimestamp : TDatetime;
FchangedMetricsSinceTimestamp : TDatetime;
FendDate : String;
FstartDate : String;
Protected
//Property setters
Procedure SetchangedAttributesSinceTimestamp(AIndex : Integer; const AValue : TDatetime); virtual;
Procedure SetchangedMetricsSinceTimestamp(AIndex : Integer; const AValue : TDatetime); virtual;
Procedure SetendDate(AIndex : Integer; const AValue : String); virtual;
Procedure SetstartDate(AIndex : Integer; const AValue : String); virtual;
Public
Published
Property changedAttributesSinceTimestamp : TDatetime Index 0 Read FchangedAttributesSinceTimestamp Write SetchangedAttributesSinceTimestamp;
Property changedMetricsSinceTimestamp : TDatetime Index 8 Read FchangedMetricsSinceTimestamp Write SetchangedMetricsSinceTimestamp;
Property endDate : String Index 16 Read FendDate Write SetendDate;
Property startDate : String Index 24 Read FstartDate Write SetstartDate;
end;
TReportRequestTypetimeRangeClass = Class of TReportRequestTypetimeRange;
{ --------------------------------------------------------------------
TReportRequest
--------------------------------------------------------------------}
TReportRequest = Class(TGoogleBaseObject)
Private
Fcolumns : TReportRequestTypecolumnsArray;
FdownloadFormat : String;
Ffilters : TReportRequestTypefiltersArray;
FincludeDeletedEntities : boolean;
FincludeRemovedEntities : boolean;
FmaxRowsPerFile : integer;
ForderBy : TReportRequestTypeorderByArray;
FreportScope : TReportRequestTypereportScope;
FreportType : String;
FrowCount : integer;
FstartRow : integer;
FstatisticsCurrency : String;
FtimeRange : TReportRequestTypetimeRange;
FverifySingleTimeZone : boolean;
Protected
//Property setters
Procedure Setcolumns(AIndex : Integer; const AValue : TReportRequestTypecolumnsArray); virtual;
Procedure SetdownloadFormat(AIndex : Integer; const AValue : String); virtual;
Procedure Setfilters(AIndex : Integer; const AValue : TReportRequestTypefiltersArray); virtual;
Procedure SetincludeDeletedEntities(AIndex : Integer; const AValue : boolean); virtual;
Procedure SetincludeRemovedEntities(AIndex : Integer; const AValue : boolean); virtual;
Procedure SetmaxRowsPerFile(AIndex : Integer; const AValue : integer); virtual;
Procedure SetorderBy(AIndex : Integer; const AValue : TReportRequestTypeorderByArray); virtual;
Procedure SetreportScope(AIndex : Integer; const AValue : TReportRequestTypereportScope); virtual;
Procedure SetreportType(AIndex : Integer; const AValue : String); virtual;
Procedure SetrowCount(AIndex : Integer; const AValue : integer); virtual;
Procedure SetstartRow(AIndex : Integer; const AValue : integer); virtual;
Procedure SetstatisticsCurrency(AIndex : Integer; const AValue : String); virtual;
Procedure SettimeRange(AIndex : Integer; const AValue : TReportRequestTypetimeRange); virtual;
Procedure SetverifySingleTimeZone(AIndex : Integer; const AValue : boolean); virtual;
//2.6.4. bug workaround
{$IFDEF VER2_6}
Procedure SetArrayLength(Const AName : String; ALength : Longint); override;
{$ENDIF VER2_6}
Public
Published
Property columns : TReportRequestTypecolumnsArray Index 0 Read Fcolumns Write Setcolumns;
Property downloadFormat : String Index 8 Read FdownloadFormat Write SetdownloadFormat;
Property filters : TReportRequestTypefiltersArray Index 16 Read Ffilters Write Setfilters;
Property includeDeletedEntities : boolean Index 24 Read FincludeDeletedEntities Write SetincludeDeletedEntities;
Property includeRemovedEntities : boolean Index 32 Read FincludeRemovedEntities Write SetincludeRemovedEntities;
Property maxRowsPerFile : integer Index 40 Read FmaxRowsPerFile Write SetmaxRowsPerFile;
Property orderBy : TReportRequestTypeorderByArray Index 48 Read ForderBy Write SetorderBy;
Property reportScope : TReportRequestTypereportScope Index 56 Read FreportScope Write SetreportScope;
Property reportType : String Index 64 Read FreportType Write SetreportType;
Property rowCount : integer Index 72 Read FrowCount Write SetrowCount;
Property startRow : integer Index 80 Read FstartRow Write SetstartRow;
Property statisticsCurrency : String Index 88 Read FstatisticsCurrency Write SetstatisticsCurrency;
Property timeRange : TReportRequestTypetimeRange Index 96 Read FtimeRange Write SettimeRange;
Property verifySingleTimeZone : boolean Index 104 Read FverifySingleTimeZone Write SetverifySingleTimeZone;
end;
TReportRequestClass = Class of TReportRequest;
{ --------------------------------------------------------------------
TReportRow
--------------------------------------------------------------------}
TReportRow = Class(TGoogleBaseObject)
Private
Protected
//Property setters
Public
Class Function AllowAdditionalProperties : Boolean; override;
Published
end;
TReportRowClass = Class of TReportRow;
{ --------------------------------------------------------------------
TSavedColumn
--------------------------------------------------------------------}
TSavedColumn = Class(TGoogleBaseObject)
Private
Fkind : String;
FsavedColumnName : String;
F_type : String;
Protected
Class Function ExportPropertyName(Const AName : String) : string; override;
//Property setters
Procedure Setkind(AIndex : Integer; const AValue : String); virtual;
Procedure SetsavedColumnName(AIndex : Integer; const AValue : String); virtual;
Procedure Set_type(AIndex : Integer; const AValue : String); virtual;
Public
Published
Property kind : String Index 0 Read Fkind Write Setkind;
Property savedColumnName : String Index 8 Read FsavedColumnName Write SetsavedColumnName;
Property _type : String Index 16 Read F_type Write Set_type;
end;
TSavedColumnClass = Class of TSavedColumn;
{ --------------------------------------------------------------------
TSavedColumnList
--------------------------------------------------------------------}
TSavedColumnList = Class(TGoogleBaseObject)
Private
Fitems : TSavedColumnListTypeitemsArray;
Fkind : String;
Protected
//Property setters
Procedure Setitems(AIndex : Integer; const AValue : TSavedColumnListTypeitemsArray); virtual;
Procedure Setkind(AIndex : Integer; const AValue : String); virtual;
//2.6.4. bug workaround
{$IFDEF VER2_6}
Procedure SetArrayLength(Const AName : String; ALength : Longint); override;
{$ENDIF VER2_6}
Public
Published
Property items : TSavedColumnListTypeitemsArray Index 0 Read Fitems Write Setitems;
Property kind : String Index 8 Read Fkind Write Setkind;
end;
TSavedColumnListClass = Class of TSavedColumnList;
{ --------------------------------------------------------------------
TUpdateAvailabilityRequest
--------------------------------------------------------------------}
TUpdateAvailabilityRequest = Class(TGoogleBaseObject)
Private
Favailabilities : TUpdateAvailabilityRequestTypeavailabilitiesArray;
Protected
//Property setters
Procedure Setavailabilities(AIndex : Integer; const AValue : TUpdateAvailabilityRequestTypeavailabilitiesArray); virtual;
//2.6.4. bug workaround
{$IFDEF VER2_6}
Procedure SetArrayLength(Const AName : String; ALength : Longint); override;
{$ENDIF VER2_6}
Public
Published
Property availabilities : TUpdateAvailabilityRequestTypeavailabilitiesArray Index 0 Read Favailabilities Write Setavailabilities;
end;
TUpdateAvailabilityRequestClass = Class of TUpdateAvailabilityRequest;
{ --------------------------------------------------------------------
TUpdateAvailabilityResponse
--------------------------------------------------------------------}
TUpdateAvailabilityResponse = Class(TGoogleBaseObject)
Private
Favailabilities : TUpdateAvailabilityResponseTypeavailabilitiesArray;
Protected
//Property setters
Procedure Setavailabilities(AIndex : Integer; const AValue : TUpdateAvailabilityResponseTypeavailabilitiesArray); virtual;
//2.6.4. bug workaround
{$IFDEF VER2_6}
Procedure SetArrayLength(Const AName : String; ALength : Longint); override;
{$ENDIF VER2_6}
Public
Published
Property availabilities : TUpdateAvailabilityResponseTypeavailabilitiesArray Index 0 Read Favailabilities Write Setavailabilities;
end;
TUpdateAvailabilityResponseClass = Class of TUpdateAvailabilityResponse;
{ --------------------------------------------------------------------
TConversionResource
--------------------------------------------------------------------}
//Optional query Options for TConversionResource, method Get
TConversionGetOptions = Record
adGroupId : int64;
adId : int64;
campaignId : int64;
criterionId : int64;
endDate : integer;
rowCount : integer;
startDate : integer;
startRow : integer;
end;
//Optional query Options for TConversionResource, method Patch
TConversionPatchOptions = Record
advertiserId : int64;
agencyId : int64;
endDate : integer;
engineAccountId : int64;
rowCount : integer;
startDate : integer;
startRow : integer;
end;
TConversionResource = Class(TGoogleResource)
Public
Class Function ResourceName : String; override;
Class Function DefaultAPI : TGoogleAPIClass; override;
Function Get(advertiserId: string; agencyId: string; engineAccountId: string; AQuery : string = '') : TConversionList;
Function Get(advertiserId: string; agencyId: string; engineAccountId: string; AQuery : TConversiongetOptions) : TConversionList;
Function Insert(aConversionList : TConversionList) : TConversionList;
Function Patch(aConversionList : TConversionList; AQuery : string = '') : TConversionList;
Function Patch(aConversionList : TConversionList; AQuery : TConversionpatchOptions) : TConversionList;
Function Update(aConversionList : TConversionList) : TConversionList;
Function UpdateAvailability(aUpdateAvailabilityRequest : TUpdateAvailabilityRequest) : TUpdateAvailabilityResponse;
end;
{ --------------------------------------------------------------------
TReportsResource
--------------------------------------------------------------------}
TReportsResource = Class(TGoogleResource)
Public
Class Function ResourceName : String; override;
Class Function DefaultAPI : TGoogleAPIClass; override;
Function Generate(aReportRequest : TReportRequest) : TReport;
Function Get(reportId: string) : TReport;
Procedure GetFile(reportFragment: integer; reportId: string);
Function Request(aReportRequest : TReportRequest) : TReport;
end;
{ --------------------------------------------------------------------
TSavedColumnsResource
--------------------------------------------------------------------}
TSavedColumnsResource = Class(TGoogleResource)
Public
Class Function ResourceName : String; override;
Class Function DefaultAPI : TGoogleAPIClass; override;
Function List(advertiserId: string; agencyId: string) : TSavedColumnList;
end;
{ --------------------------------------------------------------------
TDoubleclicksearchAPI
--------------------------------------------------------------------}
TDoubleclicksearchAPI = Class(TGoogleAPI)
Private
FConversionInstance : TConversionResource;
FReportsInstance : TReportsResource;
FSavedColumnsInstance : TSavedColumnsResource;
Function GetConversionInstance : TConversionResource;virtual;
Function GetReportsInstance : TReportsResource;virtual;
Function GetSavedColumnsInstance : TSavedColumnsResource;virtual;
Public
//Override class functions with API info
Class Function APIName : String; override;
Class Function APIVersion : String; override;
Class Function APIRevision : String; override;
Class Function APIID : String; override;
Class Function APITitle : String; override;
Class Function APIDescription : String; override;
Class Function APIOwnerDomain : String; override;
Class Function APIOwnerName : String; override;
Class Function APIIcon16 : String; override;
Class Function APIIcon32 : String; override;
Class Function APIdocumentationLink : String; override;
Class Function APIrootUrl : string; override;
Class Function APIbasePath : string;override;
Class Function APIbaseURL : String;override;
Class Function APIProtocol : string;override;
Class Function APIservicePath : string;override;
Class Function APIbatchPath : String;override;
Class Function APIAuthScopes : TScopeInfoArray;override;
Class Function APINeedsAuth : Boolean;override;
Class Procedure RegisterAPIResources; override;
//Add create function for resources
Function CreateConversionResource(AOwner : TComponent) : TConversionResource;virtual;overload;
Function CreateConversionResource : TConversionResource;virtual;overload;
Function CreateReportsResource(AOwner : TComponent) : TReportsResource;virtual;overload;
Function CreateReportsResource : TReportsResource;virtual;overload;
Function CreateSavedColumnsResource(AOwner : TComponent) : TSavedColumnsResource;virtual;overload;
Function CreateSavedColumnsResource : TSavedColumnsResource;virtual;overload;
//Add default on-demand instances for resources
Property ConversionResource : TConversionResource Read GetConversionInstance;
Property ReportsResource : TReportsResource Read GetReportsInstance;
Property SavedColumnsResource : TSavedColumnsResource Read GetSavedColumnsInstance;
end;
implementation
{ --------------------------------------------------------------------
TAvailability
--------------------------------------------------------------------}
Procedure TAvailability.SetadvertiserId(AIndex : Integer; const AValue : String);
begin
If (FadvertiserId=AValue) then exit;
FadvertiserId:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TAvailability.SetagencyId(AIndex : Integer; const AValue : String);
begin
If (FagencyId=AValue) then exit;
FagencyId:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TAvailability.SetavailabilityTimestamp(AIndex : Integer; const AValue : String);
begin
If (FavailabilityTimestamp=AValue) then exit;
FavailabilityTimestamp:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TAvailability.SetsegmentationId(AIndex : Integer; const AValue : String);
begin
If (FsegmentationId=AValue) then exit;
FsegmentationId:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TAvailability.SetsegmentationName(AIndex : Integer; const AValue : String);
begin
If (FsegmentationName=AValue) then exit;
FsegmentationName:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TAvailability.SetsegmentationType(AIndex : Integer; const AValue : String);
begin
If (FsegmentationType=AValue) then exit;
FsegmentationType:=AValue;
MarkPropertyChanged(AIndex);
end;
{ --------------------------------------------------------------------
TConversion
--------------------------------------------------------------------}
Procedure TConversion.SetadGroupId(AIndex : Integer; const AValue : String);
begin
If (FadGroupId=AValue) then exit;
FadGroupId:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TConversion.SetadId(AIndex : Integer; const AValue : String);
begin
If (FadId=AValue) then exit;
FadId:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TConversion.SetadvertiserId(AIndex : Integer; const AValue : String);
begin
If (FadvertiserId=AValue) then exit;
FadvertiserId:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TConversion.SetagencyId(AIndex : Integer; const AValue : String);
begin
If (FagencyId=AValue) then exit;
FagencyId:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TConversion.SetattributionModel(AIndex : Integer; const AValue : String);
begin
If (FattributionModel=AValue) then exit;
FattributionModel:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TConversion.SetcampaignId(AIndex : Integer; const AValue : String);
begin
If (FcampaignId=AValue) then exit;
FcampaignId:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TConversion.Setchannel(AIndex : Integer; const AValue : String);
begin
If (Fchannel=AValue) then exit;
Fchannel:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TConversion.SetclickId(AIndex : Integer; const AValue : String);
begin
If (FclickId=AValue) then exit;
FclickId:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TConversion.SetconversionId(AIndex : Integer; const AValue : String);
begin
If (FconversionId=AValue) then exit;
FconversionId:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TConversion.SetconversionModifiedTimestamp(AIndex : Integer; const AValue : String);
begin
If (FconversionModifiedTimestamp=AValue) then exit;
FconversionModifiedTimestamp:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TConversion.SetconversionTimestamp(AIndex : Integer; const AValue : String);
begin
If (FconversionTimestamp=AValue) then exit;
FconversionTimestamp:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TConversion.SetcountMillis(AIndex : Integer; const AValue : String);
begin
If (FcountMillis=AValue) then exit;
FcountMillis:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TConversion.SetcriterionId(AIndex : Integer; const AValue : String);
begin
If (FcriterionId=AValue) then exit;
FcriterionId:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TConversion.SetcurrencyCode(AIndex : Integer; const AValue : String);
begin
If (FcurrencyCode=AValue) then exit;
FcurrencyCode:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TConversion.SetcustomDimension(AIndex : Integer; const AValue : TConversionTypecustomDimensionArray);
begin
If (FcustomDimension=AValue) then exit;
FcustomDimension:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TConversion.SetcustomMetric(AIndex : Integer; const AValue : TConversionTypecustomMetricArray);
begin
If (FcustomMetric=AValue) then exit;
FcustomMetric:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TConversion.SetdeviceType(AIndex : Integer; const AValue : String);
begin
If (FdeviceType=AValue) then exit;
FdeviceType:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TConversion.SetdsConversionId(AIndex : Integer; const AValue : String);
begin
If (FdsConversionId=AValue) then exit;
FdsConversionId:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TConversion.SetengineAccountId(AIndex : Integer; const AValue : String);
begin
If (FengineAccountId=AValue) then exit;
FengineAccountId:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TConversion.SetfloodlightOrderId(AIndex : Integer; const AValue : String);
begin
If (FfloodlightOrderId=AValue) then exit;
FfloodlightOrderId:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TConversion.SetinventoryAccountId(AIndex : Integer; const AValue : String);
begin
If (FinventoryAccountId=AValue) then exit;
FinventoryAccountId:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TConversion.SetproductCountry(AIndex : Integer; const AValue : String);
begin
If (FproductCountry=AValue) then exit;
FproductCountry:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TConversion.SetproductGroupId(AIndex : Integer; const AValue : String);
begin
If (FproductGroupId=AValue) then exit;
FproductGroupId:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TConversion.SetproductId(AIndex : Integer; const AValue : String);
begin
If (FproductId=AValue) then exit;
FproductId:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TConversion.SetproductLanguage(AIndex : Integer; const AValue : String);
begin
If (FproductLanguage=AValue) then exit;
FproductLanguage:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TConversion.SetquantityMillis(AIndex : Integer; const AValue : String);
begin
If (FquantityMillis=AValue) then exit;
FquantityMillis:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TConversion.SetrevenueMicros(AIndex : Integer; const AValue : String);
begin
If (FrevenueMicros=AValue) then exit;
FrevenueMicros:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TConversion.SetsegmentationId(AIndex : Integer; const AValue : String);
begin
If (FsegmentationId=AValue) then exit;
FsegmentationId:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TConversion.SetsegmentationName(AIndex : Integer; const AValue : String);
begin
If (FsegmentationName=AValue) then exit;
FsegmentationName:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TConversion.SetsegmentationType(AIndex : Integer; const AValue : String);
begin
If (FsegmentationType=AValue) then exit;
FsegmentationType:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TConversion.Setstate(AIndex : Integer; const AValue : String);
begin
If (Fstate=AValue) then exit;
Fstate:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TConversion.SetstoreId(AIndex : Integer; const AValue : String);
begin
If (FstoreId=AValue) then exit;
FstoreId:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TConversion.Set_type(AIndex : Integer; const AValue : String);
begin
If (F_type=AValue) then exit;
F_type:=AValue;
MarkPropertyChanged(AIndex);
end;
Class Function TConversion.ExportPropertyName(Const AName : String) :String;
begin
Case AName of
'_type' : Result:='type';
else
Result:=Inherited ExportPropertyName(AName);
end;
end;
//2.6.4. bug workaround
{$IFDEF VER2_6}
Procedure TConversion.SetArrayLength(Const AName : String; ALength : Longint);
begin
Case AName of
'customdimension' : SetLength(FcustomDimension,ALength);
'custommetric' : SetLength(FcustomMetric,ALength);
else
Inherited SetArrayLength(AName,ALength);
end;
end;
{$ENDIF VER2_6}
{ --------------------------------------------------------------------
TConversionList
--------------------------------------------------------------------}
Procedure TConversionList.Setconversion(AIndex : Integer; const AValue : TConversionListTypeconversionArray);
begin
If (Fconversion=AValue) then exit;
Fconversion:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TConversionList.Setkind(AIndex : Integer; const AValue : String);
begin
If (Fkind=AValue) then exit;
Fkind:=AValue;
MarkPropertyChanged(AIndex);
end;
//2.6.4. bug workaround
{$IFDEF VER2_6}
Procedure TConversionList.SetArrayLength(Const AName : String; ALength : Longint);
begin
Case AName of
'conversion' : SetLength(Fconversion,ALength);
else
Inherited SetArrayLength(AName,ALength);
end;
end;
{$ENDIF VER2_6}
{ --------------------------------------------------------------------
TCustomDimension
--------------------------------------------------------------------}
Procedure TCustomDimension.Setname(AIndex : Integer; const AValue : String);
begin
If (Fname=AValue) then exit;
Fname:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TCustomDimension.Setvalue(AIndex : Integer; const AValue : String);
begin
If (Fvalue=AValue) then exit;
Fvalue:=AValue;
MarkPropertyChanged(AIndex);
end;
{ --------------------------------------------------------------------
TCustomMetric
--------------------------------------------------------------------}
Procedure TCustomMetric.Setname(AIndex : Integer; const AValue : String);
begin
If (Fname=AValue) then exit;
Fname:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TCustomMetric.Setvalue(AIndex : Integer; const AValue : double);
begin
If (Fvalue=AValue) then exit;
Fvalue:=AValue;
MarkPropertyChanged(AIndex);
end;
{ --------------------------------------------------------------------
TReportTypefilesItem
--------------------------------------------------------------------}
Procedure TReportTypefilesItem.SetbyteCount(AIndex : Integer; const AValue : String);
begin
If (FbyteCount=AValue) then exit;
FbyteCount:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TReportTypefilesItem.Seturl(AIndex : Integer; const AValue : String);
begin
If (Furl=AValue) then exit;
Furl:=AValue;
MarkPropertyChanged(AIndex);
end;
{ --------------------------------------------------------------------
TReport
--------------------------------------------------------------------}
Procedure TReport.Setfiles(AIndex : Integer; const AValue : TReportTypefilesArray);
begin
If (Ffiles=AValue) then exit;
Ffiles:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TReport.Setid(AIndex : Integer; const AValue : String);
begin
If (Fid=AValue) then exit;
Fid:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TReport.SetisReportReady(AIndex : Integer; const AValue : boolean);
begin
If (FisReportReady=AValue) then exit;
FisReportReady:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TReport.Setkind(AIndex : Integer; const AValue : String);
begin
If (Fkind=AValue) then exit;
Fkind:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TReport.Setrequest(AIndex : Integer; const AValue : TReportRequest);
begin
If (Frequest=AValue) then exit;
Frequest:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TReport.SetrowCount(AIndex : Integer; const AValue : integer);
begin
If (FrowCount=AValue) then exit;
FrowCount:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TReport.Setrows(AIndex : Integer; const AValue : TReportTyperowsArray);
begin
If (Frows=AValue) then exit;
Frows:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TReport.SetstatisticsCurrencyCode(AIndex : Integer; const AValue : String);
begin
If (FstatisticsCurrencyCode=AValue) then exit;
FstatisticsCurrencyCode:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TReport.SetstatisticsTimeZone(AIndex : Integer; const AValue : String);
begin
If (FstatisticsTimeZone=AValue) then exit;
FstatisticsTimeZone:=AValue;
MarkPropertyChanged(AIndex);
end;
//2.6.4. bug workaround
{$IFDEF VER2_6}
Procedure TReport.SetArrayLength(Const AName : String; ALength : Longint);
begin
Case AName of
'files' : SetLength(Ffiles,ALength);
'rows' : SetLength(Frows,ALength);
else
Inherited SetArrayLength(AName,ALength);
end;
end;
{$ENDIF VER2_6}
{ --------------------------------------------------------------------
TReportApiColumnSpec
--------------------------------------------------------------------}
Procedure TReportApiColumnSpec.SetcolumnName(AIndex : Integer; const AValue : String);
begin
If (FcolumnName=AValue) then exit;
FcolumnName:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TReportApiColumnSpec.SetcustomDimensionName(AIndex : Integer; const AValue : String);
begin
If (FcustomDimensionName=AValue) then exit;
FcustomDimensionName:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TReportApiColumnSpec.SetcustomMetricName(AIndex : Integer; const AValue : String);
begin
If (FcustomMetricName=AValue) then exit;
FcustomMetricName:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TReportApiColumnSpec.SetendDate(AIndex : Integer; const AValue : String);
begin
If (FendDate=AValue) then exit;
FendDate:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TReportApiColumnSpec.SetgroupByColumn(AIndex : Integer; const AValue : boolean);
begin
If (FgroupByColumn=AValue) then exit;
FgroupByColumn:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TReportApiColumnSpec.SetheaderText(AIndex : Integer; const AValue : String);
begin
If (FheaderText=AValue) then exit;
FheaderText:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TReportApiColumnSpec.SetplatformSource(AIndex : Integer; const AValue : String);
begin
If (FplatformSource=AValue) then exit;
FplatformSource:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TReportApiColumnSpec.SetproductReportPerspective(AIndex : Integer; const AValue : String);
begin
If (FproductReportPerspective=AValue) then exit;
FproductReportPerspective:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TReportApiColumnSpec.SetsavedColumnName(AIndex : Integer; const AValue : String);
begin
If (FsavedColumnName=AValue) then exit;
FsavedColumnName:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TReportApiColumnSpec.SetstartDate(AIndex : Integer; const AValue : String);
begin
If (FstartDate=AValue) then exit;
FstartDate:=AValue;
MarkPropertyChanged(AIndex);
end;
{ --------------------------------------------------------------------
TReportRequestTypefiltersItem
--------------------------------------------------------------------}
Procedure TReportRequestTypefiltersItem.Setcolumn(AIndex : Integer; const AValue : TReportApiColumnSpec);
begin
If (Fcolumn=AValue) then exit;
Fcolumn:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TReportRequestTypefiltersItem.Set_operator(AIndex : Integer; const AValue : String);
begin
If (F_operator=AValue) then exit;
F_operator:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TReportRequestTypefiltersItem.Setvalues(AIndex : Integer; const AValue : TTJSONSchemaArray);
begin
If (Fvalues=AValue) then exit;
Fvalues:=AValue;
MarkPropertyChanged(AIndex);
end;
Class Function TReportRequestTypefiltersItem.ExportPropertyName(Const AName : String) :String;
begin
Case AName of
'_operator' : Result:='operator';
else
Result:=Inherited ExportPropertyName(AName);
end;
end;
//2.6.4. bug workaround
{$IFDEF VER2_6}
Procedure TReportRequestTypefiltersItem.SetArrayLength(Const AName : String; ALength : Longint);
begin
Case AName of
'values' : SetLength(Fvalues,ALength);
else
Inherited SetArrayLength(AName,ALength);
end;
end;
{$ENDIF VER2_6}
{ --------------------------------------------------------------------
TReportRequestTypeorderByItem
--------------------------------------------------------------------}
Procedure TReportRequestTypeorderByItem.Setcolumn(AIndex : Integer; const AValue : TReportApiColumnSpec);
begin
If (Fcolumn=AValue) then exit;
Fcolumn:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TReportRequestTypeorderByItem.SetsortOrder(AIndex : Integer; const AValue : String);
begin
If (FsortOrder=AValue) then exit;
FsortOrder:=AValue;
MarkPropertyChanged(AIndex);
end;
{ --------------------------------------------------------------------
TReportRequestTypereportScope
--------------------------------------------------------------------}
Procedure TReportRequestTypereportScope.SetadGroupId(AIndex : Integer; const AValue : String);
begin
If (FadGroupId=AValue) then exit;
FadGroupId:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TReportRequestTypereportScope.SetadId(AIndex : Integer; const AValue : String);
begin
If (FadId=AValue) then exit;
FadId:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TReportRequestTypereportScope.SetadvertiserId(AIndex : Integer; const AValue : String);
begin
If (FadvertiserId=AValue) then exit;
FadvertiserId:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TReportRequestTypereportScope.SetagencyId(AIndex : Integer; const AValue : String);
begin
If (FagencyId=AValue) then exit;
FagencyId:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TReportRequestTypereportScope.SetcampaignId(AIndex : Integer; const AValue : String);
begin
If (FcampaignId=AValue) then exit;
FcampaignId:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TReportRequestTypereportScope.SetengineAccountId(AIndex : Integer; const AValue : String);
begin
If (FengineAccountId=AValue) then exit;
FengineAccountId:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TReportRequestTypereportScope.SetkeywordId(AIndex : Integer; const AValue : String);
begin
If (FkeywordId=AValue) then exit;
FkeywordId:=AValue;
MarkPropertyChanged(AIndex);
end;
{ --------------------------------------------------------------------
TReportRequestTypetimeRange
--------------------------------------------------------------------}
Procedure TReportRequestTypetimeRange.SetchangedAttributesSinceTimestamp(AIndex : Integer; const AValue : TDatetime);
begin
If (FchangedAttributesSinceTimestamp=AValue) then exit;
FchangedAttributesSinceTimestamp:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TReportRequestTypetimeRange.SetchangedMetricsSinceTimestamp(AIndex : Integer; const AValue : TDatetime);
begin
If (FchangedMetricsSinceTimestamp=AValue) then exit;
FchangedMetricsSinceTimestamp:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TReportRequestTypetimeRange.SetendDate(AIndex : Integer; const AValue : String);
begin
If (FendDate=AValue) then exit;
FendDate:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TReportRequestTypetimeRange.SetstartDate(AIndex : Integer; const AValue : String);
begin
If (FstartDate=AValue) then exit;
FstartDate:=AValue;
MarkPropertyChanged(AIndex);
end;
{ --------------------------------------------------------------------
TReportRequest
--------------------------------------------------------------------}
Procedure TReportRequest.Setcolumns(AIndex : Integer; const AValue : TReportRequestTypecolumnsArray);
begin
If (Fcolumns=AValue) then exit;
Fcolumns:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TReportRequest.SetdownloadFormat(AIndex : Integer; const AValue : String);
begin
If (FdownloadFormat=AValue) then exit;
FdownloadFormat:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TReportRequest.Setfilters(AIndex : Integer; const AValue : TReportRequestTypefiltersArray);
begin
If (Ffilters=AValue) then exit;
Ffilters:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TReportRequest.SetincludeDeletedEntities(AIndex : Integer; const AValue : boolean);
begin
If (FincludeDeletedEntities=AValue) then exit;
FincludeDeletedEntities:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TReportRequest.SetincludeRemovedEntities(AIndex : Integer; const AValue : boolean);
begin
If (FincludeRemovedEntities=AValue) then exit;
FincludeRemovedEntities:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TReportRequest.SetmaxRowsPerFile(AIndex : Integer; const AValue : integer);
begin
If (FmaxRowsPerFile=AValue) then exit;
FmaxRowsPerFile:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TReportRequest.SetorderBy(AIndex : Integer; const AValue : TReportRequestTypeorderByArray);
begin
If (ForderBy=AValue) then exit;
ForderBy:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TReportRequest.SetreportScope(AIndex : Integer; const AValue : TReportRequestTypereportScope);
begin
If (FreportScope=AValue) then exit;
FreportScope:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TReportRequest.SetreportType(AIndex : Integer; const AValue : String);
begin
If (FreportType=AValue) then exit;
FreportType:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TReportRequest.SetrowCount(AIndex : Integer; const AValue : integer);
begin
If (FrowCount=AValue) then exit;
FrowCount:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TReportRequest.SetstartRow(AIndex : Integer; const AValue : integer);
begin
If (FstartRow=AValue) then exit;
FstartRow:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TReportRequest.SetstatisticsCurrency(AIndex : Integer; const AValue : String);
begin
If (FstatisticsCurrency=AValue) then exit;
FstatisticsCurrency:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TReportRequest.SettimeRange(AIndex : Integer; const AValue : TReportRequestTypetimeRange);
begin
If (FtimeRange=AValue) then exit;
FtimeRange:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TReportRequest.SetverifySingleTimeZone(AIndex : Integer; const AValue : boolean);
begin
If (FverifySingleTimeZone=AValue) then exit;
FverifySingleTimeZone:=AValue;
MarkPropertyChanged(AIndex);
end;
//2.6.4. bug workaround
{$IFDEF VER2_6}
Procedure TReportRequest.SetArrayLength(Const AName : String; ALength : Longint);
begin
Case AName of
'columns' : SetLength(Fcolumns,ALength);
'filters' : SetLength(Ffilters,ALength);
'orderby' : SetLength(ForderBy,ALength);
else
Inherited SetArrayLength(AName,ALength);
end;
end;
{$ENDIF VER2_6}
{ --------------------------------------------------------------------
TReportRow
--------------------------------------------------------------------}
Class Function TReportRow.AllowAdditionalProperties : Boolean;
begin
Result:=True;
end;
{ --------------------------------------------------------------------
TSavedColumn
--------------------------------------------------------------------}
Procedure TSavedColumn.Setkind(AIndex : Integer; const AValue : String);
begin
If (Fkind=AValue) then exit;
Fkind:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TSavedColumn.SetsavedColumnName(AIndex : Integer; const AValue : String);
begin
If (FsavedColumnName=AValue) then exit;
FsavedColumnName:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TSavedColumn.Set_type(AIndex : Integer; const AValue : String);
begin
If (F_type=AValue) then exit;
F_type:=AValue;
MarkPropertyChanged(AIndex);
end;
Class Function TSavedColumn.ExportPropertyName(Const AName : String) :String;
begin
Case AName of
'_type' : Result:='type';
else
Result:=Inherited ExportPropertyName(AName);
end;
end;
{ --------------------------------------------------------------------
TSavedColumnList
--------------------------------------------------------------------}
Procedure TSavedColumnList.Setitems(AIndex : Integer; const AValue : TSavedColumnListTypeitemsArray);
begin
If (Fitems=AValue) then exit;
Fitems:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TSavedColumnList.Setkind(AIndex : Integer; const AValue : String);
begin
If (Fkind=AValue) then exit;
Fkind:=AValue;
MarkPropertyChanged(AIndex);
end;
//2.6.4. bug workaround
{$IFDEF VER2_6}
Procedure TSavedColumnList.SetArrayLength(Const AName : String; ALength : Longint);
begin
Case AName of
'items' : SetLength(Fitems,ALength);
else
Inherited SetArrayLength(AName,ALength);
end;
end;
{$ENDIF VER2_6}
{ --------------------------------------------------------------------
TUpdateAvailabilityRequest
--------------------------------------------------------------------}
Procedure TUpdateAvailabilityRequest.Setavailabilities(AIndex : Integer; const AValue : TUpdateAvailabilityRequestTypeavailabilitiesArray);
begin
If (Favailabilities=AValue) then exit;
Favailabilities:=AValue;
MarkPropertyChanged(AIndex);
end;
//2.6.4. bug workaround
{$IFDEF VER2_6}
Procedure TUpdateAvailabilityRequest.SetArrayLength(Const AName : String; ALength : Longint);
begin
Case AName of
'availabilities' : SetLength(Favailabilities,ALength);
else
Inherited SetArrayLength(AName,ALength);
end;
end;
{$ENDIF VER2_6}
{ --------------------------------------------------------------------
TUpdateAvailabilityResponse
--------------------------------------------------------------------}
Procedure TUpdateAvailabilityResponse.Setavailabilities(AIndex : Integer; const AValue : TUpdateAvailabilityResponseTypeavailabilitiesArray);
begin
If (Favailabilities=AValue) then exit;
Favailabilities:=AValue;
MarkPropertyChanged(AIndex);
end;
//2.6.4. bug workaround
{$IFDEF VER2_6}
Procedure TUpdateAvailabilityResponse.SetArrayLength(Const AName : String; ALength : Longint);
begin
Case AName of
'availabilities' : SetLength(Favailabilities,ALength);
else
Inherited SetArrayLength(AName,ALength);
end;
end;
{$ENDIF VER2_6}
{ --------------------------------------------------------------------
TConversionResource
--------------------------------------------------------------------}
Class Function TConversionResource.ResourceName : String;
begin
Result:='conversion';
end;
Class Function TConversionResource.DefaultAPI : TGoogleAPIClass;
begin
Result:=TdoubleclicksearchAPI;
end;
Function TConversionResource.Get(advertiserId: string; agencyId: string; engineAccountId: string; AQuery : string = '') : TConversionList;
Const
_HTTPMethod = 'GET';
_Path = 'agency/{agencyId}/advertiser/{advertiserId}/engine/{engineAccountId}/conversion';
_Methodid = 'doubleclicksearch.conversion.get';
Var
_P : String;
begin
_P:=SubstitutePath(_Path,['advertiserId',advertiserId,'agencyId',agencyId,'engineAccountId',engineAccountId]);
Result:=ServiceCall(_HTTPMethod,_P,AQuery,Nil,TConversionList) as TConversionList;
end;
Function TConversionResource.Get(advertiserId: string; agencyId: string; engineAccountId: string; AQuery : TConversiongetOptions) : TConversionList;
Var
_Q : String;
begin
_Q:='';
AddToQuery(_Q,'adGroupId',AQuery.adGroupId);
AddToQuery(_Q,'adId',AQuery.adId);
AddToQuery(_Q,'campaignId',AQuery.campaignId);
AddToQuery(_Q,'criterionId',AQuery.criterionId);
AddToQuery(_Q,'endDate',AQuery.endDate);
AddToQuery(_Q,'rowCount',AQuery.rowCount);
AddToQuery(_Q,'startDate',AQuery.startDate);
AddToQuery(_Q,'startRow',AQuery.startRow);
Result:=Get(advertiserId,agencyId,engineAccountId,_Q);
end;
Function TConversionResource.Insert(aConversionList : TConversionList) : TConversionList;
Const
_HTTPMethod = 'POST';
_Path = 'conversion';
_Methodid = 'doubleclicksearch.conversion.insert';
begin
Result:=ServiceCall(_HTTPMethod,_Path,'',aConversionList,TConversionList) as TConversionList;
end;
Function TConversionResource.Patch(aConversionList : TConversionList; AQuery : string = '') : TConversionList;
Const
_HTTPMethod = 'PATCH';
_Path = 'conversion';
_Methodid = 'doubleclicksearch.conversion.patch';
begin
Result:=ServiceCall(_HTTPMethod,_Path,AQuery,aConversionList,TConversionList) as TConversionList;
end;
Function TConversionResource.Patch(aConversionList : TConversionList; AQuery : TConversionpatchOptions) : TConversionList;
Var
_Q : String;
begin
_Q:='';
AddToQuery(_Q,'advertiserId',AQuery.advertiserId);
AddToQuery(_Q,'agencyId',AQuery.agencyId);
AddToQuery(_Q,'endDate',AQuery.endDate);
AddToQuery(_Q,'engineAccountId',AQuery.engineAccountId);
AddToQuery(_Q,'rowCount',AQuery.rowCount);
AddToQuery(_Q,'startDate',AQuery.startDate);
AddToQuery(_Q,'startRow',AQuery.startRow);
Result:=Patch(aConversionList,_Q);
end;
Function TConversionResource.Update(aConversionList : TConversionList) : TConversionList;
Const
_HTTPMethod = 'PUT';
_Path = 'conversion';
_Methodid = 'doubleclicksearch.conversion.update';
begin
Result:=ServiceCall(_HTTPMethod,_Path,'',aConversionList,TConversionList) as TConversionList;
end;
Function TConversionResource.UpdateAvailability(aUpdateAvailabilityRequest : TUpdateAvailabilityRequest) : TUpdateAvailabilityResponse;
Const
_HTTPMethod = 'POST';
_Path = 'conversion/updateAvailability';
_Methodid = 'doubleclicksearch.conversion.updateAvailability';
begin
Result:=ServiceCall(_HTTPMethod,_Path,'',aUpdateAvailabilityRequest,TUpdateAvailabilityResponse) as TUpdateAvailabilityResponse;
end;
{ --------------------------------------------------------------------
TReportsResource
--------------------------------------------------------------------}
Class Function TReportsResource.ResourceName : String;
begin
Result:='reports';
end;
Class Function TReportsResource.DefaultAPI : TGoogleAPIClass;
begin
Result:=TdoubleclicksearchAPI;
end;
Function TReportsResource.Generate(aReportRequest : TReportRequest) : TReport;
Const
_HTTPMethod = 'POST';
_Path = 'reports/generate';
_Methodid = 'doubleclicksearch.reports.generate';
begin
Result:=ServiceCall(_HTTPMethod,_Path,'',aReportRequest,TReport) as TReport;
end;
Function TReportsResource.Get(reportId: string) : TReport;
Const
_HTTPMethod = 'GET';
_Path = 'reports/{reportId}';
_Methodid = 'doubleclicksearch.reports.get';
Var
_P : String;
begin
_P:=SubstitutePath(_Path,['reportId',reportId]);
Result:=ServiceCall(_HTTPMethod,_P,'',Nil,TReport) as TReport;
end;
Procedure TReportsResource.GetFile(reportFragment: integer; reportId: string);
Const
_HTTPMethod = 'GET';
_Path = 'reports/{reportId}/files/{reportFragment}';
_Methodid = 'doubleclicksearch.reports.getFile';
Var
_P : String;
begin
_P:=SubstitutePath(_Path,['reportFragment',reportFragment,'reportId',reportId]);
ServiceCall(_HTTPMethod,_P,'',Nil,Nil);
end;
Function TReportsResource.Request(aReportRequest : TReportRequest) : TReport;
Const
_HTTPMethod = 'POST';
_Path = 'reports';
_Methodid = 'doubleclicksearch.reports.request';
begin
Result:=ServiceCall(_HTTPMethod,_Path,'',aReportRequest,TReport) as TReport;
end;
{ --------------------------------------------------------------------
TSavedColumnsResource
--------------------------------------------------------------------}
Class Function TSavedColumnsResource.ResourceName : String;
begin
Result:='savedColumns';
end;
Class Function TSavedColumnsResource.DefaultAPI : TGoogleAPIClass;
begin
Result:=TdoubleclicksearchAPI;
end;
Function TSavedColumnsResource.List(advertiserId: string; agencyId: string) : TSavedColumnList;
Const
_HTTPMethod = 'GET';
_Path = 'agency/{agencyId}/advertiser/{advertiserId}/savedcolumns';
_Methodid = 'doubleclicksearch.savedColumns.list';
Var
_P : String;
begin
_P:=SubstitutePath(_Path,['advertiserId',advertiserId,'agencyId',agencyId]);
Result:=ServiceCall(_HTTPMethod,_P,'',Nil,TSavedColumnList) as TSavedColumnList;
end;
{ --------------------------------------------------------------------
TDoubleclicksearchAPI
--------------------------------------------------------------------}
Class Function TDoubleclicksearchAPI.APIName : String;
begin
Result:='doubleclicksearch';
end;
Class Function TDoubleclicksearchAPI.APIVersion : String;
begin
Result:='v2';
end;
Class Function TDoubleclicksearchAPI.APIRevision : String;
begin
Result:='20160519';
end;
Class Function TDoubleclicksearchAPI.APIID : String;
begin
Result:='doubleclicksearch:v2';
end;
Class Function TDoubleclicksearchAPI.APITitle : String;
begin
Result:='DoubleClick Search API';
end;
Class Function TDoubleclicksearchAPI.APIDescription : String;
begin
Result:='Reports and modifies your advertising data in DoubleClick Search (for example, campaigns, ad groups, keywords, and conversions).';
end;
Class Function TDoubleclicksearchAPI.APIOwnerDomain : String;
begin
Result:='google.com';
end;
Class Function TDoubleclicksearchAPI.APIOwnerName : String;
begin
Result:='Google';
end;
Class Function TDoubleclicksearchAPI.APIIcon16 : String;
begin
Result:='http://www.google.com/images/icons/product/search-16.gif';
end;
Class Function TDoubleclicksearchAPI.APIIcon32 : String;
begin
Result:='http://www.google.com/images/icons/product/search-32.gif';
end;
Class Function TDoubleclicksearchAPI.APIdocumentationLink : String;
begin
Result:='https://developers.google.com/doubleclick-search/';
end;
Class Function TDoubleclicksearchAPI.APIrootUrl : string;
begin
Result:='https://www.googleapis.com/';
end;
Class Function TDoubleclicksearchAPI.APIbasePath : string;
begin
Result:='/doubleclicksearch/v2/';
end;
Class Function TDoubleclicksearchAPI.APIbaseURL : String;
begin
Result:='https://www.googleapis.com/doubleclicksearch/v2/';
end;
Class Function TDoubleclicksearchAPI.APIProtocol : string;
begin
Result:='rest';
end;
Class Function TDoubleclicksearchAPI.APIservicePath : string;
begin
Result:='doubleclicksearch/v2/';
end;
Class Function TDoubleclicksearchAPI.APIbatchPath : String;
begin
Result:='batch';
end;
Class Function TDoubleclicksearchAPI.APIAuthScopes : TScopeInfoArray;
begin
SetLength(Result,1);
Result[0].Name:='https://www.googleapis.com/auth/doubleclicksearch';
Result[0].Description:='View and manage your advertising data in DoubleClick Search';
end;
Class Function TDoubleclicksearchAPI.APINeedsAuth : Boolean;
begin
Result:=True;
end;
Class Procedure TDoubleclicksearchAPI.RegisterAPIResources;
begin
TAvailability.RegisterObject;
TConversion.RegisterObject;
TConversionList.RegisterObject;
TCustomDimension.RegisterObject;
TCustomMetric.RegisterObject;
TReportTypefilesItem.RegisterObject;
TReport.RegisterObject;
TReportApiColumnSpec.RegisterObject;
TReportRequestTypefiltersItem.RegisterObject;
TReportRequestTypeorderByItem.RegisterObject;
TReportRequestTypereportScope.RegisterObject;
TReportRequestTypetimeRange.RegisterObject;
TReportRequest.RegisterObject;
TReportRow.RegisterObject;
TSavedColumn.RegisterObject;
TSavedColumnList.RegisterObject;
TUpdateAvailabilityRequest.RegisterObject;
TUpdateAvailabilityResponse.RegisterObject;
end;
Function TDoubleclicksearchAPI.GetConversionInstance : TConversionResource;
begin
if (FConversionInstance=Nil) then
FConversionInstance:=CreateConversionResource;
Result:=FConversionInstance;
end;
Function TDoubleclicksearchAPI.CreateConversionResource : TConversionResource;
begin
Result:=CreateConversionResource(Self);
end;
Function TDoubleclicksearchAPI.CreateConversionResource(AOwner : TComponent) : TConversionResource;
begin
Result:=TConversionResource.Create(AOwner);
Result.API:=Self.API;
end;
Function TDoubleclicksearchAPI.GetReportsInstance : TReportsResource;
begin
if (FReportsInstance=Nil) then
FReportsInstance:=CreateReportsResource;
Result:=FReportsInstance;
end;
Function TDoubleclicksearchAPI.CreateReportsResource : TReportsResource;
begin
Result:=CreateReportsResource(Self);
end;
Function TDoubleclicksearchAPI.CreateReportsResource(AOwner : TComponent) : TReportsResource;
begin
Result:=TReportsResource.Create(AOwner);
Result.API:=Self.API;
end;
Function TDoubleclicksearchAPI.GetSavedColumnsInstance : TSavedColumnsResource;
begin
if (FSavedColumnsInstance=Nil) then
FSavedColumnsInstance:=CreateSavedColumnsResource;
Result:=FSavedColumnsInstance;
end;
Function TDoubleclicksearchAPI.CreateSavedColumnsResource : TSavedColumnsResource;
begin
Result:=CreateSavedColumnsResource(Self);
end;
Function TDoubleclicksearchAPI.CreateSavedColumnsResource(AOwner : TComponent) : TSavedColumnsResource;
begin
Result:=TSavedColumnsResource.Create(AOwner);
Result.API:=Self.API;
end;
initialization
TDoubleclicksearchAPI.RegisterAPI;
end.