Part of the cache_cacheableInterface

@param  string        $option
@return caption_field
333555
public function delete_data_from_cache($option = null)
    {
        $this->value = $this->vocabularyId = $this->vocabularyType = null;
        $this->record->delete_data_from_cache(record_adapter::CACHE_TITLE);
        $this->record->get_caption()->delete_data_from_cache();

        unset(self::$localCache[$this->get_cache_key($option)]);
    }
1167026
public function define(string $option)
    {
        if (!array_key_exists($option, $this->options)) {
            throw new OptionsException("Undefined relation option '{$option}'");
        }

        return $this->options[$option];
    }
591511
public static function fromOption($option)
    {
        $message = sprintf(
            'Could not add invalid Option of type "%1$s" to option repository.',
            is_object($option)
                ? get_class($option)
                : gettype($option)
        );

        return new static($message);
    }
1284123
public function get($option)
    {
        return (isset($this->options[$option]) ? $this->options[$option] : null);
    }
363551
public function add($option)
    {
        if (is_array($option)) {
            $this->collection[] = new Option($option);
        } elseif (is_object($option) && $option instanceof Option) {
            $this->collection[] = $option;
        }

        return $this;
    }
157960
public function getUrl($option)
    {
        if ($this->isActive($option)) {
            $params = $this->request->all();

            unset($params[$this->getKey()]);

            return '?'.http_build_query($params);
        }

        return '?'.http_build_query([$this->key => $option] + $this->request->all());
    }
468691
public function getOption($option)
    {
        return isset($this->getOptions()[$option]) ? $this->getOptions()[$option] : null;
    }
1061160
protected function getLiTag(SwatOption $option)
    {
        $tag = new SwatHtmlTag('li');

        // add option-specific CSS classes from option metadata
        $classes = $this->getOptionMetadata($option, 'classes');
        if (is_array($classes)) {
            $tag->class = implode(' ', $classes);
        } elseif ($classes != '') {
            $tag->class = strval($classes);
        }

        $sensitive = $this->getOptionMetadata($option, 'sensitive');
        if ($sensitive === false || !$this->isSensitive()) {
            if ($tag->class == '') {
                $tag->class = 'swat-insensitive';
            } else {
                $tag->class .= ' swat-insensitive';
            }
        }

        return $tag;
    }
914597
public function addOption(OptionInterface $option)
    {
        if (!$this->hasOption($option)) {
            $this->options->add($option);
        }

        return $this;
    }
932312
public function setFetchOption($option) {
        if (is_long($option) === true) {
            $this->fetch_options = $option;
        } elseif (is_null($option) === true) {
            $config = config('imap.options.fetch', IMAP::FT_UID);
            $this->fetch_options = is_long($config) ? $config : 1;
        }

        return $this;
    }
780416
public function option(Option $option)
    {
        $value = $option->getLabel() ?: htmlentities($option->getValue(), ENT_QUOTES, 'UTF-8');
        $tag = new Tag('option', $value);

        if ($option->isSelected()) {
            $tag->setAttribute('selected', 'selected');
        }

        return $this->parseTag($tag, $option);
    }
