Mercurial > hg > Members > sugi > MessagePack-java
comparison src/main/java/org/msgpack/type/IntValueImpl.java @ 0:cb825acd883a
first commit
author | sugi |
---|---|
date | Sat, 18 Oct 2014 15:06:15 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:cb825acd883a |
---|---|
1 // | |
2 // MessagePack for Java | |
3 // | |
4 // Copyright (C) 2009 - 2013 FURUHASHI Sadayuki | |
5 // | |
6 // Licensed under the Apache License, Version 2.0 (the "License"); | |
7 // you may not use this file except in compliance with the License. | |
8 // You may obtain a copy of the License at | |
9 // | |
10 // http://www.apache.org/licenses/LICENSE-2.0 | |
11 // | |
12 // Unless required by applicable law or agreed to in writing, software | |
13 // distributed under the License is distributed on an "AS IS" BASIS, | |
14 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
15 // See the License for the specific language governing permissions and | |
16 // limitations under the License. | |
17 // | |
18 package org.msgpack.type; | |
19 | |
20 import java.math.BigInteger; | |
21 import java.io.IOException; | |
22 import org.msgpack.packer.Packer; | |
23 import org.msgpack.MessageTypeException; | |
24 | |
25 @SuppressWarnings("serial") | |
26 class IntValueImpl extends IntegerValue { | |
27 private int value; | |
28 | |
29 IntValueImpl(int value) { | |
30 this.value = value; | |
31 } | |
32 | |
33 private static int BYTE_MAX = (int) Byte.MAX_VALUE; | |
34 private static int SHORT_MAX = (int) Short.MAX_VALUE; | |
35 | |
36 private static int BYTE_MIN = (int) Byte.MIN_VALUE; | |
37 private static int SHORT_MIN = (int) Short.MIN_VALUE; | |
38 | |
39 @Override | |
40 public byte getByte() { | |
41 if (value > BYTE_MAX || value < BYTE_MIN) { | |
42 throw new MessageTypeException(); // TODO message | |
43 } | |
44 return (byte) value; | |
45 } | |
46 | |
47 @Override | |
48 public short getShort() { | |
49 if (value > SHORT_MAX || value < SHORT_MIN) { | |
50 throw new MessageTypeException(); // TODO message | |
51 } | |
52 return (short) value; | |
53 } | |
54 | |
55 @Override | |
56 public int getInt() { | |
57 return value; | |
58 } | |
59 | |
60 @Override | |
61 public long getLong() { | |
62 return value; | |
63 } | |
64 | |
65 @Override | |
66 public BigInteger getBigInteger() { | |
67 return BigInteger.valueOf((long) value); | |
68 } | |
69 | |
70 @Override | |
71 public byte byteValue() { | |
72 return (byte) value; | |
73 } | |
74 | |
75 @Override | |
76 public short shortValue() { | |
77 return (short) value; | |
78 } | |
79 | |
80 @Override | |
81 public int intValue() { | |
82 return value; | |
83 } | |
84 | |
85 @Override | |
86 public long longValue() { | |
87 return (long) value; | |
88 } | |
89 | |
90 @Override | |
91 public BigInteger bigIntegerValue() { | |
92 return BigInteger.valueOf((long) value); | |
93 } | |
94 | |
95 @Override | |
96 public float floatValue() { | |
97 return (float) value; | |
98 } | |
99 | |
100 @Override | |
101 public double doubleValue() { | |
102 return (double) value; | |
103 } | |
104 | |
105 @Override | |
106 public void writeTo(Packer pk) throws IOException { | |
107 pk.write(value); | |
108 } | |
109 | |
110 // TODO compareTo | |
111 | |
112 @Override | |
113 public boolean equals(Object o) { | |
114 if (o == this) { | |
115 return true; | |
116 } | |
117 if (!(o instanceof Value)) { | |
118 return false; | |
119 } | |
120 Value v = (Value) o; | |
121 if (!v.isIntegerValue()) { | |
122 return false; | |
123 } | |
124 | |
125 try { | |
126 // TODO | |
127 return value == v.asIntegerValue().getInt(); | |
128 } catch (MessageTypeException ex) { | |
129 return false; | |
130 } | |
131 } | |
132 | |
133 @Override | |
134 public int hashCode() { | |
135 return value; | |
136 } | |
137 | |
138 @Override | |
139 public String toString() { | |
140 return Integer.toString(value); | |
141 } | |
142 | |
143 @Override | |
144 public StringBuilder toString(StringBuilder sb) { | |
145 return sb.append(Integer.toString(value)); | |
146 } | |
147 } |