Top Method Summary
Options Name Purpose
LOGICAL AddClass (character, logical, character, logical) Loads a class and adds it to the cache
AddSessionInfoEntry (JsonArray, character, character) Adds an entry to the "Class Name Cache" section of the session info
CHARACTER AddToList (character, character) Adds an entry to a comma-delimited list, when it is not part of the list yet
Clear () Drops the in-memory content of the cache
EnsureLoaded () Loads the cache when it is not loaded yet
CHARACTER GetBaseTypes (Class) Returns the comma-delimited list of the base types of a class
GetCache (dataset) Returns a copy of the whole cache
GetClassNames (character, logical, table) Returns the names of the classes that inherit from or implement the given base type
GetClassNames (character, table) Returns the names of the classes that inherit from or implement the given base type, excluding abstract classes and interfaces
CHARACTER GetClassPathEntryList () Returns the comma-delimited list of the .classpath entries and their prefixes
CHARACTER GetClassPathHash () Returns the fingerprint of the .classpath entries
GetInterfaceNames (character, table) Returns the names of the interfaces that inherit from the given base type
LoadClassPathEntries () Loads the entries of the .classpath file into ttClassPathEntry
ObtainSessionInfoHandler (Object, JsonObject) Event handler for SessionInfoProvider:ObtainSessionInfo
Refresh () Rescans the class path now, ignoring the persistent cache
Refresh (character) Rescans a single .classpath entry
Scan () Scans the class path and replaces the content of the cache
ScanClassPathEntry (character, character, character, logical) Scans a single .classpath entry and adds its classes to the cache
UpdateCacheInfo (integer) Creates or updates the header record of the cache
CHARACTER ValidateCache () Validates the content read from the persistent cache against the current session
WriteCache () Writes the cache through the IClassNameCacheWriter, when one is registered
WriteLogMessage (character) Writes a message to the ClassNameCache log entry type

Top Constructor Summary
Options Name Purpose
ClassNameCacheService () Constructor for the ClassNameCacheService class

Top Property Summary
Options Name Purpose
INTEGER CacheVersion
Consultingwerk.Util.ClassCache.ClassNameCacheSourceEnum ContentSource
LOGICAL IncludeDotNetDependentClasses
LOGICAL IsLoaded
Consultingwerk.Util.ClassCache.ClassNameCacheSourceEnum LastRequestSource


Method Detail
Top

LOGICAL AddClass (character, logical, character, logical)

Purpose: Loads a class and adds it to the cache
Notes:

Parameters:
pcClassName CHARACTER
The name of the class
plDotNetDependent LOGICAL
Logical value indicating if the r-code of the class references .NET types
pcEntry CHARACTER
The .classpath entry the class was found in
plExtendedLogging LOGICAL
Logical value indicating if the ClassNameCacheExt log entry type is active
Returns LOGICAL
Logical value indicating if the class was added to the cache
Top

AddSessionInfoEntry (JsonArray, character, character)

Purpose: Adds an entry to the "Class Name Cache" section of the
session info
Notes:

Parameters:
poEntries Progress.Json.ObjectModel.JsonArray
The JsonArray with the entries of the section
pcKey CHARACTER
The key of the entry
pcDescription CHARACTER
The value of the entry
Top

CHARACTER AddToList (character, character)

Purpose: Adds an entry to a comma-delimited list, when it is not part
of the list yet
Notes:

Parameters:
pcList CHARACTER
The comma-delimited list
pcEntry CHARACTER
The entry to add
Returns CHARACTER
The comma-delimited list including the entry
Top

Clear ()

Purpose: Drops the in-memory content of the cache
Notes: The next request loads the cache again (persistent cache
first, then a scan of the class path)

Top

EnsureLoaded ()

Purpose: Loads the cache when it is not loaded yet
Notes: Asks the IClassNameCacheReader first (when registered),
validates the content and falls back to a scan of the
class path. The result of a scan is written through the
IClassNameCacheWriter (when registered)

Top

CHARACTER GetBaseTypes (Class)

Purpose: Returns the comma-delimited list of the base types of a class
Notes: Every super class up to Progress.Lang.Object and every
interface implemented by the class, its super classes or
inherited by those interfaces (Progress.Lang.Class:GetInterfaces)

Parameters:
poClass Progress.Lang.Class
The Progress.Lang.Class to return the base types of
Returns CHARACTER
The comma-delimited list of the base type names
Top

GetCache (dataset)

Purpose: Returns a copy of the whole cache
Notes: For tooling (Session Info, class browser, tests). Do not pass
the dataset BY-REFERENCE, the content is copied to the caller

Parameters:
dsClassNameCache DATASET dsClassNameCache
OUTPUT The dataset with the class name cache
Top

GetClassNames (character, logical, table)

Purpose: Returns the names of the classes that inherit from or
implement the given base type
Notes: A class matches when it is the base type itself or the base
type is one of its base types (Progress.Lang.Class:IsA
semantics, as used by the ClassHelper scans)

Parameters:
pcBaseType CHARACTER
The base type (class or interface) that the returned classes need to match
plIncludeAbstract LOGICAL
Include abstract classes and interfaces in the result
ttClassNames TEMP-TABLE ttClassNames
OUTPUT Temp-Table with the list of matching class names
Top

GetClassNames (character, table)

Purpose: Returns the names of the classes that inherit from or
implement the given base type, excluding abstract classes
and interfaces
Notes:

Parameters:
pcBaseType CHARACTER
The base type (class or interface) that the returned classes need to match
ttClassNames TEMP-TABLE ttClassNames
OUTPUT Temp-Table with the list of matching class names
Top

CHARACTER GetClassPathEntryList ()

Purpose: Returns the comma-delimited list of the .classpath entries
and their prefixes
Notes: Requires LoadClassPathEntries to be called before

Returns CHARACTER
The comma-delimited list of the .classpath entries
Top

CHARACTER GetClassPathHash ()

Purpose: Returns the fingerprint of the .classpath entries
Notes: Based on the entries as written in the .classpath file and
their prefixes, in order. Requires LoadClassPathEntries to be
called before

Returns CHARACTER
The fingerprint of the .classpath entries
Top

GetInterfaceNames (character, table)

Purpose: Returns the names of the interfaces that inherit from the
given base type
Notes: Replaces the GetInterfacesInClassPath scans (SCL-5870)

Parameters:
pcBaseType CHARACTER
The base type the returned interfaces need to match, an empty string matches every interface
ttClassNames TEMP-TABLE ttClassNames
OUTPUT Temp-Table with the list of matching interface names
Top

LoadClassPathEntries ()

Purpose: Loads the entries of the .classpath file into ttClassPathEntry
Notes: Uses ClassHelper:GetClassPathEntries, so the .classpath file
is located the same way as by the ClassHelper scans
(ClassHelper:ClassPathFile). ClassPathFile). Without a .classpath file (or
without entries) the working directory is scanned, as the
ClassHelper scans do

Top

ObtainSessionInfoHandler (Object, JsonObject)

Purpose: Event handler for SessionInfoProvider:ObtainSessionInfo
Notes: Adds the "Class Name Cache" section

Parameters:
sender Progress.Lang.Object
The object that raised the event
poSessionInfo Progress.Json.ObjectModel.JsonObject
The JsonObject with the session info
Top

Refresh ()

Purpose: Rescans the class path now, ignoring the persistent cache
Notes: Writes the result when an IClassNameCacheWriter is registered

Top

Refresh (character)

Purpose: Rescans a single .classpath entry
Notes: Typically the project directory after a build, while the
framework procedure library stays as it is. Writes the result
when an IClassNameCacheWriter is registered. When the cache
is not loaded yet, the whole cache is loaded instead

Parameters:
pcClassPathEntry CHARACTER
The .classpath entry (DirectoryEntry or ProcedureLibraryEntry, as written) to rescan
Top

Scan ()

Purpose: Scans the class path and replaces the content of the cache
Notes:

Top

ScanClassPathEntry (character, character, character, logical)

Purpose: Scans a single .classpath entry and adds its classes to the
cache
Notes: Mirrors ClassHelper:GetClassNamesNoDotNet and
GetClassNamesInProcedureLibrary: the class name is derived
from the r-code file name (relative to the directory, plus
the prefix of the entry; procedure libraries carry no prefix),
Consultingwerk.SmartComponents.* is skipped unless
ClassHelper:ForceIncludeSmartComponents ForceIncludeSmartComponents is set, and a class
already found in an earlier entry wins. R-code that cannot be
processed (e.g. the "Invalid version, 1202" r-code of
SCL-4308) is skipped

Parameters:
pcEntry CHARACTER
The .classpath entry as written
pcFullPathName CHARACTER
The full path name of a directory entry
pcPrefix CHARACTER
The prefix (name space/package name) to add to the class names of a directory entry
plProcedureLibrary LOGICAL
Logical value indicating if the entry is a procedure library
Top

UpdateCacheInfo (integer)

Purpose: Creates or updates the header record of the cache
Notes: Requires LoadClassPathEntries to be called before

Parameters:
piScanDurationMs INTEGER
The duration of the scan in milliseconds
Top

CHARACTER ValidateCache ()

Purpose: Validates the content read from the persistent cache against
the current session
Notes: The cache is rejected when the cache version differs, the
.classpath entries differ, it contains no classes, or it was
created without classes the current session requires (.NET
dependent classes, Consultingwerk.SmartComponents.*)

Returns CHARACTER
The reason for rejecting the cache, an empty string when the cache is valid
Top

WriteCache ()

Purpose: Writes the cache through the IClassNameCacheWriter, when one
is registered
Notes:

Top

WriteLogMessage (character)

Purpose: Writes a message to the ClassNameCache log entry type
Notes:

Parameters:
pcMessage CHARACTER
The message to write


Constructor Detail
Top

ClassNameCacheService ()

Purpose: Constructor for the ClassNameCacheService class
Notes:



Property Detail
Top

INTEGER CacheVersion


Returns INTEGER
Top

Consultingwerk.Util.ClassCache.ClassNameCacheSourceEnum ContentSource


Returns Consultingwerk.Util.ClassCache.ClassNameCacheSourceEnum
Top

LOGICAL IncludeDotNetDependentClasses


Returns LOGICAL
Top

LOGICAL IsLoaded


Returns LOGICAL
Top

Consultingwerk.Util.ClassCache.ClassNameCacheSourceEnum LastRequestSource


Returns Consultingwerk.Util.ClassCache.ClassNameCacheSourceEnum


ProDataset Detail

ProDataset dsClassNameCache

Member tables: ttClassNameCacheInfo, ttClassNameCache


Temp-Table Detail

Temp-Table ttClassNameCache

Defined in:

Temp-Table ttClassNameCacheInfo

Defined in:

Temp-Table ttClassNames

Defined in:


©2006-2026 Consultingwerk Ltd.         info@consultingwerk.de         http://www.consultingwerk.de       10.10.2026 15:35:10