VBCommons/utility/API_DistrManifest.cls
2024-06-07 20:46:40 +03:00

74 lines
1.6 KiB
OpenEdge ABL

VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
END
Attribute VB_Name = "API_DistrManifest"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
' ======== Products distribution manifest ========
' Shared module version: 20220814
' Tested in:
' Depends on: API_JSON
' Required reference: Scripting, ex_Version
Option Explicit
Private Const MANIFEST_JSON_IDENT = 4
Public data_ As Scripting.Dictionary
Private parser_ As New API_JSON
Private file_ As String
Private Sub Class_Initialize()
Call parser_.SetupMultiline(MANIFEST_JSON_IDENT)
End Sub
Public Function LoadFrom(sFile$)
file_ = sFile
Set data_ = parser_.LoadFromFile(file_)
If data_ Is Nothing Then _
Set data_ = New Scripting.Dictionary
End Function
Public Function LoadServer()
Call LoadFrom(CP_TOOLS_SERVER & "\" & FILE_DISTRIBUTION_MANIFEST)
End Function
Public Function LoadLocal()
Call LoadFrom(CP_TOOLS_LOCAL & "\" & FILE_DISTRIBUTION_MANIFEST)
End Function
Public Function IsLoaded() As Boolean
IsLoaded = False
If data_ Is Nothing Then _
Exit Function
If data_.Count = 0 Then _
Exit Function
IsLoaded = True
End Function
Public Function Reload()
Call LoadFrom(file_)
End Function
Public Function SetVersion(sProduct$, sVersion$)
data_(sProduct) = sVersion
End Function
Public Function GetVersion(sProduct$) As String
If Not data_.Exists(sProduct) Then _
Exit Function
GetVersion = data_(sProduct)
End Function
Public Function Save() As Boolean
Save = SaveTo(file_)
End Function
Public Function SaveTo(sFile$) As Boolean
SaveTo = parser_.SaveToFile(sFile, data_)
End Function