Data Types next
This commit is contained in:
@@ -3,30 +3,9 @@ unit Myc.Data.Types.Float;
|
||||
interface
|
||||
|
||||
uses
|
||||
System.SysUtils,
|
||||
Myc.Data.Types;
|
||||
|
||||
type
|
||||
TDataValueHelper = record helper for TDataValue
|
||||
public
|
||||
function AsFloat: IDataFloatValue;
|
||||
end;
|
||||
|
||||
TDataTypeHelper = record helper for TDataType
|
||||
public
|
||||
function AsFloat: IDataFloatType;
|
||||
end;
|
||||
|
||||
// Public factory for creating float values.
|
||||
TFloatType = record
|
||||
public
|
||||
class function CreateValue(Init: Double): IDataFloatValue; static;
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
uses
|
||||
System.SysUtils;
|
||||
|
||||
type
|
||||
// Implements the float data value.
|
||||
TImplDataFloatValue = class(TInterfacedObject, IDataValue, IDataFloatValue)
|
||||
@@ -50,10 +29,13 @@ type
|
||||
class constructor CreateClass;
|
||||
public
|
||||
function GetName: String;
|
||||
function GetKind: TDataKind;
|
||||
function CreateValue(Init: Double): IDataFloatValue;
|
||||
class property Singleton: IDataFloatType read FSingleton;
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
{ TImplDataFloatValue }
|
||||
|
||||
constructor TImplDataFloatValue.Create(const AValue: Double);
|
||||
@@ -84,30 +66,14 @@ begin
|
||||
Result := 'Float';
|
||||
end;
|
||||
|
||||
function TImplDataFloatType.GetKind: TDataKind;
|
||||
begin
|
||||
Result := dkFloat;
|
||||
end;
|
||||
|
||||
function TImplDataFloatType.CreateValue(Init: Double): IDataFloatValue;
|
||||
begin
|
||||
Result := TImplDataFloatValue.Create(Init);
|
||||
end;
|
||||
|
||||
{ TFloatType }
|
||||
|
||||
class function TFloatType.CreateValue(Init: Double): IDataFloatValue;
|
||||
begin
|
||||
Result := TImplDataFloatType.Singleton.CreateValue(Init);
|
||||
end;
|
||||
|
||||
{ TDataValueHelper }
|
||||
|
||||
function TDataValueHelper.AsFloat: IDataFloatValue;
|
||||
begin
|
||||
Result := Self.DataValue as IDataFloatValue;
|
||||
end;
|
||||
|
||||
{ TDataTypeHelper }
|
||||
|
||||
function TDataTypeHelper.AsFloat: IDataFloatType;
|
||||
begin
|
||||
Result := Self.DataType as IDataFloatType;
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
Reference in New Issue
Block a user