class IpWildcard implements Serializable, Comparable<IpWildcard> {

  public boolean intersects(IpWildcard other) {
    long differentIpBits = _ip.asLong() ^ other._ip.asLong();
    long canDiffer = _wildcardMask | other._wildcardMask;

    /*
     * All IP bits that different must be wild in either this or other.
     */
    return (differentIpBits & canDiffer) == differentIpBits;
  }

  private  IpWildcard(Ip address, long wildcardMask);

}