Logtalk 2.26.2 files.
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1488 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
@@ -1,31 +0,0 @@
|
||||
|
||||
:- object(abstract_class,
|
||||
implements(abstract_classp),
|
||||
instantiates(class),
|
||||
specializes(object)).
|
||||
|
||||
|
||||
:- info([
|
||||
version is 2,
|
||||
author is 'Paulo Moura',
|
||||
date is 2000/7/24,
|
||||
comment is 'Default metaclass for all abstract classes.']).
|
||||
|
||||
|
||||
metaclass :-
|
||||
self(Self),
|
||||
instantiates_class(Class, Self),
|
||||
this(This),
|
||||
Class::ancestor(This).
|
||||
|
||||
|
||||
abstract_class :-
|
||||
self(Self),
|
||||
Self \= abstract_class.
|
||||
|
||||
|
||||
strict_instance :-
|
||||
fail.
|
||||
|
||||
|
||||
:- end_object.
|
@@ -1,28 +0,0 @@
|
||||
|
||||
:- protocol(abstract_classp).
|
||||
|
||||
|
||||
:- info([
|
||||
version is 1.0,
|
||||
author is 'Paulo Moura',
|
||||
date is 2000/7/24,
|
||||
comment is 'Default protocol for all abstract classes.']).
|
||||
|
||||
|
||||
:- public(metaclass/0).
|
||||
|
||||
:- mode(metaclass, zero_or_one).
|
||||
|
||||
:- info(metaclass/0, [
|
||||
comment is 'True if the object is a metaclass.']).
|
||||
|
||||
|
||||
:- public(abstract_class/0).
|
||||
|
||||
:- mode(abstract_class, zero_or_one).
|
||||
|
||||
:- info(metaclass/0, [
|
||||
comment is 'True if the object is an abstract class.']).
|
||||
|
||||
|
||||
:- end_protocol.
|
@@ -1,117 +0,0 @@
|
||||
|
||||
:- object(class,
|
||||
implements(classp),
|
||||
instantiates(class),
|
||||
specializes(abstract_class)).
|
||||
|
||||
|
||||
:- info([
|
||||
version is 1.1,
|
||||
author is 'Paulo Moura',
|
||||
date is 2005/3/12,
|
||||
comment is 'Default metaclass for all classes.']).
|
||||
|
||||
|
||||
:- private(instance_counter_/1).
|
||||
:- dynamic(instance_counter_/1).
|
||||
|
||||
:- mode(instance_counter_(?integer), zero_or_one).
|
||||
|
||||
:- info(instance_counter_/1, [
|
||||
comment is 'Stores a counter of created instances.',
|
||||
argnames is ['Counter']]).
|
||||
|
||||
|
||||
new(Object) :-
|
||||
::new(Object, []).
|
||||
|
||||
|
||||
new(Object, Options) :-
|
||||
valid_new_identifier(Object),
|
||||
self(Self),
|
||||
create_object(Object, [instantiates(Self)], [], []),
|
||||
Object::init(Options).
|
||||
|
||||
|
||||
clone(Object, Clone) :-
|
||||
self(Self),
|
||||
sender(Sender),
|
||||
throw(error(subclass_responsability, Self::clone(Object, Clone), Sender)).
|
||||
|
||||
|
||||
delete(Object) :-
|
||||
::delete(Object, []).
|
||||
|
||||
|
||||
delete(Object, Options) :-
|
||||
::instance(Object),
|
||||
Object::free(Options),
|
||||
abolish_object(Object).
|
||||
|
||||
|
||||
delete_all :-
|
||||
::delete_all([]).
|
||||
|
||||
|
||||
delete_all(Options) :-
|
||||
::instance(Instance),
|
||||
object_property(Instance, (dynamic)),
|
||||
::delete(Instance, Options),
|
||||
fail.
|
||||
|
||||
delete_all(_) :-
|
||||
\+ (::instance(Instance),
|
||||
object_property(Instance, (dynamic))).
|
||||
|
||||
|
||||
instance_base_name(i).
|
||||
|
||||
|
||||
instance_counter_(0).
|
||||
|
||||
|
||||
valid_new_identifier(Identifier) :-
|
||||
var(Identifier), !,
|
||||
retract(instance_counter_(Last)),
|
||||
::instance_base_name(Base),
|
||||
functor(Base, Functor, Arity),
|
||||
number_codes(Arity, Codes),
|
||||
atom_codes(Atom, Codes),
|
||||
repeat,
|
||||
next_integer(Last, Next),
|
||||
number_codes(Next, Codes2),
|
||||
atom_codes(Atom2, Codes2),
|
||||
atom_concat(Functor, Atom2, Identifier),
|
||||
atom_concat(Identifier, Atom, Prefix),
|
||||
\+ {current_predicate(Prefix/_)},
|
||||
asserta(instance_counter_(Next)),
|
||||
!.
|
||||
|
||||
valid_new_identifier(Identifier) :-
|
||||
once((atom(Identifier); compound(Identifier))),
|
||||
functor(Identifier, Functor, Arity),
|
||||
number_codes(Arity, Codes),
|
||||
atom_codes(Atom, Codes),
|
||||
atom_concat(Functor, Atom, Prefix),
|
||||
\+ {current_predicate(Prefix/_)}.
|
||||
|
||||
|
||||
next_integer(N, N1) :-
|
||||
N1 is N + 1.
|
||||
|
||||
next_integer(N, N2) :-
|
||||
N1 is N + 1,
|
||||
next_integer(N1, N2).
|
||||
|
||||
|
||||
equals(Instance1, Instance2) :-
|
||||
self(Self),
|
||||
sender(Sender),
|
||||
throw(error(subclass_responsability, Self::equals(Instance1, Instance2), Sender)).
|
||||
|
||||
|
||||
abstract_class :-
|
||||
fail.
|
||||
|
||||
|
||||
:- end_object.
|
@@ -1,92 +0,0 @@
|
||||
|
||||
:- protocol(classp).
|
||||
|
||||
|
||||
:- info([
|
||||
version is 1.0,
|
||||
author is 'Paulo Moura',
|
||||
date is 2000/7/24,
|
||||
comment is 'Default protocol for all instantiable classes.']).
|
||||
|
||||
|
||||
:- public(new/1).
|
||||
|
||||
:- mode(new(?object), zero_or_one).
|
||||
|
||||
:- info(new/1, [
|
||||
comment is 'Creates a new instance.',
|
||||
argnames is ['Instance']]).
|
||||
|
||||
|
||||
:- public(new/2).
|
||||
|
||||
:- mode(new(?object, +list), zero_or_one).
|
||||
|
||||
:- info(new/2, [
|
||||
comment is 'Creates a new instance using a list of initialization options.',
|
||||
argnames is ['Instance', 'Options']]).
|
||||
|
||||
|
||||
:- public(clone/2).
|
||||
|
||||
:- mode(clone(+object, ?object), zero_or_one).
|
||||
|
||||
:- info(clone/2, [
|
||||
comment is 'Clones an instance.',
|
||||
argnames is ['Instance', 'Clone']]).
|
||||
|
||||
|
||||
:- public(instance_base_name/1).
|
||||
|
||||
:- mode(instance_base_name(-atom), one).
|
||||
|
||||
:- info(instance_base_name/1, [
|
||||
comment is 'Base name to generated new instance names.',
|
||||
argnames is ['Name']]).
|
||||
|
||||
|
||||
:- public(delete/1).
|
||||
|
||||
:- mode(delete(+object), zero_or_one).
|
||||
|
||||
:- info(delete/1, [
|
||||
comment is 'Deletes a dynamic instance.',
|
||||
argnames is ['Instance']]).
|
||||
|
||||
|
||||
:- public(delete/2).
|
||||
|
||||
:- mode(delete(+object, +list), zero_or_one).
|
||||
|
||||
:- info(delete/2, [
|
||||
comment is 'Deletes a dynamic instance using a list of deleting options.',
|
||||
argnames is ['Instance', 'Options']]).
|
||||
|
||||
|
||||
:- public(delete_all/0).
|
||||
|
||||
:- mode(delete_all, zero_or_one).
|
||||
|
||||
:- info(delete_all/0, [
|
||||
comment is 'Deletes all dynamic instances. Fails if some dynamic instance can not be deleted.']).
|
||||
|
||||
|
||||
:- public(delete_all/1).
|
||||
|
||||
:- mode(delete_all(+list), zero_or_one).
|
||||
|
||||
:- info(delete_all/1, [
|
||||
comment is 'Deletes all dynamic instances using a list of deleting options. Fails if some dynamic instance can not be deleted.',
|
||||
argnames is ['Options']]).
|
||||
|
||||
|
||||
:- public(equals/2).
|
||||
|
||||
:- mode(equals(+object, +object), zero_or_one).
|
||||
|
||||
:- info(equals/2, [
|
||||
comment is 'The two instances represents the same object for some definition of equality.',
|
||||
argnames is ['Instance1', 'Instance2']]).
|
||||
|
||||
|
||||
:- end_protocol.
|
@@ -1,50 +0,0 @@
|
||||
|
||||
:- object(object,
|
||||
implements(objectp, event_handlersp),
|
||||
imports(initialization, class_hierarchy),
|
||||
instantiates(class)).
|
||||
|
||||
|
||||
:- info([
|
||||
version is 1.0,
|
||||
date is 2000/7/24,
|
||||
author is 'Paulo Moura',
|
||||
comment is 'Minimal predicates for all objects. Default root of the inheritance graph.']).
|
||||
|
||||
|
||||
:- uses(event_registry).
|
||||
|
||||
|
||||
strict_instance.
|
||||
|
||||
|
||||
default_free_option(del_monitors).
|
||||
|
||||
|
||||
process_free_option(del_monitors) :-
|
||||
self(Self),
|
||||
event_registry::del_monitors(Self, _, _, _),
|
||||
event_registry::del_monitors(_, _, Self, _),
|
||||
event_registry::del_monitors(_, _, _, Self).
|
||||
|
||||
|
||||
nil :-
|
||||
fail.
|
||||
|
||||
|
||||
print :-
|
||||
self(Self),
|
||||
writeq(Self), nl, nl,
|
||||
forall(
|
||||
::current_predicate(Predicate),
|
||||
(writeq(Predicate), nl)),
|
||||
nl.
|
||||
|
||||
|
||||
before(_, _, _).
|
||||
|
||||
|
||||
after(_, _, _).
|
||||
|
||||
|
||||
:- end_object.
|
@@ -1,36 +0,0 @@
|
||||
|
||||
:- protocol(objectp).
|
||||
|
||||
|
||||
:- info([
|
||||
version is 1.0,
|
||||
author is 'Paulo Moura',
|
||||
date is 2000/7/24,
|
||||
comment is 'Default protocol for all objects.']).
|
||||
|
||||
|
||||
:- public(strict_instance/0).
|
||||
|
||||
:- mode(strict_instance, zero_or_one).
|
||||
|
||||
:- info(strict_instance/0, [
|
||||
comment is 'True if the object is strictly an instance.']).
|
||||
|
||||
|
||||
:- public(print/0).
|
||||
|
||||
:- mode(print, one).
|
||||
|
||||
:- info(print/0, [
|
||||
comment is 'Pretty prints an object description.']).
|
||||
|
||||
|
||||
:- public(nil/0).
|
||||
|
||||
:- mode(nil, zero_or_one).
|
||||
|
||||
:- info(nil/0, [
|
||||
comment is 'True if the object represents a void reference.']).
|
||||
|
||||
|
||||
:- end_protocol.
|
@@ -1,48 +0,0 @@
|
||||
|
||||
:- object(proto,
|
||||
implements(protop, event_handlersp),
|
||||
imports(initialization, proto_hierarchy)).
|
||||
|
||||
|
||||
:- info([
|
||||
version is 1.0,
|
||||
date is 2000/7/24,
|
||||
author is 'Paulo Moura',
|
||||
comment is 'Minimal predicates for all prototypes. Default root of the extension graph.']).
|
||||
|
||||
|
||||
:- uses(event_registry).
|
||||
|
||||
|
||||
clone(Clone) :-
|
||||
self(Self),
|
||||
sender(Sender),
|
||||
throw(error(descendant_responsability, Self::clone(Clone), Sender)).
|
||||
|
||||
|
||||
default_free_option(del_monitors).
|
||||
|
||||
|
||||
process_free_option(del_monitors) :-
|
||||
self(Self),
|
||||
event_registry::del_monitors(Self, _, _, _),
|
||||
event_registry::del_monitors(_, _, Self, _),
|
||||
event_registry::del_monitors(_, _, _, Self).
|
||||
|
||||
|
||||
print :-
|
||||
self(Self),
|
||||
writeq(Self), nl, nl,
|
||||
forall(
|
||||
::current_predicate(Predicate),
|
||||
(writeq(Predicate), nl)),
|
||||
nl.
|
||||
|
||||
|
||||
before(_, _, _).
|
||||
|
||||
|
||||
after(_, _, _).
|
||||
|
||||
|
||||
:- end_object.
|
@@ -1,29 +0,0 @@
|
||||
|
||||
:- protocol(protop).
|
||||
|
||||
|
||||
:- info([
|
||||
version is 1.0,
|
||||
date is 2000/7/24,
|
||||
author is 'Paulo Moura',
|
||||
comment is 'Default protocol for all prototypes.']).
|
||||
|
||||
|
||||
:- public(clone/1).
|
||||
|
||||
:- mode(clone(?object), zero_or_one).
|
||||
|
||||
:- info(clone/1, [
|
||||
comment is 'Clones a prototype.',
|
||||
argnames is ['Clone']]).
|
||||
|
||||
|
||||
:- public(print/0).
|
||||
|
||||
:- mode(print, one).
|
||||
|
||||
:- info(print/0, [
|
||||
comment is 'Pretty prints an object description.']).
|
||||
|
||||
|
||||
:- end_protocol.
|
Reference in New Issue
Block a user