blob: 1b5961b96c2cae4f848e4656ba8aed34953a725d [file] [log] [blame]
HIGUCHI Yutaea60e5f2013-06-12 11:10:21 -07001package net.onrc.onos.ofcontroller.bgproute;
pingping-lina2cbfad2013-03-07 08:39:21 +08002
3import java.net.InetAddress;
4import java.net.UnknownHostException;
5
6public class Prefix {
Jonathan Hartd1b9d872013-07-23 12:17:21 +12007 private int prefixLength;
8 private InetAddress address;
pingping-lina2cbfad2013-03-07 08:39:21 +08009
Jonathan Hartd1b9d872013-07-23 12:17:21 +120010 public Prefix(byte[] addr, int prefixLength) throws UnknownHostException {
Jonathan Hart61ba9372013-05-19 20:10:29 -070011 //try {
12 address = InetAddress.getByAddress(addr);
13 //} catch (UnknownHostException e) {
14 // System.out.println("InetAddress exception");
15 // return;
16 //}
Jonathan Hartd1b9d872013-07-23 12:17:21 +120017 this.prefixLength = prefixLength;
18 //System.out.println(address.toString() + "/" + prefixLength);
pingping-lina2cbfad2013-03-07 08:39:21 +080019 }
Jonathan Hart61ba9372013-05-19 20:10:29 -070020
Jonathan Hartd1b9d872013-07-23 12:17:21 +120021 public Prefix(String str, int prefixLength) throws UnknownHostException {
Jonathan Hart61ba9372013-05-19 20:10:29 -070022 //try {
23 address = InetAddress.getByName(str);
24 //} catch (UnknownHostException e) {
25 // System.out.println("InetAddress exception");
26 // return;
27 //}
Jonathan Hartd1b9d872013-07-23 12:17:21 +120028 this.prefixLength = prefixLength;
pingping-lina2cbfad2013-03-07 08:39:21 +080029 }
Jonathan Hart61ba9372013-05-19 20:10:29 -070030
Jonathan Hartd1b9d872013-07-23 12:17:21 +120031 public int getPrefixLength() {
32 return prefixLength;
33 }
34
35 public byte[] getAddress() {
pingping-lina2cbfad2013-03-07 08:39:21 +080036 return address.getAddress();
37 }
Jonathan Hartd1b9d872013-07-23 12:17:21 +120038
39 @Override
Jonathan Hart0ee0f022013-08-03 22:21:54 +120040 public boolean equals(Object other) {
41 if (other == null || !(other instanceof Prefix)) {
42 return false;
43 }
44
45 Prefix otherPrefix = (Prefix) other;
46
47 return (address == otherPrefix.address) &&
48 (prefixLength == otherPrefix.prefixLength);
49 }
50
51 @Override
52 public int hashCode() {
53 int hash = 17;
54 hash = 31 * hash + prefixLength;
55 hash = 31 * hash + (address == null ? 0 : address.hashCode());
56 return hash;
57 }
58
59 @Override
Jonathan Hartd1b9d872013-07-23 12:17:21 +120060 public String toString() {
61 return address.getHostAddress() + "/" + prefixLength;
62 }
pingping-lina2cbfad2013-03-07 08:39:21 +080063}