@Override
    public boolean equals(Object obj)
    {
        if(this == obj)
            return true;
        
        if(! (obj instanceof Host))
            return false;
        
        Host that = (Host) obj;
        return  this.getID()         == that.getID()              &&
                this.getName().      equals(that.getName())       &&
                this.getIPAddress(). equals(that.getIPAddress())  &&
                this.getMACAddress().equals(that.getMACAddress()) &&
                (this.getPort() == null && that.getPort() == null || 
                 this.getPort() != null && this.getPort().equals(that.getPort()));
    }