93 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			93 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|   | 
 | ||
|  | :- protocol(classp). | ||
|  | 
 | ||
|  | 
 | ||
|  | 	:- info([ | ||
|  | 		version is 1.0, | ||
|  | 		authors 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. |