
class Progress.Lang.Class
inherits Progress.Lang.Object:

   define property Package as character
      get.
   
   define property SuperClass as Progress.Lang.Class
      get.
   
   define property TypeName as character
      get.
      
   constructor private Class():
   end constructor.

   /* the actual GetPropertyValue() return type is variable (it depends on the */
   /* property, but we are encoding it as Object until we have a better solution */
   method public _polymorphic_ GetPropertyValue(input pname as character):
   end.
   
   method public _polymorphic_ GetPropertyValue(input pname as character,
      input index as _polymorphic_):
   end.
   
   method public _polymorphic_ GetPropertyValue(input obj-ref as Progress.Lang.Object, 
      input pname as character):
   end.
   
   method public _polymorphic_ GetPropertyValue(input obj-ref as Progress.Lang.Object, 
      input pname as character,
      input index as _polymorphic_):
   end.
   
   method public static Progress.Lang.Class GetClass(input clsname as character):
   end method.
   
   method public character GetEnumNames():
   end method.
   
   method public character GetEnumValues():
   end method.

   method public logical HasStatics():
   end method.
   
   method public logical HasWidgetPool():
   end method.
   
   /* the actual Invoke() return type is variable (it depends on the */
   /* method invoked, but we are encoding it as Object until we have */
   /* a better solution */
   method public _polymorphic_ Invoke(input obj-instance as Progress.Lang.Object,
                                             input method-name as character):
   end method.
   
   method public _polymorphic_ Invoke(input obj-instance as Progress.Lang.Object,
                                             input method-name as character,
                                             input parm-list as Progress.Lang.ParameterList):
   end method.
   
   method public _polymorphic_ Invoke(input method-name as character):
   end method.
   
   method public _polymorphic_ Invoke(input method-name as character,
                                             input parm-list as Progress.Lang.ParameterList):
   end method.
   
   method public logical IsA(input obj-instance as Progress.Lang.Class):
   end method.

   method public logical IsA(input type-name as character):
   end method.

   method public logical IsAbstract():
   end method.
   
   method public logical IsEnum():
   end method.
   
   method public logical IsFinal():
   end method.
   
   method public logical IsFlagsEnum():
   end method.
   
   method public logical IsGeneric():
   end method.
   
   method public logical IsIndexed():
   end method.
   
   method public logical IsInterface():
   end method.
   
   method public logical IsSerializable():
   end method.
   
   method public Progress.Lang.Object New():
   end method.
   
   method public Progress.Lang.Object New(input parm-list as Progress.Lang.ParameterList):
   end method.
   
   method public Progress.Reflect.Constructor GetConstructor(input parms as Progress.Lang.ParameterList):
   end method.
   
   method public Progress.Reflect.Constructor GetConstructor(input flags as Progress.Reflect.Flags, 
      input parms as Progress.Lang.ParameterList):
   end method.
   
   method public Progress.Reflect.Constructor extent GetConstructors():
   end method.
   
   method public Progress.Reflect.Constructor extent GetConstructors(input flags as Progress.Reflect.Flags):
   end method.
   
   method public character GetEnumName(input value as int64):
   end method.
   
   method public int64 GetEnumValue(input name as character):
   end method.
   
   method public Progress.Reflect.Event GetEvent(input name as character):
   end method.
   
   method public Progress.Reflect.Event GetEvent(input name as character, 
      input flags as Progress.Reflect.Flags):
   end method.
   
   method public Progress.Reflect.Event extent GetEvents():
   end method.
   
   method public Progress.Reflect.Event extent GetEvents(input flags as Progress.Reflect.Flags):
   end method.
   
   method public Progress.Lang.Class extent GetInterfaces():
   end method.
   
   method public Progress.Reflect.Method GetMethod(input method-name as character, 
      input parms as Progress.Lang.ParameterList):
   end method.
   
   method public Progress.Reflect.Method GetMethod(input method-name as character,
      input flags as Progress.Reflect.Flags, 
      input parms as Progress.Lang.ParameterList):
   end method.
   
   method public Progress.Reflect.Method extent GetMethods():
   end method.
   
   method public Progress.Reflect.Method extent GetMethods(input flags as Progress.Reflect.Flags):
   end method.
   
   method public Progress.Reflect.Property extent GetProperties():
   end method.
   
   method public Progress.Reflect.Property extent GetProperties(input flags as Progress.Reflect.Flags):
   end method.
   
   method public Progress.Reflect.Property GetProperty(input name as character):
   end method.
   
   method public Progress.Reflect.Property GetProperty(input name as character,
      input flags as Progress.Reflect.Flags):
   end method.
   
   method public Progress.Reflect.Variable extent GetVariables():
   end method.
   
   method public Progress.Reflect.Variable extent GetVariables(input flags as Progress.Reflect.Flags):
   end method.
   
   method public Progress.Reflect.Variable GetVariable(input name as character):
   end method.
   
   method public Progress.Reflect.Variable GetVariable(input name as character,
      input flags as Progress.Reflect.Flags):
   end method.
   
   method public void SetPropertyValue(input pname as character,
      input value as _polymorphic_):
   end.
   
   method public void SetPropertyValue(input pname as character,
      input index as _polymorphic_,
      input value as _polymorphic_):
   end.
   
   method public void SetPropertyValue(input obj-ref as Progress.Lang.Object, 
      input pname as character, 
      input value as _polymorphic_):
   end.
   
   method public void SetPropertyValue(input obj-ref as Progress.Lang.Object, 
      input pname as character,
      input index as _polymorphic_,
      input value as _polymorphic_):
   end.
   
end class.
