Cold Help System: Programming: ColdC Reference Manual: Implementation: Methods: Access: Frobbed


Frobbed Method calls behave slightly different than any other access restriction. First, a frobbed method may only be called from a frob. That is, it must be called where the frob is the receiver, such as:

(<$object, #[]>).method()

If it is called in the normal way, it will be as if the frobbed method does not exist. For example, assume $obj_a is a parent of $obj_b. $obj_a defines the method .name() as a standard method, but $obj_b overrides it and defines it as a frobbed method. Calling $obj_b.name() will actually skip the frobbed method and execute the method defined on $obj_a where calling (<$obj_b, #[]>).name() will execute the frobbed method defined on $obj_b.

When a Frobbed Method passes back to an overridden method it will look first for another Frobbed method, and then for a standard method.

If a method is defined as non-overridable, it may still be overridden by a Frobbed Method. This allows for Frob Class objects to emulate real object systems in the database, with frobs.


the Cold Dark