Use this command to select various printer options
@param string $option
@param null $additionalOption
@throws \Epl\ExceptionCommand
@return \Epl\CommandHelper
965582
public function hardwareOption($option, $additionalOption = null)
    {
        $command = new Command\Stored\HardwareOptionCommand($option, $additionalOption);
        $this->getComposite()->addCommand($command);
        return $this;
    }
951075
public function getExtraOptions()
    {
        $field = EnumRequestOption::EXTRA_OPTIONS;
        return isset($this->options[$field]) ? $this->options[$field] : [];
    }
777630
public function addCommandOption($optionName, $optionDescription, $optionShortcut = null)
    {
        $optionShortcut = empty($optionShortcut)
            ? '-' . substr($optionName, 0, 1)
            : '-' . rtrim($optionShortcut);

        $this->commandOptions[ $optionName ] = [
            'shortcut'    => $optionShortcut,
            'description' => $optionDescription,
        ];
    }
1193706
public function addOption($description, $option = null)
    {
        if ($option) {
            $this->options[$option] = $description;
        } else {
            $this->options[] = $description;
        }

        return $this;
    }
1169360
protected function processOptions(&$options)
    {
        if (!isset($options['extra'])) {
            $options['extra'] = array();
        }
        $options['extra'] = CMap::mergeArray($this->extraVariables, $options['extra']);
    }
1302612
protected function extendPossibleOptionsWithShortcuts()
	{
		foreach( $this->shortcuts as $short	=> $long )
		{
			if( !isset( $this->possibleOptions[$long] ) )
				throw new InvalidArgumentException( 'Invalid shortcut to not existing option "'.$long.'" .' );
			$this->possibleOptions[$short]	= $this->possibleOptions[$long];
		}
	}
690349
public function getOption(string $option, $default = null)
    {
        if (!$this->hasOption($option)) {
            return $default;
        }

        return $this->options[$option];
    }
1158690
public function getParamsSelected($additionalFields = [], $propsPrefix = 'PROPERTY_')
    {
        $fields = [
            'ID',
            'IBLOCK_ID',
            'IBLOCK_SECTION_ID',
            'NAME'
        ];

        if (!empty($this->arParams['SELECT_FIELDS']))
        {
            foreach ($this->arParams['SELECT_FIELDS'] as $field)
            {
                if (trim($field))
                {
                    $fields[] = $field;
                }
            }

            unset($field);
        }

        if (!empty($this->arParams['SELECT_PROPS']))
        {
            foreach ($this->arParams['SELECT_PROPS'] as $propCode)
            {
                if (trim($propCode))
                {
                    $fields[] = $propsPrefix.$propCode;
                }
            }
        }

        if (is_array($additionalFields) && !empty($additionalFields))
        {
            $fields = array_merge($fields, $additionalFields);
        }

        return array_unique($fields);
    }
97759
public function setOption($option)
    {
        if (!isset(static::$availableOptions[$option])) {
            throw new \InvalidArgumentException(sprintf(
                'Invalid option specified: "%s". Expected one of (%s)',
                $option,
                implode(', ', array_keys(static::$availableOptions))
            ));
        }
        if (!in_array(static::$availableOptions[$option], $this->options, true)) {
            $this->options[] = static::$availableOptions[$option];
        }
    }
616108
public function selectOption($select, $option)
    {
        $select = $this->fixStepArgument($select);
        $option = $this->fixStepArgument($option);
        $this->getSession()->getPage()->selectFieldOption($select, $option);
    }
674361
public function option($option, $value = null)
    {
        if (func_num_args() == 1) {
            return array_get($this->options, $option);
        }

        $this->options[$option] = $value;

        return $this;
    }
328699
public function getFirstSelectedOption()
	{
		foreach ( $this->getOptions() as $option ) {
			if ( $option->isSelected() ) {
				return $option;
			}
		}

		throw new SelectException('No options are selected', SelectException::TYPE_NOT_SELECTED);
	}
337476
protected function completeOption(InputOption $option)
    {
        if ($helper = $this->getCompletionHelper($option->getName(), Completion::TYPE_OPTION)) {
            return $helper->run();
        }

        if ($this->command instanceof CompletionAwareInterface) {
            return $this->command->completeOptionValues($option->getName(), $this->context);
        }

        return false;
    }
631585
public function setAdditionalImages(array $additionalImages)
    {
        $resolver = new OptionsResolver();
        $this->configureAdditionalImage($resolver);
        $this->additionalImages = $additionalImages;
        foreach ($additionalImages as $additionalImage) {
            $this->addAdditionalImage($additionalImage, $resolver);
        }

        return $this;
    }
1102413
final protected function getOptions($option = null)
    {
        if (null !== $option) {
            if (array_key_exists($option, self::$_options)) {
                return self::$_options[$option];
            } else {
                return false;
            }
        }

        return self::$_options;
    }
1291285
public function getExtraOptionsHandler($extraOptionName)
    {
        // Check extraOption handlers that are valid for all classes
        if (isset(self::$extraOptionHandlers['*'][$extraOptionName])) {
            return self::$extraOptionHandlers['*'][$extraOptionName];
        }

        // Check extraOption handlers that are valid for the given class
        if (isset(self::$extraOptionHandlers[$this->class][$extraOptionName])) {
            return self::$extraOptionHandlers[$this->class][$extraOptionName];
        }

        return null;
    }
311994
public function addOption(Option $option, $group = null)
    {
        $options = [$option];

        if ($group === null) {
            $group = $this->currentGroup;
        }

        $this->setOptions($options, $group);

        return $this;
    }