@SuppressWarnings("unchecked")
   @Override
   public <T> T construct(Class<T> componentType) {
      boolean notTransactional = !configuration.transaction().transactionMode().isTransactional();
      LockContainer<?> lockContainer = configuration.locking().useLockStriping() ?
            notTransactional ? new ReentrantStripedLockContainer(configuration.locking().concurrencyLevel(),
                                                                 configuration.dataContainer().keyEquivalence())
                  : new OwnableReentrantStripedLockContainer(configuration.locking().concurrencyLevel(),
                                                             configuration.dataContainer().keyEquivalence()) :
            notTransactional ? new ReentrantPerEntryLockContainer(configuration.locking().concurrencyLevel(),
                                                                  configuration.dataContainer().keyEquivalence())