1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package io.github.prolobjectlink.prolog.jlog;
23
24 import static io.github.prolobjectlink.prolog.PrologTermType.VARIABLE_TYPE;
25
26 import io.github.prolobjectlink.prolog.ArityError;
27 import io.github.prolobjectlink.prolog.FunctorError;
28 import io.github.prolobjectlink.prolog.PrologProvider;
29 import io.github.prolobjectlink.prolog.PrologTerm;
30 import io.github.prolobjectlink.prolog.PrologVariable;
31 import ubc.cs.JLog.Terms.jTerm;
32 import ubc.cs.JLog.Terms.jVariable;
33
34
35
36
37
38
39 public class JLogVariable extends JLogTerm implements PrologVariable {
40
41 protected JLogVariable(PrologProvider provider) {
42 super(VARIABLE_TYPE, provider, vIdexer++);
43 }
44
45 protected JLogVariable(PrologProvider provider, String name) {
46 super(VARIABLE_TYPE, provider, name, vIdexer++);
47 }
48
49 protected JLogVariable(int type, PrologProvider provider) {
50 super(type, provider);
51 }
52
53 protected JLogVariable(int type, PrologProvider provider, String name) {
54 super(type, provider, new jVariable(name));
55 }
56
57 protected JLogVariable(int type, PrologProvider provider, jTerm var) {
58 super(type, provider, var);
59 }
60
61 public boolean isAnonymous() {
62 return !((jVariable) value).isNamed();
63 }
64
65 public String getName() {
66 return ((jVariable) value).getName();
67 }
68
69 public void setName(String name) {
70 this.value = new jVariable(name);
71 }
72
73 public PrologTerm[] getArguments() {
74 return new JLogVariable[0];
75 }
76
77 public int getArity() {
78 throw new ArityError(this);
79 }
80
81 public String getFunctor() {
82 throw new FunctorError(this);
83 }
84
85 public int getPosition() {
86 return vIndex;
87 }
88
89 }