@Override
    public String getAnyMissing() {
      return bitmaskFields.stream()
          .filter(field -> !field.allRequiredBitmask.equals("0"))
          .map(field -> "(~" + field.name + " & " + field.allRequiredBitmask + ") != 0")
          .collect(joining("\n|| "));
    }
{@inheritDoc}

<p>Everything can be checked with bitmask operations. If bit <i>i</i> represents a required
property then it must be 1 in the bitmask field. So if we invert it we must get 0, and if we
do that for the field as a whole and AND with a bitmask selecting only required properties we
should get 0.
value/src/main/java/com/google/auto/value/processor/BuilderRequiredProperties.java