@Override
public ObjectReflectorDefault createReflector() {
final ClassSubstitutor classSubstitutor = createClassSubstitutor(getConfiguration());
final CollectionTypeRegistry collectionTypeRegistry = createCollectionTypeRegistry(getConfiguration());
final SpecificationTraverser specificationTraverser = createSpecificationTraverser(getConfiguration());
final MemberLayoutArranger memberLayoutArranger = createMemberLayoutArranger(getConfiguration());
final ProgrammingModel programmingModel = createProgrammingModelFacets(getConfiguration());
final Set<FacetDecorator> facetDecorators = createFacetDecorators(getConfiguration());
final MetaModelValidator metaModelValidator = createMetaModelValidator(getConfiguration());
final ObjectReflectorDefault reflector = doCreateReflector(getConfiguration(), classSubstitutor, collectionTypeRegistry, specificationTraverser, memberLayoutArranger, programmingModel, facetDecorators, metaModelValidator);