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.