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.jtrolog;
23
24 import static io.github.prolobjectlink.prolog.PrologTermType.DOUBLE_TYPE;
25
26 import io.github.prolobjectlink.prolog.ArityError;
27 import io.github.prolobjectlink.prolog.FunctorError;
28 import io.github.prolobjectlink.prolog.PrologDouble;
29 import io.github.prolobjectlink.prolog.PrologFloat;
30 import io.github.prolobjectlink.prolog.PrologInteger;
31 import io.github.prolobjectlink.prolog.PrologLong;
32 import io.github.prolobjectlink.prolog.PrologProvider;
33 import io.github.prolobjectlink.prolog.PrologTerm;
34 import jTrolog.terms.Double;
35
36
37
38
39
40
41 final class JTrologDouble extends JTrologTerm implements PrologDouble {
42
43 JTrologDouble(PrologProvider provider, Number value) {
44 super(DOUBLE_TYPE, provider, new Double(value.doubleValue()));
45 }
46
47 public PrologInteger getPrologInteger() {
48 return new JTrologInteger(provider, getIntegerValue());
49 }
50
51 public PrologFloat getPrologFloat() {
52 return new JTrologFloat(provider, getFloatValue());
53 }
54
55 public PrologDouble getPrologDouble() {
56 return new JTrologDouble(provider, getDoubleValue());
57 }
58
59 public PrologLong getPrologLong() {
60 return new JTrologLong(provider, getLongValue());
61 }
62
63 public long getLongValue() {
64 return ((Double) value).longValue();
65 }
66
67 public double getDoubleValue() {
68 return ((Double) value).doubleValue();
69 }
70
71 public int getIntegerValue() {
72 return ((Double) value).intValue();
73 }
74
75 public float getFloatValue() {
76 return ((Double) value).floatValue();
77 }
78
79 public PrologTerm[] getArguments() {
80 return new JTrologDouble[0];
81 }
82
83 public int getArity() {
84 throw new ArityError(this);
85 }
86
87 public String getFunctor() {
88 throw new FunctorError(this);
89 }
90
91 }