/******************************************************************************* * Copyright (c) 2011, 2016 Eurotech and/or its affiliates * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Eurotech *******************************************************************************/ package org.eclipse.kura.net; /** * Model class for a 'network' that is specified by an IP and a mask. For example in the network * represented by 192.168.1.0/24 the IpAddress would be 192.168.1.0 and the mask is 24 bits or * 255.255.255.0. NetworkPairs are used in various components such as DHCP server configurations * where a network must be specified to provide addresses on. * * @author eurotech * * @param <T> */ public class NetworkPair<T extends IPAddress> { /** The IP Address portion of the NetworkPair **/ public T m_ipAddress; /** The prefix portion of the NetworkPair **/ public short m_prefix; public NetworkPair(T ipAddress, short prefix) { this.m_ipAddress = ipAddress; this.m_prefix = prefix; } public T getIpAddress() { return this.m_ipAddress; } public void setIpAddress(T ipAddress) { this.m_ipAddress = ipAddress; } public short getPrefix() { return this.m_prefix; } public void setPrefix(short prefix) { this.m_prefix = prefix; } @Override public String toString() { StringBuffer sb = new StringBuffer(); sb.append(this.m_ipAddress.getHostAddress()).append("/").append(this.m_prefix); return sb.toString(); } @Override public boolean equals(Object o) { if (!(o instanceof NetworkPair<?>)) { return false; } NetworkPair<?> other = (NetworkPair<?>) o; if (!this.m_ipAddress.equals(other.m_ipAddress)) { return false; } else if (this.m_prefix != other.m_prefix) { return false; } return true; } @Override public int hashCode() { final int prime = 67; int result = 1; result = prime * result + this.m_prefix; result = prime * result + (this.m_ipAddress == null ? 0 : this.m_ipAddress.hashCode()); return result; } }