Skip to content

Commit 39b4881

Browse files
Improvements class helper
1 parent 10ef5e9 commit 39b4881

4 files changed

Lines changed: 63 additions & 104 deletions

File tree

src/core/Ragna.Criteria.Impl.pas

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ interface
88
TDefaultCriteria = class(TInterfacedObject, ICriteria)
99
private
1010
FQuery: TFDQuery;
11-
public
1211
procedure Where(const AField: string); overload;
1312
procedure Where(const AField: TField); overload;
1413
procedure Where(const AValue: Boolean); overload;
@@ -22,6 +21,7 @@ TDefaultCriteria = class(TInterfacedObject, ICriteria)
2221
procedure &Equals(const AValue: string); overload;
2322
procedure Order(const AField: string); overload;
2423
procedure Order(const AField: TField); overload;
24+
public
2525
constructor Create(const AQuery: TFDQuery);
2626
end;
2727

src/core/Ragna.Impl.pas

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,9 @@ TRagna = class(TInterfacedObject, IRagna)
1414
private
1515
function GetTableName: string;
1616
function HasField(const AFields: array of TField): Boolean;
17+
function ToJSONObject: TJSONObject;
18+
function ToJSONArray: TJSONArray;
1719
procedure RaiseNotFound;
18-
public
19-
constructor Create(const AQuery: TFDQuery);
20-
property Query: TFDQuery read FQuery write FQuery;
21-
property Criteria: ICriteria read FCriteria write FCriteria;
2220
procedure Paginate(const AOffSet, ALimit: Integer);
2321
procedure RadicalResearch(const AValue: string; const AFields: array of TField);
2422
procedure Remove(const AField: TField; const AValue: Int64);
@@ -29,12 +27,14 @@ TRagna = class(TInterfacedObject, IRagna)
2927
procedure OpenUp;
3028
procedure OpenEmpty;
3129
procedure Reset;
32-
procedure ToJson(out AJSON: TJSONArray); overload; deprecated;
33-
procedure ToJson(out AJSON: TJSONObject); overload; deprecated;
30+
procedure ToJson(out AJSON: TJSONArray); overload;
31+
procedure ToJson(out AJSON: TJSONObject); overload;
3432
procedure EditFromJson(const AJSON: TJSONObject); overload;
3533
procedure EditFromJson(const AJSON: TJSONArray); overload;
36-
function ToJSONArray: TJSONArray;
37-
function ToJSONObject: TJSONObject;
34+
public
35+
constructor Create(const AQuery: TFDQuery);
36+
property Query: TFDQuery read FQuery write FQuery;
37+
property Criteria: ICriteria read FCriteria write FCriteria;
3838
destructor Destroy; override;
3939
end;
4040

src/helpers/Ragna.pas

Lines changed: 50 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,10 @@ TRagnaHelper = class helper for TFDQuery
1717
function OpenUp: TFDQuery;
1818
function OpenEmpty: TFDQuery;
1919
function Reset: TFDQuery;
20-
function ToJson(out AJSON: TJSONArray): TFDQuery; overload;
21-
function ToJson(out AJSON: TJSONObject): TFDQuery; overload;
20+
function ToJson(out AJSON: TJSONArray): TFDQuery; overload; deprecated;
21+
function ToJson(out AJSON: TJSONObject): TFDQuery; overload; deprecated;
22+
function ToJSONObject: TJSONObject;
23+
function ToJSONArray: TJSONArray;
2224
function EditFromJson(const AJSON: TJSONObject): TFDQuery; overload;
2325
function EditFromJson(const AJSON: TJSONArray): TFDQuery; overload;
2426
function Where(const AField: string): TFDQuery; overload;
@@ -37,7 +39,7 @@ TRagnaHelper = class helper for TFDQuery
3739

3840
implementation
3941

40-
uses System.SysUtils;
42+
uses System.SysUtils, Ragna.Intf;
4143

4244
function TRagnaHelper.&Or(const AField: TField): TFDQuery;
4345
var
@@ -93,27 +95,19 @@ function TRagnaHelper.&Or(const AField: string): TFDQuery;
9395

