public function getProviderInstance($providerOrClass)
    {
        if (is_a($providerOrClass, ProviderAbstract::PROVIDER_CLASS, true)) {
            if (!is_object($providerOrClass)) {
                $providerOrClass = new $providerOrClass;
            }
            return $providerOrClass;
        } else {
            throw new LogicException(
                Message::get(Message::EXT_PROVIDER_ERROR, $providerOrClass),
                Message::EXT_PROVIDER_ERROR
            );
        }
    }