Try OpenEdge Now
skip to main content
ABL Reference
Class Properties and Methods Reference : OriginatingClass property
 

OriginatingClass property

Returns a Progress.Lang.Class instance representing the class that the Progress.Reflect.Constructor, Progress.Reflect.Event, Progress.Reflect.Method, or Progress.Reflect.Variable object was retrieved from.
Data type: Progress.Lang.Class class
Access: PUBLIC Read-only
Applies to: Progress.Reflect.Constructor class, Progress.Reflect.Event class, Progress.Reflect.Method class, Progress.Reflect.Variable class
Note that the DeclaringClass property does not necessarily match the OrignatingClass property. For example, consider the classes defined in the following code fragment:
CLASS ClassA:
METHOD PUBLIC VOID MethodA:
MESSAGE "A method has been called." VIEW-AS ALERT-BOX.
END METHOD.
END CLASS.

CLASS ClassB INHERITS ClassA:
END CLASS.

CLASS ClassC INHERITS ClassB:
METHOD PUBLIC OVERRIDE VOID MethodA:
MESSAGE "An overriden method has been called." VIEW-AS ALERT-BOX.
END METHOD.
END CLASS.
Calling GetMethod("MethodA", params) on instances of Progress.Lang.Class derived from each of the three classes would return Progress.Reflect.Method instances with the DeclaringClass properties set as shown in the table:
Progress.Lang.Class instance
Class indicated by the DeclaringClass property
Class indicated by the OriginatingClass property
ClassA
ClassA
ClassA
ClassB
ClassA
ClassB
ClassC
ClassC
ClassC
The DeclaringClass property for ClassB returns ClassA because MethodA is defined in ClassA and not overidden by ClassB, whereas the OriginatingClass property returns ClassB. The OriginatingClass property returns the name of the class associated with the Progress.Lang.Class instance that you obtained the Progress.Reflect.Method instance from.
See also: DeclaringClass property