This enumeration describes the type of class members you want as results from GetConstructor(), GetConstructors(), GetEvent(), GetEvents(), GetMethod(), GetMethods(), GetProperty(), GetProperties(), GetVariable(), or GetVariables(). Because Progress.Reflect.Flags is a flag enumeration, multiple flags can be set at one time.
The members for Progress.Reflect.Flags can be thought of as three groups:
Access mode flags: Public, Protected, Private
Scope flags: Static, Instance
Class-level flags: DeclaredOnly
No results will be returned unless you're using at least one flag from the access mode set and one flag from the scope set are indicated. (The exception to this is the GetConstructor() method, which will raise an error if the Static flag is set. See the GetConstructor( ) method entry for details.)
You can specify more than one flag from the access mode and scope groups. For example, setting both Public and Private flags for use with GetMethods() will return all methods that are either public or private as long as they satisfy any other criteria you indicate.
By default, a method used with a Progress.Reflect.Flags parameter will return class members from the entire class hierarchy unless DeclaredOnly is specified. (The exception to this is the GetConstructor() method, which will not return a super class's constructor. See the GetConstructor( ) method entry for details.)
Use bitwise OR to set multiple flags. This code fragment will set a Progress.Reflect.Flags instance to be used to indicate public, static class members:
DEFINE VARIABLE myFlags AS Progress.Reflect.Flags.
myFlags = Progress.Reflect.Flags:Public OR Progress.Reflect.Flags:Static.
Alternatively, use SetFlag( ) to set multiple flags. The following code achieves the same result as the previous example:
DEFINE VARIABLE myFlags AS Progress.Reflect.Flags.