@Override public String toString() { if (isDone()) { if (isCompletedExceptionally()) { return MoreObjects.toStringHelper(this) .add("cause", cause).toString(); } else { return MoreObjects.toStringHelper(this) .addValue(getNow(null)).toString(); } } final int count = getNumberOfDependents(); if (count == 0) { return MoreObjects.toStringHelper(this) .addValue("not completed").toString(); } else { return MoreObjects.toStringHelper(this) .addValue("not completed") .add("dependents", count).toString(); } } }