1   
2   
3   
4   
5   
6   
7   
8   
9   
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  
26  package io.github.prolobjectlink.prolog;
27  
28  import java.util.Map;
29  import java.util.Set;
30  
31  
32  
33  
34  
35  
36  public interface PrologProgram extends Map<String, PrologClauses>, Iterable<PrologClauses> {
37  
38  	public PrologClauses get(String functor, int arity);
39  
40  	public void add(PrologClause clause);
41  
42  	public void add(PrologProgram program);
43  
44  	public void push(PrologClause clause);
45  
46  	public void removeAll(String functor, int arity);
47  
48  	public void markDynamic(String functor, int arity);
49  
50  	public void unmarkDynamic(String functor, int arity);
51  
52  	public boolean isDynamic(String functor, int arity);
53  
54  	public void markMultifile(String functor, int arity);
55  
56  	public void unmarkMultifile(String functor, int arity);
57  
58  	public boolean isMultifile(String functor, int arity);
59  
60  	public void markDiscontiguous(String functor, int arity);
61  
62  	public void unmarkDiscontiguous(String functor, int arity);
63  
64  	public boolean isDiscontiguous(String functor, int arity);
65  
66  	public PrologClauses newClauses(String functor, int arity);
67  
68  	public boolean removeAll(PrologProgram program);
69  
70  	public boolean removeAll(PrologClauses clauses);
71  
72  	public Map<String, PrologClauses> getClauses();
73  
74  	public Set<String> getIndicators();
75  
76  	public void add(PrologClauses clauses);
77  
78  	public void addAll(PrologProgram program);
79  
80  	public boolean retainAll(PrologClauses parents);
81  
82  	public Object[] toArray(PrologClauses[] prologClauses);
83  
84  	public Object[] toArray();
85  
86  }