@SuppressWarnings("unchecked")
@Override
public <T extends ViewModel> T newViewModelInstance(Class<T> ofClass, String memento) {
final ObjectSpecification spec = getSpecificationLookup().loadSpecification(ofClass);
if (!spec.containsFacet(ViewModelFacet.class)) {
throw new IsisException("Type must be a ViewModel: " + ofClass);
}
final ObjectAdapter adapter = doCreateViewModelInstance(spec, memento);
if(adapter.getOid().isViewModel()) {
return (T)adapter.getObject();