ILinelistSpecs

Defines the public contract for the LinelistSpecs class, exposing lazy-loaded accessors for all specification collaborators (dictionary, choices, translations, geo, analysis, passwords, format, exports, formulas), metadata helpers for temporary sheet names and category lookups, and lifecycle methods for preparing, exporting, and error-managing the specifications workbook.

Lifecycle

ResetCaches #

Refresh all cached collaborators

Signature:

Public Sub ResetCaches()

Cache management and workbook reference. Resets every cached collaborator object, sheet reference, translation cache, and category cache so subsequent reads query the workbook again. Call after importing new data to ensure stale caches are cleared.


DesWorkbook #

Designer workbook hosting the specifications

Signature:

Public Property Get DesWorkbook() As Workbook

Returns the designer workbook reference that backs all specification queries. Raises an error if the workbook has not been assigned.

Returns: Workbook. The designer/specifications workbook.


CoreSpecifications

Dictionary #

Linelist dictionary

Signature:

Public Property Get Dictionary() As ILLdictionary

Lazy-loaded accessors for specification collaborator objects. Returns the ILLdictionary instance providing column and row access to the Dictionary worksheet. Lazy-loaded on first access.

Returns: ILLdictionary. The dictionary collaborator.


Choices #

Choices catalogue

Signature:

Public Property Get Choices() As ILLChoices

Returns the ILLChoices instance providing category lookups from the Choices worksheet. Lazy-loaded on first access.

Returns: ILLChoices. The choices collaborator.


DesignFormat #

Visual formatting specifications

Signature:

Public Property Get DesignFormat() As ILLFormat

Returns the ILLFormat instance providing sheet and cell formatting methods based on the __formatter worksheet. Lazy-loaded on first access.

Returns: ILLFormat. The format collaborator.


Analysis #

Analysis setup specifications

Signature:

Public Property Get Analysis() As IAnalysis

Returns the IAnalysis instance providing access to the Analysis worksheet configuration. Lazy-loaded on first access.

Returns: IAnalysis. The analysis collaborator.


ExportObject #

Export column specifications

Signature:

Public Property Get ExportObject() As ILLExport

Returns the ILLExport instance providing access to export column definitions from the Exports worksheet. Lazy-loaded on first access.

Returns: ILLExport. The export collaborator.


Password #

Password manager

Signature:

Public Property Get Password() As IPasswords

Returns the IPasswords instance providing workbook and sheet protection utilities from the __pass worksheet. Lazy-loaded on first access.

Returns: IPasswords. The password collaborator.


GeoObject #

Geographic data manager

Signature:

Public Property Get GeoObject() As ILLGeo

Returns the ILLGeo instance providing geographic hierarchy lookups from the Geo worksheet. Lazy-loaded on first access.

Returns: ILLGeo. The geo collaborator.


FormulaDataObject #

Formula data provider

Signature:

Public Property Get FormulaDataObject() As IFormulaData

Returns the IFormulaData instance providing formula parsing support from the __formula worksheet. Lazy-loaded on first access.

Returns: IFormulaData. The formula data collaborator.


HasTemplate #

Whether the workbook uses a ribbon template

Signature:

Public Property Get HasTemplate() As Boolean

Reads the RNG_MainTemp named range on the Main worksheet and returns True when the value equals "has template".

Returns: Boolean. True when a template is configured.


Translations #

Translation tables manager

Signature:

Public Property Get Translations() As ILLTranslation

Returns the ILLTranslation instance providing access to all translation ListObjects on the consolidated translation worksheet. Lazy-loaded on first access.

Returns: ILLTranslation. The translations collaborator.


DesignerTranslations #

Designer translation accessor

Signature:

Public Property Get DesignerTranslations() As IDesignerTranslation

Returns the IDesignerTranslation instance providing designer UI translations from the DesignerTranslation worksheet. Lazy-loaded on first access.

Returns: IDesignerTranslation. The designer translation collaborator.


TransObject #

Scoped translation object

Signature:

Public Property Get TransObject(Optional ByVal translationScope As Byte = TranslationOfMessages) As ITranslationObject

Returns an ITranslationObject for the requested translation scope. Results are cached per scope value for efficient repeated access.

Parameters:

  • translationScope: Optional Byte. The translation scope constant (e.g., TranslationOfMessages, TranslationOfDictionary, TranslationOfShapes). Defaults to TranslationOfMessages.

Returns: ITranslationObject. The scoped translation object.


MetadataHelpers

TemporarySheetName #

Temporary sheet name for a given scope

Signature:

Public Property Get TemporarySheetName(ByVal scope As Byte) As String

Derived accessors for temporary sheet names, tag values, and categories. Returns the fixed worksheet name used for temporary internal sheets, based on the TempSheetScope enum (TempSheetAnalysis, TempSheetList, etc.).

Parameters:

  • scope: Byte. A TempSheetScope enum value.

Returns: String. The worksheet name string.


Value #

Configuration value by tag name

Signature:

Public Property Get Value(ByVal tagName As String) As String

Returns a configuration value from the Main worksheet for the given tag name. The special tag "numberofexports" returns the export count from the Exports worksheet; all other tags resolve the named range directly on the Main sheet.

Parameters:

  • tagName: String. The configuration key to look up.

Returns: String. The configuration value.


Categories #

Resolve category values for a variable

Signature:

Public Function Categories(ByVal varName As String, Optional ByVal useShortlabels As Boolean = False) As BetterArray

Returns the list of category values for a choice-type variable (choice_manual, choice_multiple, choice_custom, or choice_formula). Results are cached per variable name and short-label flag for efficient repeated access.

Parameters:

  • varName: String. The variable name whose categories to resolve.
  • useShortlabels: Optional Boolean. When True, returns short labels instead of full labels. Defaults to False.

Returns: BetterArray. Cloned list of category values.


WorkbookManagement

Prepare #

Prepare all specifications using an import service

Signature:

Public Sub Prepare(ByVal importService As IDesignerImportService)

Preparation, export, and error management operations. Orchestrates the full specification preparation workflow: creates a new output workbook, exports designer components via the import service, retrieves exported domain instances, then prepares the dictionary with preserved names, adds list auto columns, translates and sorts all collaborators. Handles errors with cleanup.

Parameters:

  • importService: IDesignerImportService. The configured import service holding imported setup data.

LLWorkbook #

The output linelist workbook created during Prepare

Signature:

Public Property Get LLWorkbook() As Workbook

Returns the linelist workbook created by Prepare that received exported data from the import service. Returns Nothing before Prepare is called.

Returns: Workbook. The linelist workbook, or Nothing.


OutputTemporaryRepos #

The temporary repository created during Prepare

Signature:

Public Property Get OutputTemporaryRepos() As ITemporaryRepos

Returns the ITemporaryRepos instance created by Prepare for working files. Returns Nothing before Prepare is called.

Returns: ITemporaryRepos. The temporary repository, or Nothing.


ErrorManage #

Display an error dialog for specification failures

Signature:

Public Sub ErrorManage(Optional ByVal textMessage As String = vbNullString)

Shows a message box describing the error and aborts the linelist creation process.

Parameters:

  • textMessage: Optional String. Error description. Defaults to vbNullString.