UartBus source documentation
uint16_t.java
1 package eu.javaexperience.electronic.uartbus.rpc.datatype;
2 
3 public class uint16_t extends Number
4 {
5  /**
6  *
7  */
8  private static final long serialVersionUID = 1L;
9  public final int value;
10 
11  public uint16_t(short value)
12  {
13  this.value = value;
14  }
15 
16  public uint16_t(Number value)
17  {
18  this.value = value.intValue();
19  }
20 
21  @Override
22  public int intValue()
23  {
24  return value;
25  }
26 
27  @Override
28  public long longValue()
29  {
30  return value;
31  }
32 
33  @Override
34  public float floatValue()
35  {
36  return value;
37  }
38 
39  @Override
40  public double doubleValue()
41  {
42  return value;
43  }
44 
45  @Override
46  public String toString()
47  {
48  return "uint16_t: "+value;
49  }
50 
51  @Override
52  public boolean equals(Object obj)
53  {
54  if(!(obj instanceof Number))
55  {
56  return false;
57  }
58 
59  Number n = (Number) obj;
60 
61  double d = n.doubleValue();
62 
63  //check number is integer (i mean number without fraction)
64  if(Math.floor(d) != d)
65  {
66  return false;
67  }
68 
69  long l = n.longValue();
70 
71  //btw -128 and 127 or 0 and 255
72  if(Short.MIN_VALUE <= l && l <= 65536)
73  {
74  if(l < 0)
75  {
76  l = 0xffff & l;
77  }
78 
79  return l == value;
80  }
81  return false;
82  }
83 
84  @Override
85  public int hashCode()
86  {
87  return 0xffff & value;
88  }
89 }