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 io.github.prolobjectlink.prolog.ArityError;
25 import io.github.prolobjectlink.prolog.FunctorError;
26 import io.github.prolobjectlink.prolog.PrologDouble;
27 import io.github.prolobjectlink.prolog.PrologFloat;
28 import io.github.prolobjectlink.prolog.PrologInteger;
29 import io.github.prolobjectlink.prolog.PrologLong;
30 import io.github.prolobjectlink.prolog.PrologNumber;
31 import io.github.prolobjectlink.prolog.PrologProvider;
32 import jpl.Term;
33
34
35
36
37
38
39 abstract class JplNumber extends JplTerm implements PrologNumber {
40
41 protected JplNumber(int type, PrologProvider provider, Term value) {
42 super(type, provider, value);
43 }
44
45 public final PrologInteger getPrologInteger() {
46 return new JplInteger(provider, getIntegerValue());
47 }
48
49 public final PrologFloat getPrologFloat() {
50 return new JplFloat(provider, getFloatValue());
51 }
52
53 public final PrologDouble getPrologDouble() {
54 return new JplDouble(provider, getDoubleValue());
55 }
56
57 public final PrologLong getPrologLong() {
58 return new JplLong(provider, getLongValue());
59 }
60
61 public final int getArity() {
62 throw new ArityError(this);
63 }
64
65 public final String getFunctor() {
66 throw new FunctorError(this);
67 }
68
69 }