@Override
 public CompositeRefinedObjectClassDefinition determineCompositeObjectClassDefinition(
     ResourceShadowDiscriminator discriminator) {
   if (discriminator.getKind() == null && discriminator.getObjectClass() == null) {
     return null;
   }
   RefinedObjectClassDefinition structuralObjectClassDefinition;
   if (discriminator.getKind() == null && discriminator.getObjectClass() != null) {
     structuralObjectClassDefinition = getRefinedDefinition(discriminator.getObjectClass());
   } else {
     structuralObjectClassDefinition =
         getRefinedDefinition(discriminator.getKind(), discriminator.getIntent());
   }
   if (structuralObjectClassDefinition == null) {
     return null;
   }
   Collection<RefinedObjectClassDefinition> auxiliaryObjectClassDefinitions =
       structuralObjectClassDefinition.getAuxiliaryObjectClassDefinitions();
   return new CompositeRefinedObjectClassDefinitionImpl(
       structuralObjectClassDefinition, auxiliaryObjectClassDefinitions);
 }