⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 s2.model.ts2systemobject.pas

📁 轉載的程序應用框架
💻 PAS
字号:
unit S2.Model.TS2SystemObject;

interface

uses
  Classes,
  S2.Core.IS2SystemObject, S2.Model.TS2PersistModel, S2.Model.IS2DatabaseManager, S2.Error.IS2ExceptionWrapper,
  S2.Model.IS2MetaDataManager, S2.Core.IS2ObjectCache, S2.Model.IS2ModelFactory, S2.Core.IS2User,
  S2.Model.TS2ServerDataModelFactory, S2.Core.TS2User;

type
  TS2SystemObject = class(TS2PersistModel, IS2SystemObject)
  private
    ServerDataModelFactory: TS2ServerDataModelFactory;
    User: TS2User;
  public
    function GetAppName: string; virtual;  //  abstract
    function GetDatabaseManager: TDataModule; virtual;  //  abstract
    function GetExceptionWrapper: IS2ExceptionWrapper; virtual;  //  abstract
    function GetMetaDataManager: IS2MetaDataManager; virtual;  //  abstract
    function GetObjectCache: IS2ObjectCache; virtual;  //  abstract
    function GetServerDataModelFactory: TObject; virtual;  //  abstract
    function GetUser: IS2User; virtual;  //  abstract
  public
    constructor Create(Owner: TComponent; User: TS2User);
    destructor Destroy; override;
  end;

var
  _SystemObject: TS2SystemObject;

procedure SetGlobalSystemObject(SystemObject: TS2SystemObject);
function GetGlobalSystemObject: TS2SystemObject;

implementation

uses
  SysUtils, S2.Error.S2AbstractException;

{$R *.dfm}

procedure SetGlobalSystemObject(SystemObject: TS2SystemObject);
begin
  _SystemObject := SystemObject;
end;

function GetGlobalSystemObject: TS2SystemObject;
begin
  Result := _SystemObject;
end;

{ TS2SystemObject }

constructor TS2SystemObject.Create(Owner: TComponent; User: TS2User);
begin
  inherited Create(Owner);

  ServerDataModelFactory := TS2ServerDataModelFactory.Create(Self);
  Self.User := User;  
end;

destructor TS2SystemObject.Destroy;
begin
  FreeAndNil(ServerDataModelFactory);
  inherited;
end;

function TS2SystemObject.GetAppName: string;
begin
  raise S2AbstractException.Create(ClassName, 'GetAppName');
end;

function TS2SystemObject.GetDatabaseManager: TDataModule;
begin
  raise S2AbstractException.Create(ClassName, 'GetDatabaseManager');
end;

function TS2SystemObject.GetExceptionWrapper: IS2ExceptionWrapper;
begin
  raise S2AbstractException.Create(ClassName, 'GetExceptionWrapper');
end;

function TS2SystemObject.GetMetaDataManager: IS2MetaDataManager;
begin
  raise S2AbstractException.Create(ClassName, 'GetMetaDataManager');
end;

function TS2SystemObject.GetObjectCache: IS2ObjectCache;
begin
  raise S2AbstractException.Create(ClassName, 'GetObjectCache');
end;

function TS2SystemObject.GetServerDataModelFactory: TObject;
begin
  Result := ServerDataModelFactory;
end;

function TS2SystemObject.GetUser: IS2User;
begin
  raise S2AbstractException.Create(ClassName, 'GetUser');
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -