Top Method Summary
Options Name Purpose
CHARACTER ClassName (character, character) Returns the full class name based on package and class name
Progress.Lang.Class ClassNameToClass (character, logical) Returns the Progress.Lang.Class reference for a type referenced by either the type name (ie "Consultingwerk.CharacterType" )
CHARACTER ClassNameToFile (character) Converts a class name into the source code file name (.cls)
Progress.Lang.Class FileNameToClass (character) Returns the Progress.Lang.Class reference for a type referenced by either the .cls or .r file name
Progress.Lang.Class FileNameToClass (character, logical) Returns the Progress.Lang.Class reference for a type referenced by either the .cls or .r file name
CHARACTER FileNameToClassName (character) Returns the Class Name for a type referenced by either the .cls or .r file name
GetClassNames (character, character, logical, character, character, table) Returns all class names found in the specified root directory that match the specified base type (class or interface), optionally including abstract classes
GetClassNames (character, character, logical, character, table) Returns all class names found in the specified root directory that match the specified base type (class or interface), optionally including abstract classes
GetClassNames (character, character, table) Returns all class names found in the specified root directory that match the specified base type (class or interface)
GetClassNames (character, table) Returns all class names found in the specified root directory that match the specified base type (class or interface)
GetClassNames (table) Returns all class names found in the specified root directory that match the specified base type, optionally including abstract classes
LOGICAL GetClassNamesFromExternalRuntime (character, character, logical, character) Starts a separate Progress client to perform the Class name lookup.
GetClassNamesInClassPath (character, logical, table) Returns all class names found in the directories specified in the .classpath file and that match the specified base type, optionally including or excluding abstract classes
GetClassNamesInClassPath (character, table) Returns all class names found in the directories specified in the .classpath file and that match the specified base type
GetClassNamesInClassPathNoDotNet (character, logical, table) Returns all class names found in the directories specified in the .classpath file and that match the specified base type, optionally including or excluding abstract classes
GetClassNamesInProcedureLibrary (character, character, logical, table) Returns all class names found in the specified root directory that match the specified base type (class or interface), optionally including abstract classes
GetClassNamesNoDotNet (character, character, logical, character, table) Returns all class names found in the specified root directory that match the specified base type (class or interface), optionally including abstract classes
Progress.Json.ObjectModel.JsonArray GetClassPathEntries () Returns the entries of the .classpath file
GetInterfaces (character, character, character, table) Returns all interface names found in the specified root directory that match the specified base type
GetInterfaces (character, character, table) Returns all interface names found in the specified root directory that match the specified base type
GetInterfaces (character, table) Returns all interface names found in the current working directory that match the specified base type
GetInterfaces (table) Returns all interface names found in the current working directory
GetInterfacesInClassPath (character, table) Returns all interface names found in the directories specified in the .classpath file that match the specified base type
GetInterfacesInClassPath (table) Returns all interface names found in the directories specified in the .classpath file
GetInterfacesInClassPathNoDotNet (character, table) Returns all interface names found in the directories specified in the .classpath file that match the specified base type
GetInterfacesInProcedureLibrary (character, character, table) Returns all interface names found in the specified procedure library that match the specified base type
GetInterfacesNoDotNet (character, character, character, table) Returns all interface names found in the specified root directory that match the specified base type
LOGICAL HasStaticPropertyOfType (Class, Class) Verifies if the given class type has a static property of the given type
LOGICAL IsAbstract (character) Returns true when the given class name is a valid abstract class
LOGICAL IsDotNetDependentRcode (character) Returns if the given r-code file references .NET types of the System namespace
LOGICAL IsInCallStack (Class) Returns if an instance of the given class is in the call stack
LOGICAL IsInCallStack (Class, character) Returns if an instance of the given class is in the call stack
INTEGER NumInstances (Class) Returns the current number of instances of the given class
CHARACTER ShortClassName (character) Returns the ShortClassName for the given Class name
CHARACTER ShortClassName (Class) Returns the ShortClassName for the given Class object
CHARACTER ShortPackageName (character) Returns the class name with a shortened package name
CHARACTER ShortPackageName (Class) Returns the class name with a shortened package name
Consultingwerk.ClassName SplitClassName (character) Splits a full class name into package and class name
LOGICAL ValidateClassName (character) Validates a class name for invalid characters
LOGICAL ValidatePackageName (character) Validates a package name for invalid characters
WriteClassPath () Writes the entries of the .classpath file in a tabular fashion to the log file
WriteClassPath (ILoggingStream) Writes the entries of the .classpath file in a tabular fashion to the given logging stream
WriteLogMessage (character) Writes a message to the logfile

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

Top Property Summary
Options Name Purpose
CHARACTER ClassPathFile
LOGICAL ForceIncludeSmartComponents
CHARACTER LogfileName
LOGICAL UseExternalRuntimeForGetClassNames
LOGICAL UseRcodeOnlyForExternalRuntime


Method Detail
Top

CHARACTER ClassName (character, character)

Purpose: Returns the full class name based on package and class name
Notes: Package may be empty

Parameters:
pcPackageName CHARACTER
The name of the package
pcClassName CHARACTER
The name of the class
Returns CHARACTER
The full class name
Top

Progress.Lang.Class ClassNameToClass (character, logical)

Purpose: Returns the Progress.Lang.Class reference for a type referenced
by either the type name (ie "Consultingwerk.CharacterType" )
Notes:

Parameters:
pcTypeName CHARACTER
The file name
plThrowExceptionIfNotType LOGICAL
If TRUE, an exception is thrown if the name does not represent an OOABL type
Returns Progress.Lang.Class
The Progress.Lang.Class reference of the matching type
Top

CHARACTER ClassNameToFile (character)

Purpose: Converts a class name into the source code file name (.cls)
Notes:

Parameters:
pcClassName CHARACTER
The ClassName to convert into a source code file name
Returns CHARACTER
The file name of the class source code
Top

Progress.Lang.Class FileNameToClass (character)

Purpose: Returns the Progress.Lang.Class reference for a type referenced
by either the .cls or .r file name
Notes:

Parameters:
pcFileName CHARACTER
The file name
Returns Progress.Lang.Class
The Progress.Lang.Class reference of the matching type
Top

Progress.Lang.Class FileNameToClass (character, logical)

Purpose: Returns the Progress.Lang.Class reference for a type referenced
by either the .cls or .r file name
Notes:

Parameters:
pcFileName CHARACTER
The file name
plThrowExceptionIfNotType LOGICAL
If TRUE, an exception is thrown if the filename does not represent an OOABL type
Returns Progress.Lang.Class
The Progress.Lang.Class reference of the matching type
Top

CHARACTER FileNameToClassName (character)

Purpose: Returns the Class Name for a type referenced by either the .cls or
.r file name
Notes: Does not verify if it's a valid class name

Parameters:
pcFileName CHARACTER
The file name
Returns CHARACTER
The resulting class name
Top

GetClassNames (character, character, logical, character, character, table)

Purpose: Returns all class names found in the specified root directory
that match the specified base type (class or interface), optionally
including abstract classes
Notes: The routine is designed to run on a windows client only, as it
uses the .NET Framework

Parameters:
pcBaseType CHARACTER
The base type (class or interface) that the returned classes need to match
pcPath CHARACTER
The directory to look in (including sub folders)
plIncludeAbstract LOGICAL
Include abstract classes in the search
pcPrefix CHARACTER
The prefix (name space/package name) to add to the returned class names
pcSubdirectory CHARACTER
The sub directory relatively to the pcPath
ttClassNames TEMP-TABLE ttClassNames
OUTPUT Temp-Table with the list of matching class names
Top

GetClassNames (character, character, logical, character, table)

Purpose: Returns all class names found in the specified root directory
that match the specified base type (class or interface), optionally
including abstract classes
Notes: The routine is designed to run on a windows client only, as it
uses the .NET Framework

Parameters:
pcBaseType CHARACTER
The base type (class or interface) that the returned classes need to match
pcPath CHARACTER
The directory to look in (including sub folders)
plIncludeAbstract LOGICAL
Include abstract classes in the search
pcPrefix CHARACTER
The prefix (name space/package name) to add to the returned class names
ttClassNames TEMP-TABLE ttClassNames
OUTPUT Temp-Table with the list of matching class names
Top

GetClassNames (character, character, table)

Purpose: Returns all class names found in the specified root directory
that match the specified base type (class or interface)
Notes: The routine is designed to run on a windows client only, as it
uses the .NET Framework

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

GetClassNames (character, table)

Purpose: Returns all class names found in the specified root directory
that match the specified base type (class or interface)
Notes: The routine is designed to run on a windows client only, as it
uses the .NET Framework

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

GetClassNames (table)

Purpose: Returns all class names found in the specified root directory
that match the specified base type, optionally including abstract
classes
Notes: The routine is designed to run on a windows client only, as it
uses the .NET Framework, uses Progress.Lang.Object as the base
type for the ClassLookup through GetClassNames (pcBaseType, OUTPUT TABLE ttClassNames)

Parameters:
ttClassNames TEMP-TABLE ttClassNames
OUTPUT Temp-Table with the list of matching class names
Top

LOGICAL GetClassNamesFromExternalRuntime (character, character, logical, character)

Purpose: Starts a separate Progress client to perform the Class name lookup.
Notes: This appears to increase the reliability (reduction of AVM crashes)

Parameters:
pcBaseType CHARACTER
The base type (class or interface) that the returned classes need to match
pcPath CHARACTER
The directory to look in (including sub folders)
plIncludeAbstract LOGICAL
Include abstract classes in the search
pcPrefix CHARACTER
The prefix (name space/package name) to add to the returned class names
Returns LOGICAL
Logical value indicating if the external runtime could be started
Top

GetClassNamesInClassPath (character, logical, table)

Purpose: Returns all class names found in the directories specified in the
.classpath file and that match the specified base type, optionally
including or excluding abstract classes
Notes: The routine is designed to run on a windows client only, as it
uses the .NET Framework

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

GetClassNamesInClassPath (character, table)

Purpose: Returns all class names found in the directories specified in the
.classpath file and that match the specified base type
Notes: The routine is designed to run on a windows client only, as it
uses the .NET Framework

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

GetClassNamesInClassPathNoDotNet (character, logical, table)

Purpose: Returns all class names found in the directories specified in the
.classpath file and that match the specified base type, optionally
including or excluding abstract classes
Notes: The routine is an alternative to GetClassNamesInClassPath and does
not require access to the .NET Framework (suitable for 10.2B AppServer
and UNIX)

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

GetClassNamesInProcedureLibrary (character, character, logical, table)

Purpose: Returns all class names found in the specified root directory
that match the specified base type (class or interface), optionally
including abstract classes
Notes: The routine is designed to run on a windows client only, as it
uses the .NET Framework

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

GetClassNamesNoDotNet (character, character, logical, character, table)

Purpose: Returns all class names found in the specified root directory
that match the specified base type (class or interface), optionally
including abstract classes
Notes: The routine is an alternative to GetClassNames and does not require
access to the .NET Framework (suitable for 10.2B AppServer and
UNIX or PASOE which does not support .NET on Windows as well)

Parameters:
pcBaseType CHARACTER
The base type (class or interface) that the returned classes need to match
pcPath CHARACTER
The directory to look in (including sub folders)
plIncludeAbstract LOGICAL
Include abstract classes in the search
pcPrefix CHARACTER
The prefix (name space/package name) to add to the returned class names
ttClassNames TEMP-TABLE ttClassNames
OUTPUT Temp-Table with the list of matching class names
Top

Progress.Json.ObjectModel.JsonArray GetClassPathEntries ()

Purpose: Returns the entries of the .classpath file
Notes: SCL-5842. Returns one JsonObject per entry with a directory or
procedureLibrary property (the directory, when the entry defines
both) and the fullPathName property. Returns an empty JsonArray,
when the .classpath file (ClassHelper:ClassPathFile) is not found
in the PROPATH

Returns Progress.Json.ObjectModel.JsonArray
The JsonArray with the entries of the .classpath file
Top

GetInterfaces (character, character, character, table)

Purpose: Returns all interface names found in the specified root
directory that match the specified base type
Notes: The routine is designed to run on a windows client only, as it
uses the .NET Framework. Mirrors the r-code scan of
GetClassNames, but keeps only types that are interfaces

Parameters:
pcBaseType CHARACTER
The base type the returned interfaces need to match, an empty string matches every interface
pcPath CHARACTER
The directory to look in (including sub folders)
pcPrefix CHARACTER
The prefix (name space/package name) to add to the returned interface names
ttClassNames TEMP-TABLE ttClassNames
OUTPUT Temp-Table with the list of matching interface names
Top

GetInterfaces (character, character, table)

Purpose: Returns all interface names found in the specified root
directory that match the specified base type
Notes: The routine is designed to run on a windows client only, as it
uses the .NET Framework

Parameters:
pcBaseType CHARACTER
The base type the returned interfaces need to match, an empty string matches every interface
pcPath CHARACTER
The directory to look in (including sub folders)
ttClassNames TEMP-TABLE ttClassNames
OUTPUT Temp-Table with the list of matching interface names
Top

GetInterfaces (character, table)

Purpose: Returns all interface names found in the current working
directory that match the specified base type
Notes: The routine is designed to run on a windows client only, as it
uses the .NET Framework

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

GetInterfaces (table)

Purpose: Returns all interface names found in the current working
directory
Notes: The routine is designed to run on a windows client only, as it
uses the .NET Framework

Parameters:
ttClassNames TEMP-TABLE ttClassNames
OUTPUT Temp-Table with the list of matching interface names
Top

GetInterfacesInClassPath (character, table)

Purpose: Returns all interface names found in the directories specified
in the .classpath file that match the specified base type
Notes: The routine is designed to run on a windows client only, as it
uses the .NET Framework. Mirrors GetClassNamesInClassPath, but
keeps only types that are interfaces

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

GetInterfacesInClassPath (table)

Purpose: Returns all interface names found in the directories specified
in the .classpath file
Notes: The routine is designed to run on a windows client only, as it
uses the .NET Framework

Parameters:
return_ttClassNames TEMP-TABLE return_ttClassNames
OUTPUT Temp-Table with the list of matching interface names
Top

GetInterfacesInClassPathNoDotNet (character, table)

Purpose: Returns all interface names found in the directories specified
in the .classpath file that match the specified base type
Notes: SCL-5870: The routine is an alternative to GetInterfacesInClassPath
and does not require access to the .NET Framework (suitable for
UNIX or PASOE). Mirrors GetClassNamesInClassPathNoDotNet, but
keeps only types that are interfaces

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

GetInterfacesInProcedureLibrary (character, character, table)

Purpose: Returns all interface names found in the specified procedure
library that match the specified base type
Notes: Mirrors GetClassNamesInProcedureLibrary, but keeps only types
that are interfaces. Does not require access to the .NET
Framework (SCL-5870)

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

GetInterfacesNoDotNet (character, character, character, table)

Purpose: Returns all interface names found in the specified root
directory that match the specified base type
Notes: SCL-5870: The routine is an alternative to GetInterfaces and does
not require access to the .NET Framework (suitable for UNIX or
PASOE). Mirrors GetClassNamesNoDotNet, but keeps only types that
are interfaces. Like GetClassNamesNoDotNet it skips r-code that
references .NET types of the System namespace, as .NET dependent
types cannot be loaded without .NET (see IsDotNetDependentRcode)

Parameters:
pcBaseType CHARACTER
The base type the returned interfaces need to match, an empty string matches every interface
pcPath CHARACTER
The directory to look in (including sub folders)
pcPrefix CHARACTER
The prefix (name space/package name) to add to the returned interface names
ttClassNames TEMP-TABLE ttClassNames
OUTPUT Temp-Table with the list of matching interface names
Top

LOGICAL HasStaticPropertyOfType (Class, Class)

Purpose: Verifies if the given class type has a static property of the
given type
Notes:

Parameters:
poClassType Progress.Lang.Class
The class to look for the property in
poPropertyType Progress.Lang.Class
The type of property to look for
Returns LOGICAL
Logical value indicating if the class has a static property of the given type
Top

LOGICAL IsAbstract (character)

Purpose: Returns true when the given class name is a valid abstract class
Notes: Returns false when the class is not abstract or the class name is invalid

Parameters:
pcClassName CHARACTER
The name of the class to test
Returns LOGICAL
Logical value indicating if the class name represents a valid abstract class
Top

LOGICAL IsDotNetDependentRcode (character)

Purpose: Returns if the given r-code file references .NET types of the
System namespace
Notes: SCL-5872: Used by GetClassNamesNoDotNet and GetInterfacesNoDotNet
to skip .NET dependent r-code before Progress.Lang.Class:GetClass
is called, as loading such r-code without .NET crashed the AVM in
several releases. A plain search for the text "System." also
matched ABL type names, e.g. every class of a package named System
(Consultingwerk.SmartFramework.System.MessageBusinessEntity).
The r-code stores the name of a .NET type as a separate string
(usually assembly qualified, "System.Drawing.Point, System.Drawing,
Version=..."), so the text is preceded by a binary zero, a blank
or a delimiter such as "[" or ",". In an ABL type name the text is
preceded by the period of the package name or by a character of
the name (MessageSubSystem.cls). Occurrences preceded by a period
or a character that is valid in an ABL class name are ignored.
A string literal starting with "System." is still reported.
Before OpenEdge 12.2 (no INDEX on MEMPTR) the plain text search
is used.

Parameters:
pcFileName CHARACTER
The name of the r-code file
Returns LOGICAL
Logical value indicating if the r-code references .NET types of the System namespace
Top

LOGICAL IsInCallStack (Class)

Purpose: Returns if an instance of the given class is in the call stack
Notes: Checks by investigating the PROGRAM-NAME() function

Parameters:
poType Progress.Lang.Class
The type to locate in the call stack
Returns LOGICAL
Logical value indicating if an instance of the given class is in the call stack
Top

LOGICAL IsInCallStack (Class, character)

Purpose: Returns if an instance of the given class is in the call stack
Notes: Checks by investigating the PROGRAM-NAME() function

Parameters:
poType Progress.Lang.Class
The type to locate in the call stack
pcMethodName CHARACTER
The name of the method
Returns LOGICAL
Logical value indicating if an instance of the given class is in the call stack
Top

INTEGER NumInstances (Class)

Purpose: Returns the current number of instances of the given class
Notes: Iterates the SESSION:FIRST object chain

Parameters:
poClass Progress.Lang.Class
The class to count instances from
Returns INTEGER
The number of instances of the class
Top

CHARACTER ShortClassName (character)

Purpose: Returns the ShortClassName for the given Class name
Notes: The short name is the class name without the package

Parameters:
pcClassName CHARACTER
The class name to return the short name for
Returns CHARACTER
The short name of the class
Top

CHARACTER ShortClassName (Class)

Purpose: Returns the ShortClassName for the given Class object
Notes: The short name is the class name without the package

Parameters:
poClass Progress.Lang.Class
The class to return the short name for
Returns CHARACTER
The short name of the class
Top

CHARACTER ShortPackageName (character)

Purpose: Returns the class name with a shortened package name
Notes: The package name will the build based on upper case letters
of the package name only. The SmartBusinessEntityAdapter will
be returned as C.SC.I.SmartBusinessEntityAdapter

Parameters:
pcClassName CHARACTER
The class reference to return the shortened class/package name for
Returns CHARACTER
The shortened class/package name
Top

CHARACTER ShortPackageName (Class)

Purpose: Returns the class name with a shortened package name
Notes: The package name will the build based on upper case letters
of the package name only. The SmartBusinessEntityAdapter will
be returned as C.SC.I.SmartBusinessEntityAdapter

Parameters:
poClass Progress.Lang.Class
The class reference to return the shortened class/package name for
Returns CHARACTER
The shortened class/package name
Top

Consultingwerk.ClassName SplitClassName (character)

Purpose: Splits a full class name into package and class name
Notes: Performs no validation of type, just splits based on last period

Parameters:
pcFullClassName CHARACTER
The full class name to split
Returns Consultingwerk.ClassName
The Consultingwerk.ClassName that represents the parts of the class name
Top

LOGICAL ValidateClassName (character)

Purpose: Validates a class name for invalid characters
Notes:

Parameters:
pcClassName CHARACTER
The class name to validate
Returns LOGICAL
Logical value indicating if the class name is valid
Top

LOGICAL ValidatePackageName (character)

Purpose: Validates a package name for invalid characters
Notes:

Parameters:
pcClassName CHARACTER
The class name to validate
Returns LOGICAL
Logical value indicating if the class name is valid
Top

WriteClassPath ()

Purpose: Writes the entries of the .classpath file in a tabular fashion
to the log file
Notes: SCL-5842. Forwards to LogManager:WriteClassPath (), which writes
to the ILoggingStream registered with the LogManager

Top

WriteClassPath (ILoggingStream)

Purpose: Writes the entries of the .classpath file in a tabular fashion
to the given logging stream
Notes: SCL-5842. The text implementation of ILoggingStream:WriteClassPath ()

Parameters:
poLoggingStream Consultingwerk.Util.LoggingStream.ILoggingStream
The ILoggingStream to write to
Top

WriteLogMessage (character)

Purpose: Writes a message to the logfile
Notes: Does nothing, when the ClassHelper:LogfileName is not set

Parameters:
pcMessage CHARACTER
The message to be written to the logfile


Constructor Detail
Top

ClassHelper ()

Purpose: Constructor for the ClassHelper class
Notes: Protected default constructor



Property Detail
Top

CHARACTER ClassPathFile


Returns CHARACTER
Top

LOGICAL ForceIncludeSmartComponents


Returns LOGICAL
Top

CHARACTER LogfileName


Returns CHARACTER
Top

LOGICAL UseExternalRuntimeForGetClassNames


Returns LOGICAL
Top

LOGICAL UseRcodeOnlyForExternalRuntime


Returns LOGICAL


Temp-Table Detail

Temp-Table return_ttClassNames

Defined in:

Temp-Table ttClassNames

Defined in:


©2006-2026 Consultingwerk Ltd.         info@consultingwerk.de         http://www.consultingwerk.de       19.09.2026 10:19:12