private boolean isEmpty(boolean forDisplay) { if (datasetFieldType.isPrimitive()) { // primitive for (String value : getValues()) { if (!StringUtils.isBlank(value) && !(forDisplay && DatasetField.NA_VALUE.equals(value))) { return false; } } } else { // compound for (DatasetFieldCompoundValue cv : datasetFieldCompoundValues) { for (DatasetField subField : cv.getChildDatasetFields()) { if (!subField.isEmpty(forDisplay)) { return false; } } } } return true; }