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.jpl;
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 jpl.Term;
32 import jpl.Variable;
33
34
35
36
37
38
39 public class JplVariable extends JplTerm implements PrologVariable {
40
41 protected JplVariable(PrologProvider provider) {
42 super(VARIABLE_TYPE, provider, new Variable("_"));
43 }
44
45 protected JplVariable(PrologProvider provider, String name) {
46 super(VARIABLE_TYPE, provider, new Variable(name));
47 }
48
49 protected JplVariable(int type, PrologProvider provider) {
50 super(type, provider);
51 }
52
53 protected JplVariable(int type, PrologProvider provider, String name) {
54 super(type, provider, new Variable(name));
55 }
56
57 protected JplVariable(int type, PrologProvider provider, Term var) {
58 super(type, provider, var);
59 }
60
61 public boolean isAnonymous() {
62 return ((Variable) value).name().equals("_");
63 }
64
65 public String getName() {
66 return ((Variable) value).name();
67 }
68
69 public void setName(String name) {
70 this.value = new Variable(name);
71 }
72
73 public PrologTerm[] getArguments() {
74 return new JplVariable[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 throw new UnsupportedOperationException("getPosition()");
87 }
88
89 }