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 }