2
0
Эх сурвалжийг харах

[automapper] new dependency injection interface

Exilon 5 жил өмнө
parent
commit
ac180dc2c7

+ 2 - 2
Quick.AutoMapper.pas

@@ -118,7 +118,8 @@ type
     {$ENDIF}
   end;
 
-  IAutoMapper<TClass1, TClass2 : class, constructor> = interface['{9F7B2DEA-76D8-4DD1-95D0-22C22AEB5DD0}']
+  IAutoMapper<TClass1, TClass2 : class, constructor> = interface
+  ['{9F7B2DEA-76D8-4DD1-95D0-22C22AEB5DD0}']
     function Map(aSrcObj : TClass1) : TClass2; overload;
     {$IFNDEF FPC}
     function Map(aSrcObj : TClass2) : TClass1; overload;
@@ -130,7 +131,6 @@ type
     {$ENDIF}
   end;
 
-
   TAutoMapper<TClass1, TClass2 : class, constructor> = class(TInterfacedObject, IAutoMapper<TClass1, TClass2>)
   private
     fCustomMapping : TCustomMapping;

+ 53 - 0
Quick.Mapper.Intf.pas

@@ -0,0 +1,53 @@
+{ ***************************************************************************
+
+  Copyright (c) 2016-2020 Kike Pérez
+
+  Unit        : Quick.Mapper.Intf
+  Description : Quick Mapper Interface
+  Author      : Kike Pérez
+  Version     : 1.8
+  Created     : 07/02/2020
+  Modified    : 14/02/2020
+
+  This file is part of QuickLib: https://github.com/exilon/QuickLib
+
+ ***************************************************************************
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+ *************************************************************************** }
+
+unit Quick.Mapper.Intf;
+
+{$i QuickLib.inc}
+
+interface
+
+type
+  TMapTarget = record
+  private
+    fSrcObj : TObject;
+  public
+    constructor Create(aSrcObj : TObject);
+    function AsType<T : class, constructor> : T;
+  end;
+
+  IMapper = interface
+  ['{A4EBC4BC-94D0-4F32-98FD-4888E1EF199A}']
+    procedure Map(aSrcObj, aTgtObj : TObject); overload;
+    function Map(aSrcObj : TObject) : TMapTarget; overload;
+  end;
+
+implementation
+
+end.