public function getMetadataFor($value)
    {
        $metaData = new ClassMetadata(get_class($value));
        $fullClass = $this->getClassValidator($value);

        if (empty($fullClass)) {
            return $metaData;
        }

        /** @var $loader LoaderMetadataInterface */
        $loader = new $fullClass();
        $loader->load($metaData);
        if ($this->listener) {
            $this->listener->onLoaded($value, $metaData);
        }

        return $metaData;
    }