public function addOptionMetadata(
        SwatOption $option,
        $metadata,
        $value = null
    ) {
        $key = $this->getOptionMetadataKey($option);

        if (is_array($metadata)) {
            $this->option_metadata[$key] = array_merge(
                $this->option_metadata[$key],
                $metadata
            );
        } else {
            $this->option_metadata[$key][$metadata] = $value;
        }
    }