if (SpecificationLoaderAware.class.isAssignableFrom(candidateClass)) {
final SpecificationLoaderAware cast = SpecificationLoaderAware.class.cast(candidate);
cast.setSpecificationLoader(this);
}
if (SpecificationLookupAware.class.isAssignableFrom(candidateClass)) {
final SpecificationLookupAware cast = SpecificationLookupAware.class.cast(candidate);
cast.setSpecificationLookup(this);
}
getClassSubstitutor().injectInto(candidate);
getCollectionTypeRegistry().injectInto(candidate);