9496
function TRagnaHelper.Remove(const AField: TField; const AValue: Int64): TFDQuery;
9597
var
96-
LRagna: TRagna;
98+
LRagna: IRagna;
9799
begin
98100
LRagna := TRagna.Create(Self);
99-
try
100-
LRagna.Remove(AField, AValue);
101-
finally
102-
LRagna.Free;
103-
end;
101+
LRagna.Remove(AField, AValue);
104102
Result := Self;
105103
end;
106104

107105
function TRagnaHelper.EditFromJson(const AJSON: TJSONArray): TFDQuery;
108106
var
109-
LRagna: TRagna;
107+
LRagna: IRagna;
110108
begin
111109
LRagna := TRagna.Create(Self);
112-
try
113-
LRagna.EditFromJson(AJSON);
114-
finally
115-
LRagna.Free;
116-
end;
110+
LRagna.EditFromJson(AJSON);
117111
Result := Self;
118112
end;
119113

@@ -122,11 +116,7 @@ function TRagnaHelper.Equals(const AValue: string): TFDQuery;
122116
LRagna: TRagna;
123117
begin
124118
LRagna := TRagna.Create(Self);
125-
try
126-
LRagna.Criteria.Equals(AValue);
127-
finally
128-
LRagna.Free;
129-
end;
119+
LRagna.Criteria.Equals(AValue);
130120
Result := Self;
131121
end;
132122

@@ -158,27 +148,19 @@ function TRagnaHelper.Equals(const AValue: Int64): TFDQuery;
158148

159149
function TRagnaHelper.FindById(const AField: TField; const AValue: Int64): TFDQuery;
160150
var
161-
LRagna: TRagna;
151+
LRagna: IRagna;
162152
begin
163153
LRagna := TRagna.Create(Self);
164-
try
165-
LRagna.FindById(AField, AValue);
166-
finally
167-
LRagna.Free;
168-
end;
154+
LRagna.FindById(AField, AValue);
169155
Result := Self;
170156
end;
171157

172158
function TRagnaHelper.EditFromJson(const AJSON: TJSONObject): TFDQuery;
173159
var
174-
LRagna: TRagna;
160+
LRagna: IRagna;
175161
begin
176162
LRagna := TRagna.Create(Self);
177-
try
178-
LRagna.EditFromJson(AJSON);
179-
finally
180-
LRagna.Free;
181-
end;
163+
LRagna.EditFromJson(AJSON);
182164
Result := Self;
183165
end;
184166

@@ -197,40 +179,28 @@ function TRagnaHelper.Like(const AValue: string): TFDQuery;
197179

198180
function TRagnaHelper.New(const ABody: TJSONArray): TFDQuery;
199181
var
200-
LRagna: TRagna;
182+
LRagna: IRagna;
201183
begin
202184
LRagna := TRagna.Create(Self);
203-
try
204-
LRagna.New(ABody);
205-
finally
206-
LRagna.Free;
207-
end;
185+
LRagna.New(ABody);
208186
Result := Self;
209187
end;
210188

211189
function TRagnaHelper.OpenEmpty: TFDQuery;
212190
var
213-
LRagna: TRagna;
191+
LRagna: IRagna;
214192
begin
215193
LRagna := TRagna.Create(Self);
216-
try
217-
LRagna.OpenEmpty;
218-
finally
219-
LRagna.Free;
220-
end;
194+
LRagna.OpenEmpty;
221195
Result := Self;
222196
end;
223197

224198
function TRagnaHelper.OpenUp: TFDQuery;
225199
var
226-
LRagna: TRagna;
200+
LRagna: IRagna;
227201
begin
228202
LRagna := TRagna.Create(Self);
229-
try
230-
LRagna.OpenUp;
231-
finally
232-
LRagna.Free;
233-
end;
203+
LRagna.OpenUp;
234204
Result := Self;
235205
end;
236206

@@ -249,92 +219,80 @@ function TRagnaHelper.Order(const AField: TField): TFDQuery;
249219

250220
function TRagnaHelper.Paginate(const AOffSet, ALimit: Integer): TFDQuery;
251221
var
252-
LRagna: TRagna;
222+
LRagna: IRagna;
253223
begin
254224
LRagna := TRagna.Create(Self);
255-
try
256-
LRagna.Paginate(AOffSet, ALimit);
257-
finally
258-
LRagna.Free;
259-
end;
225+
LRagna.Paginate(AOffSet, ALimit);
260226
Result := Self;
261227
end;
262228

