protected function getValuesFromFlagOrEnum($flag)
    {
        $values = [];

        if ($flag instanceof static) {
            foreach ($flag->getNames() as $enum) {
                $values[] = static::getNameValue($enum);
            }
        } elseif (static::isValidName((string) $flag)) {
            $values[] = static::getNameValue((string) $flag);
        } elseif (is_numeric($flag)) {
            $values[] = $flag;
        }

        return $values;
    }