refactoring of listmappingservice into Northbound (future REST) and Southbound (LISP...
[lispflowmapping.git] / mappingservice / api / src / main / java / org / opendaylight / lispflowmapping / type / lisp / address / LispIPAddress.java
1 package org.opendaylight.lispflowmapping.type.lisp.address;
2
3 import java.net.InetAddress;
4 import java.net.UnknownHostException;
5 import java.nio.ByteBuffer;
6
7 import org.opendaylight.lispflowmapping.type.AddressFamilyNumberEnum;
8
9 public abstract class LispIPAddress extends LispAddress{
10         
11         protected InetAddress address;
12
13         protected LispIPAddress(InetAddress address, AddressFamilyNumberEnum afi) {
14                 super(afi);
15                 this.address = address;
16         }
17         
18         protected LispIPAddress(int address, AddressFamilyNumberEnum afi) {
19         super(afi);
20         try {
21             this.address = InetAddress.getByAddress(ByteBuffer.allocate(4).putInt(address).array());
22         } catch (UnknownHostException e) {
23             // TODO Auto-generated catch block
24             e.printStackTrace();
25         }
26     }
27         
28         protected LispIPAddress(byte[] address, AddressFamilyNumberEnum afi) {
29         super(afi);
30         try {
31
32             this.address = InetAddress.getByAddress(address);
33         } catch (UnknownHostException e) {
34             // TODO Auto-generated catch block
35             e.printStackTrace();
36         }
37     }
38         
39         protected LispIPAddress(String name, AddressFamilyNumberEnum afi) {
40         super(afi);
41         try {
42             this.address = InetAddress.getByName(name);
43         } catch (UnknownHostException e) {
44             // TODO Auto-generated catch block
45             e.printStackTrace();
46         }
47     }
48         
49         public InetAddress getAddress() {
50         return address;
51     }
52
53
54     @Override
55     public int hashCode() {
56         final int prime = 31;
57         int result = super.hashCode();
58         result = prime * result + ((address == null) ? 0 : address.hashCode());
59         return result;
60     }
61
62     @Override
63     public boolean equals(Object obj) {
64         if (this == obj)
65             return true;
66         if (!super.equals(obj))
67             return false;
68         if (getClass() != obj.getClass())
69             return false;
70         LispIPAddress other = (LispIPAddress) obj;
71         if (address == null) {
72             if (other.address != null)
73                 return false;
74         } else if (!address.equals(other.address))
75             return false;
76         return true;
77     }
78     
79     @Override
80     public String toString() {
81         return address.getHostAddress();
82     }
83
84 }