if (FreeStandingList.class.isAssignableFrom(cls)) {
return new ObjectSpecificationForFreeStandingList(specContext, objectMemberContext);
} else {
final SpecificationLoaderSpi specificationLoader = this;
final IntrospectionContext introspectionContext = new IntrospectionContext(getClassSubstitutor());
final ServicesInjector dependencyInjector = getRuntimeContext().getDependencyInjector();
final CreateObjectContext createObjectContext = new CreateObjectContext(adapterMap, dependencyInjector);
final FacetedMethodsBuilderContext facetedMethodsBuilderContext = new FacetedMethodsBuilderContext(specificationLoader, classSubstitutor, specificationTraverser, facetProcessor);
return new ObjectSpecificationDefault(cls, facetedMethodsBuilderContext, introspectionContext, specContext, objectMemberContext, createObjectContext);
}
}