[operations] [attributes] [fields] [template] [definition]
[implementation] [documentation]
To use the search tool you need to use a browser which supports JAVA (c)

[next] [prev] [superclass] [next peer] [prev peer] [subclass] [index] [hierarchy]

ClassWithMethods

inherits from Object

Object <- ClassWithMethods



Operations

Get list of all operations

ClosestCommonAncestor
HasClassMethod
IsImplementationSuperclass


Attributes

Get list of all attributes

Class ClassWithMethods defines no new attributes.


Fields

Field Type
ClassWithMethods: implementationSuperOffset: UnsignedShort
objectMethodOffset: UnsignedShort


Instance template

instance ClassWithMethods tag;
implementationSuperOffset: 0;
objectMethodOffset: 0;
end instance;

Class definition

 
Define Class ClassWithMethods;
    inherits from Object;
    uses extra;

    field implementationSuperOffset: UnsignedShort;     
        // offset to implementation superclasses (in extra data)
        // offset is from start of object
    field objectMethodOffset: UnsignedShort;        
        // offset to object method data (in extra data)
        // offset is from start of object

    // inheritance

    operation IsImplementationSuperclass(classNumber: ClassNumber): Boolean;
        // Call to see if a particular class number is one of this 
        // class's implementation superclasses.  This is not usually 
        // an interesting check; ClassImplements is much more common.
        // rarely override
    
    intrinsic ClosestCommonAncestor(classNumber1: ClassNumber;
            classNumber2: ClassNumber): ClassNumber;
        // returns class number of the deepest class that both classes
        // inherit from

    // methods

    operation HasClassMethod(operationNumber: ClassOperationNumber): Boolean, noFail;
        // Call to look for a class operation for a given operation 
        // number in this class only.

end class;