263229
function TRagnaHelper.New(const ABody: TJSONObject): TFDQuery;
264230
var
265-
LRagna: TRagna;
231+
LRagna: IRagna;
266232
begin
267233
LRagna := TRagna.Create(Self);
268-
try
269-
LRagna.New(ABody);
270-
finally
271-
LRagna.Free;
272-
end;
234+
LRagna.New(ABody);
273235
Result := Self;
274236
end;
275237

276238
function TRagnaHelper.RadicalResearch(const AValue: string; const AFields: array of TField): TFDQuery;
277239
var
278-
LRagna: TRagna;
240+
LRagna: IRagna;
279241
begin
280242
LRagna := TRagna.Create(Self);
281-
try
282-
LRagna.RadicalResearch(AValue, AFields);
283-
finally
284-
LRagna.Free;
285-
end;
243+
LRagna.RadicalResearch(AValue, AFields);
286244
Result := Self;
287245
end;
288246

289247
function TRagnaHelper.Reset: TFDQuery;
290248
var
291-
LRagna: TRagna;
249+
LRagna: IRagna;
292250
begin
293251
LRagna := TRagna.Create(Self);
294-
try
295-
LRagna.Reset;
296-
finally
297-
LRagna.Free;
298-
end;
252+
LRagna.Reset;
299253
Result := Self;
300254
end;
301255

302256
function TRagnaHelper.ToJson(out AJSON: TJSONObject): TFDQuery;
303257
var
304-
LRagna: TRagna;
258+
LRagna: IRagna;
305259
begin
306260
LRagna := TRagna.Create(Self);
307-
try
308-
LRagna.ToJson(AJSON);
309-
finally
310-
LRagna.Free;
311-
end;
261+
LRagna.ToJson(AJSON);
312262
Result := Self;
313263
end;
314264

265+
function TRagnaHelper.ToJSONArray: TJSONArray;
266+
var
267+
LRagna: IRagna;
268+
begin
269+
LRagna := TRagna.Create(Self);
270+
Result := LRagna.ToJSONArray;
271+
end;
272+
273+
function TRagnaHelper.ToJSONObject: TJSONObject;
274+
var
275+
LRagna: IRagna;
276+
begin
277+
LRagna := TRagna.Create(Self);
278+
Result := LRagna.ToJSONObject;
279+
end;
280+
315281
function TRagnaHelper.ToJson(out AJSON: TJSONArray): TFDQuery;
316282
var
317-
LRagna: TRagna;
283+
LRagna: IRagna;
318284
begin
319285
LRagna := TRagna.Create(Self);
320-
try
321-
LRagna.ToJson(AJSON);
322-
finally
323-
LRagna.Free;
324-
end;
286+
LRagna.ToJson(AJSON);
325287
Result := Self;
326288
end;
327289

328290
function TRagnaHelper.UpdateById(const AField: TField; const AValue: Int64; const ABody: TJSONObject): TFDQuery;
329291
var
330-
LRagna: TRagna;
292+
LRagna: IRagna;
331293
begin
332294
LRagna := TRagna.Create(Self);
333-
try
334-
LRagna.UpdateById(AField, AValue, ABody);
335-
finally
336-
LRagna.Free;
337-
end;
295+
LRagna.UpdateById(AField, AValue, ABody);
338296
Result := Self;
339297
end;
340298

src/interfaces/Ragna.Intf.pas

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,10 @@ interface
1717
procedure OpenUp;
1818
procedure OpenEmpty;
1919
procedure Reset;
20-
procedure ToJson(out AJSON: TJSONArray); overload; deprecated;
21-
procedure ToJson(out AJSON: TJSONObject); overload; deprecated;
22-
procedure EditFromJson(const AJSON: TJSONObject);
20+
procedure ToJson(out AJSON: TJSONArray); overload;
21+
procedure ToJson(out AJSON: TJSONObject); overload;
22+
procedure EditFromJson(const AJSON: TJSONObject); overload;
23+
procedure EditFromJson(const AJSON: TJSONArray); overload;
2324
function ToJSONArray: TJSONArray;
2425
function ToJSONObject: TJSONObject;
2526
end;

0 commit comments

Comments
 (0)