37.8.3 The Proto-Object "object"

The proto-object object provides basic methods that are available to all other objects by delegation:

super(?Object)
Object is a parent (a super-object) of Self. Note that any other definition of super(Object) are translated to the universal method super/2.


sub(?Object)
Object is a child (a sub-object) of Self.


self(?Self)
Unifies Self with “self”. Please note: this method is inlined when possible.
object(?Object)
One of the defined objects in the system is Object.
dynamic
Self is a dynamic object.
static
Self is a static object.
dynamic ?Name/?Arity
Name/Arity is a dynamic method of Self.
static ?Name/?Arity
Name/Arity is a static method of Self.
new(?Object)
Creates a new dynamic Object. Self will be the prototype of Object. Object can be a compound term, an atom, or a variable. In the last case the method generates a unique name for Object.
+SomeObject :: new(?NewObject,+Supers)
NewObject is created with Supers specifying the super objects (prototypes). Supers is a list containing super specifications. A super specification is either an object identifier or a pair Object-NotInheritList where NotInheritList specifies methods not to inherit from Object. NewObject could be an atom, variable, or compound term whose arguments are distinct variables.
instance(?Instance)
Creates a new instance Instance. Self will be the class of Instance. Instance can be a compound term, an atom, or a variable. In the last case the method generates a unique name for Instance.
has_instance(?Instance)
Self has the instance Instance.
has_attribute(?AttributeSpec)
Self has the attribute AttributeSpec, locally defined or inherited. AttributeSpec is on the format Name/Arity.


get(+Attribute)
Gets the attribute value(s) of the attribute specified by the principal functor of Attribute. The value(s) are unified with the argument(s) of Attribute. Please note: this method is inlined when possible.


set(+Attribute)
Sets the attribute value(s) of the attribute specified by the principal functor of Attribute. The value(s) are taken from the argument(s) of Attribute. Please note: this method is inlined when possible.
assert(+Fact)
assert(+Fact, -Ref)
asserta(+Fact)
asserta(+Fact, -Ref)
assertz(+Fact)
assertz(+Fact, -Ref)
Asserts a new Fact in Self. If Self is static, the name and arity of Fact must be declared as a dynamic method. asserta places Fact before any old facts. The other forms place it after any old facts. A pointer to the asserted fact is returned in the optional argument Ref, and can be used by the Prolog built-in predicates erase/1 and instance/2.
retract(+Fact)
Retracts a Fact from Self. If Self is static, the name and arity of Fact must be declared as a dynamic method.
update(+Fact)
Replaces the first fact with the same name and arity as Fact in Self by Fact. If Self is static, the name and arity of Fact must be declared as a dynamic method.
retractall(?Head)
Removes facts from Self that unify with Head. If Self is static, the name and arity of Fact must be declared as a dynamic method.
abolish
Abolishes Self if dynamic.
augment(?ObjectBody)
augmenta(?ObjectBody)
augmentz(?ObjectBody)
ObjectBody, having the form { sentence-1 & ... & sentence-n }, is added to Self. augmenta places the new clauses before any old clauses. The other forms place it after any old clauses.