public boolean reselect(Metadata metadata) {
    if (reselectFields == null || reselectFields.isEmpty()) return false;

    for (String fieldName : reselectFields.keySet()) {
      FieldDescriptor fd =
          metadata.getMetadataClassDescriptor().getFieldDescriptorByFieldName(fieldName);
      String actualValue = fd.getValueString(metadata);
      String expectedValue = reselectFields.get(fieldName).getValue();
      if (!actualValue.equals(expectedValue)) return false;
    }
    return true;
  }