public static function getStoreClass($inValue, array $defaultClassName)
    {
        //Get the class inside the values
        if ($inValue && isset($inValue->_className) && class_exists($inValue->_className)) {
            return $inValue->_className;
        }

        //We take it from the array if there is only one
        if (count($defaultClassName) == 1 && class_exists($defaultClassName[0])) {
            return $defaultClassName[0];
        }

        //Multiple options, using type to decide the store class
        if (count($defaultClassName) > 1) {
            $matchedClasses = [];
            foreach ($defaultClassName as $defaultClassNameItem) {
                $matches = static::matchType($inValue, $defaultClassNameItem);
                if ($matches) $matchedClasses[] = $matches;
            }

            // If only 1 has matched, we use this definition class
            if (count($matchedClasses)==1) {
                return $matchedClasses[0];
            }
        }

        return null;
    }