switch (config.blockingStrategyType) {
case ANCESTOR:
blockingStrategy=new AncestorBlocking(directBlockingChecker,blockingSignatureCache);
break;
case ANYWHERE:
blockingStrategy=new AnywhereBlocking(directBlockingChecker,blockingSignatureCache);
break;
case SIMPLE_CORE:
blockingStrategy=new AnywhereValidatedBlocking(directBlockingChecker,hasInverseRoles,true);
break;
case COMPLEX_CORE:
blockingStrategy=new AnywhereValidatedBlocking(directBlockingChecker,hasInverseRoles,false);
break;
case OPTIMAL:
if (hasNominals)
blockingStrategy=new AnywhereValidatedBlocking(directBlockingChecker,hasInverseRoles,true);
else
blockingStrategy=new AnywhereBlocking(directBlockingChecker,blockingSignatureCache);
break;
default:
throw new IllegalArgumentException("Unknown blocking strategy type.");
}