code: private boolean changed(Address leader, Collection<Address> servers) {
      Assert.notNull(servers, "servers");
      Assert.argNot(servers.isEmpty(), "servers list cannot be empty");
      if (this.leader != null && leader == null) {
        return true;
      } else if (this.leader == null && leader != null) {
        Assert.arg(servers.contains(leader), "leader must be present in servers list");
        return true;
      } else if (this.leader != null && !this.leader.equals(leader)) {
        Assert.arg(servers.contains(leader), "leader must be present in servers list");
        return true;
      } else if (!matches(this.servers, servers)) {
        return true;
      }
      return false;
    }
docs: Returns a boolean value indicating whether the selector state would be changed by the given members.