private boolean innerCanCreateFromAdaptable(Object adaptable, Class<?> modelClass) throws InvalidModelException {
modelClass = getImplementationTypeForAdapterType(modelClass, adaptable);
Model modelAnnotation = modelClass.getAnnotation(Model.class);
if (modelAnnotation == null) {
throw new InvalidModelException(String.format("Model class '%s' does not have a model annotation", modelClass));
}
Class<?>[] declaredAdaptable = modelAnnotation.adaptables();
for (Class<?> clazz : declaredAdaptable) {
if (clazz.isInstance(adaptable)) {