final String newEntry = field.getEntry();
final ObjectAdapter originalValue = fields.get(i).get(object);
final boolean isVisible = fields.get(i).isVisible(IsisContext.getAuthenticationSession(), object, where).isAllowed();
final boolean isUsable = fields.get(i).isUsable(IsisContext.getAuthenticationSession(), object, where).isAllowed();
final boolean bothEmpty = originalValue == null && newEntry.equals("");
final boolean bothSame = newEntry.equals(originalValue == null ? "" : originalValue.titleString());
if ((!isVisible || !isUsable) || bothEmpty || bothSame) {
if (fields.get(i).getSpecification().getFacet(ParseableFacet.class) == null) {
// REVIEW restores object to loader
context.getMappedObject(newEntry);
}