252124
public function load($option, $strict = false)
	{
		$option = $this->canonical($option);

		if (isset(self::$components[$option]))
		{
			return self::$components[$option];
		}

		// Do we have a database connection?
		if ($this->app->has('db'))
		{
			$db = $this->app->get('db');

			$query = $db->getQuery()
				->select('extension_id', 'id')
				->select('element', '"option"')
				->select('params')
				->select('enabled')
				->from('#__extensions')
				->whereEquals('type', 'component')
				->whereEquals('element', $option);

			$db->setQuery($query->toString());

			if (!$this->app->has('cache.store') || !($cache = $this->app['cache.store']))
			{
				$cache = new \Hubzero\Cache\Storage\None();
			}

			if (!($data = $cache->get('_system.' . $option)))
			{
				$data = $db->loadObject();
				$cache->put('_system.' . $option, $data, $this->app['config']->get('cachetime', 15));
			}

			self::$components[$option] = $data;

			if ($error = $db->getErrorMsg())
			{
				throw new Exception($this->app['language']->translate('JLIB_APPLICATION_ERROR_COMPONENT_NOT_LOADING', $option, $error), 500);
			}
		}

		// Create a default object
		if (empty(self::$components[$option]))
		{
			self::$components[$option] = new stdClass;
			self::$components[$option]->option  = $option;
			self::$components[$option]->enabled = $strict ? 0 : 1;
			self::$components[$option]->params  = '';
			self::$components[$option]->id      = 0;
		}

		// Convert the params to an object.
		if (is_string(self::$components[$option]->params))
		{
			self::$components[$option]->params = new Registry(self::$components[$option]->params);
		}

		return self::$components[$option];
	}
284959
public static function shortCodeFigure($options)
    {
        // Merge incoming options with default and expose as variables
        $options= array_merge(
            [
                "id"    => null,
                "class" => null,
                "src"   => null,
                "title" => null,
                "alt"   => null,
                "caption" => null,
                "href"  => null,
                "nolink" => false,
            ],
            self::ShortCodeInit($options)
        );
        extract($options, EXTR_SKIP);

        $id = $id ? " id=\"$id\"" : null;
        $class = $class ? " class=\"figure $class\"" : " class=\"figure\"";
        $title = $title ? " title=\"$title\"" : null;

        if (!$alt && $caption) {
            $alt = $caption;
        }

        if (!$href) {
            $pos = strpos($src, "?");
            $href = $pos ? substr($src, 0, $pos) : $src;
        }

        $start = null;
        $end = null;
        if (!$nolink) {
            $start = "<a href=\"{$href}\">";
            $end = "</a>";
        }

        if ($caption) {
            $caption = "<figcaption markdown=1>{$caption}</figcaption>";
        }

        $html = <<<EOD
<figure{$id}{$class}>
{$start}<img src="{$src}" alt="{$alt}"{$title}/>{$end}
{$caption}
</figure>
EOD;

        return $html;
    }
1111284
public function getOption($option) {
		if ($option instanceOf Argument) {
			$obj = $option;
			$option = $option->value;
		}

		if (isset($this->_options[$option])) {
			return $this->_options[$option];
		}

		foreach ($this->_options as $master => $settings) {
			if (in_array($option, (array)$settings['aliases'])) {
				if (isset($obj)) {
					$obj->key = $master;
				}

				return $settings;
			}
		}
	}
1078620
public function getContents(array $options=array()){
		$options['quality']=isset($options['quality'])?$options['quality']:80;
		ob_start();
		@imagejpeg($this->resource,null,$options['quality']);
		return ob_get_clean();
	}
330928
protected function getPreferedTarget($option)
    {
        $prefer = [
            'source' => false,
            'dist'   => false,
        ];

        switch ($option) {
            case 'source':
                $prefer['source'] = true;
                break;
            case 'dist':
                $prefer['dist'] = true;
                break;
            case 'auto':
            default:
                break;
        }

        return $prefer;
    }
666537
public function get(string $package, string $feature = null, string $option = null)
    {
        if (empty($feature) && empty($option)) {
            preg_match('/(\w+)\.(\w+)(\.\w+)?/', $package, $match);

            $package = $match[1];
            $feature = $match[2];
            $option = $match[3] ?? null;
        }

        $parameters = [];
        $parameterName = self::makeParameterName($package, $feature);

        if (array_key_exists($parameterName, $this->cached)) {
            $parameters = $this->cached[$parameterName];
        } else {
            if ($this->parameter->has($parameterName)) {
                $this->cached[$parameterName] = $parameters = $this->parameter->get($parameterName);
            }
        }

        if (empty($option)) {
            return $parameters;
        }

        return (new Dot((array)$parameters))->get(ltrim($option, '.'), null);
    }