forked from Memnarch/Delphinus
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDN.Package.Version.pas
108 lines (91 loc) · 2.76 KB
/
DN.Package.Version.pas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
{
#########################################################
# Copyright by Alexander Benikowski #
# This unit is part of the Delphinus project hosted on #
# https://github.com/Memnarch/Delphinus #
#########################################################
}
unit DN.Package.Version;
interface
uses
Generics.Collections,
DN.Types,
DN.Version,
DN.Package.Version.Intf,
DN.Package.Dependency.Intf;
type
TDNPackageVersion = class(TInterfacedObject, IDNPackageVersion)
private
FName: string;
FValue: TDNVersion;
FCompilerMin: TCompilerVersion;
FCompilerMax: TCompilerVersion;
FDependencies: TList<IDNPackageDependency>;
function GetCompilerMax: TCompilerVersion;
function GetCompilerMin: TCompilerVersion;
function GetName: string;
procedure SetCompilerMax(const Value: TCompilerVersion);
procedure SetCompilerMin(const Value: TCompilerVersion);
procedure SetName(const Value: string);
function GetValue: TDNVersion;
procedure SetValue(const Value: TDNVersion);
function GetDependencies: TList<IDNPackageDependency>;
public
constructor Create;
destructor Destroy; override;
property Name: string read GetName write SetName;
property Value: TDNVersion read GetValue write SetValue;
property CompilerMin: TCompilerVersion read GetCompilerMin write SetCompilerMin;
property CompilerMax: TCompilerVersion read GetCompilerMax write SetCompilerMax;
property Dependencies: TList<IDNPackageDependency> read GetDependencies;
end;
implementation
{ TDNPackageVersion }
constructor TDNPackageVersion.Create;
begin
inherited;
FDependencies := TList<IDNPackageDependency>.Create();
end;
destructor TDNPackageVersion.Destroy;
begin
FDependencies.Free;
inherited;
end;
function TDNPackageVersion.GetCompilerMax: TCompilerVersion;
begin
Result := FCompilerMax;
end;
function TDNPackageVersion.GetCompilerMin: TCompilerVersion;
begin
Result := FCompilerMin;
end;
function TDNPackageVersion.GetDependencies: TList<IDNPackageDependency>;
begin
Result := FDependencies;
end;
function TDNPackageVersion.GetName: string;
begin
Result := FName;
end;
function TDNPackageVersion.GetValue: TDNVersion;
begin
Result := FValue;
end;
procedure TDNPackageVersion.SetCompilerMax(const Value: TCompilerVersion);
begin
FCompilerMax := Value;
end;
procedure TDNPackageVersion.SetCompilerMin(const Value: TCompilerVersion);
begin
FCompilerMin := Value;
end;
procedure TDNPackageVersion.SetName(const Value: string);
begin
FName := Value;
TDNVersion.TryParse(FName, FValue);
end;
procedure TDNPackageVersion.SetValue(const Value: TDNVersion);
begin
FValue := Value;
end;
end.