protected boolean valid(final Request request, final ObjectAdapter adapter) {
final ObjectSpecification specification = adapter.getSpecification();
final AuthenticationSession session = IsisContext.getAuthenticationSession();
final List<ObjectAssociation> visibleFields = specification.getAssociations(Contributed.EXCLUDED, ObjectAssociation.Filters.dynamicallyVisible(session, adapter, where));
final ImmutableFacet facet = specification.getFacet(ImmutableFacet.class);
final boolean isImmutable = facet != null && facet.when() == When.ALWAYS;
final boolean isImmutableOncePersisted = facet != null && facet.when() == When.ONCE_PERSISTED && adapter.representsPersistent();
return visibleFields.size() > 0 && !isImmutable && !isImmutableOncePersisted;
}
@Override