- Класс КонсольноеПриложение:
- Класс КомандаПриложения:
- Публичные свойства
- ДобавитьПодкоманду
- ПолучитьПодкоманды
- ПолучитьИмяКоманды
- ПолучитьСинонимы
- ПолучитьОписание
- ЗначениеОпции
- ЗначениеАргумента
- ПараметрыКоманды
- ПередВыполнениемКоманды
- ПослеВыполненияКоманды
- ВывестиСправку
- Запуск
- НачалоЗапуска
- ЭтоСинонимКоманды
- Опция
- Аргумент
- УстановитьДействиеВыполнения
- УстановитьДействиеПередВыполнением
- УстановитьДействиеПослеВыполнения
- Класс ПараметрКоманды:
Основной класс для реализации консольного приложения
// Класс ПараметрКоманды, для доступа к установленному значению из вне
// Строковое представление версии приложения
// Процедура добавляет версию приложения,
// при вызове данной опции, показывается установленная версия и
// завершается выполнение с кодом (0)
//
// Параметры:
// Наименование - строка - имя опции, в строке допустимо задавать синоним через пробел, например "v version"
// СтрокаВерсии - строка - версия, приложения
// Процедура позволяет переопределить стандартную строку использования приложения
//
// Параметры:
// СтрокаСпек - строка - переопределенная строка использования приложения
// Возвращает основную команду приложения
//
// Возвращаемое значение:
// Команда - класс КомандаПриложения
// Основная процедура запуска приложения
//
// Параметры:
// АргументыКоманднойСтрокиВходящие - Массив - Элементы <Строка>, необзательный,
// Если, не передано считывает из АргументыКоманднойСтроки
// Функция добавляет команду приложение и возвращает экземпляр данной команды
//
// Параметры:
// ИмяКоманды - строка - в строке допустимо задавать синоним через пробел, например "exec e"
// ОписаниеКоманды - строка - описание команды для справки
// КлассРеализацииКоманды - объект - класс, объект реализующий функции выполнения команды.
// Так же используется, для автоматической настройки опций и параметров команды
//
// Возвращаемое значение:
// Команда - класс КомандаПриложения
// Процедура устанавливает процедуру "ВыполнитьКоманду" выполнения для приложения
//
// Параметры:
// КлассРеализации - объект - класс, объект реализующий процедуру выполнения команды.
// ИмяПроцедуры - строка - имя процедуры, отличное от стандартного "ВыполнитьКоманду"
//
// Процедура устанавливает процедуру "ПередВыполнениемКоманды" выполнения для приложения
// запускаемую перед выполнением "ВыполнитьКоманду"
//
// Параметры:
// КлассРеализации - объект - класс, объект реализующий процедуру выполнения команды.
// ИмяПроцедуры - строка - имя процедуры, отличное от стандартного "ПередВыполнениемКоманды"
//
// Процедура устанавливает процедуру "ПослеВыполненияКоманды" выполнения для приложения
// запускаемую после выполнением "ВыполнитьКоманду"
//
// Параметры:
// КлассРеализации - объект - класс, объект реализующий процедуру выполнения команды.
// ИмяПроцедуры - строка - имя процедуры, отличное от стандартного "ПослеВыполненияКоманды"
//
// Функция добавляет опцию приложения и возвращает экземпляр данной опции
//
// Параметры:
// Имя - строка - имя опции, в строке допустимо задавать синоним через пробел, например "s some-opt"
// Значение - строка - значение опции по умолчанию
// Описание - объект - описание опции для справки.
//
// Возвращаемое значение:
// Команда - класс ПараметрКоманды
//
// Дополнительно смотри справку по классу ПараметрКоманды
// Функция добавляет аргумент приложения и возвращает экземпляр данной аргумента
//
// Параметры:
// Имя - строка - имя аргумента, в строке допустимо использование только из БОЛЬШИХ латинских букв, например "ARG"
// Значение - строка - значение аргумента по умолчанию
// Описание - объект - описание аргумента для справки.
//
// Возвращаемое значение:
// Команда - класс ПараметрКоманды
//
// Дополнительно смотри справку по классу ПараметрКоманды
//
// Предопределенная процедура выполнения приложения, если не задана процедура в классе.
// Выводит справку, по работе с приложением и завершает работу с кодом "1"
// Переопределяется, процедурой "УстановитьОсновноеДействие"
//
// Параметры:
// Команда - класс КомандаПриложения - инстанс класс, для доступа к опция и аргументам выполняемой команды
//
Основной класс для реализации консольного приложения
// Пользовательская строка использования текущей команды
// (ЗАГОТОВКА) Содержит дополнительно подробное описания для справки по команде
// Содержит экземпляр класс КонсольноеПриложения, для возможности получения экспортных свойств приложения
// Содержит входящий массив родителей текущей команды
// Устанавливается при выполнении команд родителей
// Функция добавляет под команду в текущую и возвращает экземпляр данной команды
//
// Параметры:
// ИмяКоманды - строка - в строке допустимо задавать синоним через пробел, например "exec e"
// ОписаниеКоманды - строка - описание команды для справки
// КлассРеализацииКоманды - объект - класс, объект реализующий функции выполнения команды.
// Так же используется, для автоматической настройки опций и параметров команды
//
// Возвращаемое значение:
// Команда - класс КомандаПриложения
// Функция массив вложенных команд, текущей команды
//
// Возвращаемое значение:
// массив, элементы класс КомандаПриложения
// Функция возвращает текущее имя команды
//
// Возвращаемое значение:
// строка
// Функция массив синонимов команды
//
// Возвращаемое значение:
// массив, элементы класс КомандаПриложения
// Функция возвращает описание команды
//
// Возвращаемое значение:
// строка
// Функция возвращает значение опции по переданному имени/синониму опции
//
// Параметры:
// ИмяОпции - строка - имя или синоним опции
//
// Возвращаемое значение:
// Произвольный - Значение - полученное значение в результате чтения строки использования или переменных окружения
// Функция возвращает значение аргумента по переданному имени аргумента
//
// Параметры:
// ИмяАргумента - строка - имя аргумента
//
// Возвращаемое значение:
// Произвольный - Значение - полученное значение в результате чтения строки использования или переменных окружения
// Функция возвращает все параметры команды, для доступа к ним по синонимам
//
// Возвращаемое значение:
// Соответствие
// Ключ - имя или синоним опции/аргумента команды
// Значение - полученное значение в результате чтения строки использования или переменных окружения
// Предопределенная процедура ПередВыполнениемКоманды команды, если не задана процедура в классе.
// Содержит код определение необходимости вывода версии приложения
// Предопределенная процедура ПослеВыполненияКоманды команды, если не задана процедура в классе.
Процедура выводит справку по команде в консоль
// Основная процедура запуска команды приложения
//
// Параметры:
// АргументыCLI - Массив - Элементы <Строка>
//
// Процедура подготавливает команды к запуску
// Формирует строку использования и
// настраивает парсер для выполнения парсинга входящих параметров
// Обязательно вызывается пред выполнением команды
// Функция проверяет строку, что она является ли синонимом текущей команды
//
// Параметры:
// СтрокаПроверки - строка - имя команды, для проверки
//
// Возвращаемое значение:
// булево - истина. если это синоним или имя текущей команды, иначе ложь
// Функция добавляет опцию команды и возвращает экземпляр данной опции
//
// Параметры:
// Имя - строка - имя опции, в строке допустимо задавать синоним через пробел, например "s some-opt"
// Значение - строка - значение опции по умолчанию
// Описание - объект - описание опции для справки.
//
// Возвращаемое значение:
// Команда - класс ПараметрКоманды
//
// Дополнительно смотри справку по классу ПараметрКоманды
// Функция добавляет аргумент команды и возвращает экземпляр данной аргумента
//
// Параметры:
// Имя - строка - имя аргумента, в строке допустимо использование только из БОЛЬШИХ латинских букв, например "ARG"
// Значение - строка - значение аргумента по умолчанию
// Описание - объект - описание аргумента для справки.
//
// Возвращаемое значение:
// Команда - класс ПараметрКоманды
//
// Дополнительно смотри справку по классу ПараметрКоманды
// Процедура устанавливает процедуру "ВыполнитьКоманду" выполнения для команды
//
// Параметры:
// КлассРеализации - объект - класс, объект реализующий процедуру выполнения команды.
// ИмяПроцедуры - строка - имя процедуры, отличное от стандартного "ВыполнитьКоманду"
//
// Процедура устанавливает процедуру "ПередВыполнениемКоманды" выполнения для команды
// запускаемую перед выполнением "ВыполнитьКоманду"
//
// Параметры:
// КлассРеализации - объект - класс, объект реализующий процедуру выполнения команды.
// ИмяПроцедуры - строка - имя процедуры, отличное от стандартного "ПередВыполнениемКоманды"
//
// Процедура устанавливает процедуру "ПослеВыполненияКоманды" выполнения для команды
// запускаемую после выполнением "ВыполнитьКоманду"
//
// Параметры:
// КлассРеализации - объект - класс, объект реализующий процедуру выполнения команды.
// ИмяПроцедуры - строка - имя процедуры, отличное от стандартного "ПослеВыполненияКоманды"
//
Основной класс для реализации параметров команды опции или аргумента
// Имя параметра команды
// первая строка из массива строк, переданных при создании
// Описание параметра команды
// Используется при выводе справки
// Подробное описание параметра команды
// Используется при выводе справки (запланировано)
// Содержит имя переменной окружения, откуда получать значение
// допустимо использование нескольких переменных окружения через пробел
// Используется при выводе справки
// Содержит синонимов параметра команды
// Содержит нормализованные наименования параметров
// для опций ("f force"):
// "-f", "--force"
// для аргументов ("ARG"):
// "ARG"
// Определяет необходимость показа значения по умолчанию параметра в справке.
// Значение "Истина" скрывает в справке, по умолчанию "Ложь"
// Содержит признак истина, если значение получено из переменной окружения
// Содержит признак истина, если значение установлено пользователем в строке использования
// Признак обязательности установки значения пользователем в строке использования
// при "истина", если значение не передано явно, будет вызывать исключение
// Содержит значение параметра
// В том числе установленное значение по умолчанию
// Содержит тип параметра
// Возвращает истина, если тип параметра Массив
//
// Возвращаемое значение:
// булево
// Процедура очищает, Значение параметра, для типа Массив
//
// Возвращает строковое представление значения параметра
//
// Возвращаемое значение:
// строка
// Возвращает истина, если данный параметр обязателен для указания
//
// Возвращаемое значение:
// булево
// Процедура устанавливает значение параметра из входящего значения
// приводить к необходимому типу
//
// Параметры:
// ВходящееЗначение - строка - полученная строка при парсинге строки использования
// Процедура устанавливает значение параметра из переменной окружения
//
// Функция устанавливает переменную окружения для параметра команды
// возвращает текущий параметр команды
//
// Параметры:
// СтрокаПеременнаяОкружения - строка - имя переменной окружения, откуда получать значение
// допустимо использование нескольких переменных окружения через пробел
// Возвращаемое значение:
// ПараметрКоманды - значение из переменной ЭтотОбъект
// Функция устанавливает признак скрытости значения по умолчанию в справке
// возвращает текущий параметр команды
//
// Возвращаемое значение:
// ПараметрКоманды - значение из переменной ЭтотОбъект
// Функция устанавливает значение по умолчанию
// возвращает текущий параметр команды
//
// Параметры:
// ВходящееЗначение - произвольный - значение параметра по умолчанию
//
// Возвращаемое значение:
// ПараметрКоманды - значение из переменной ЭтотОбъект
// Функция устанавливает тип параметра "Булево"
// возвращает текущий параметр команды
//
// Возвращаемое значение:
// ПараметрКоманды - значение из переменной ЭтотОбъект
// Вызов необязателен, автоматически определяется при создании параметра,
// если передано значение по умолчанию
// Функция устанавливает тип параметра "Булево"
// возвращает текущий параметр команды
//
// Возвращаемое значение:
// ПараметрКоманды - значение из переменной ЭтотОбъект
// Вызов необязателен, автоматически определяется при создании параметра,
// если передано значение по умолчанию
// Функция устанавливает тип параметра "Булево"
// возвращает текущий параметр команды
//
// Возвращаемое значение:
// ПараметрКоманды - значение из переменной ЭтотОбъект
// Вызов необязателен, автоматически определяется при создании параметра,
// если передано значение по умолчанию
// Функция устанавливает тип параметра "Дата"
// возвращает текущий параметр команды
//
// Параметры:
// ФорматДаты - Строка - формат даты, при приведении к дате из строки параметра по умолчанию (yyyy-MM-dd_HH:mm:ss)
//
// Возвращаемое значение:
// ПараметрКоманды - значение из переменной ЭтотОбъект
// Вызов необязателен, автоматически определяется при создании параметра,
// если передано значение по умолчанию
// Функция устанавливает тип параметра "Число"
// возвращает текущий параметр команды
//
// Возвращаемое значение:
// ПараметрКоманды - значение из переменной ЭтотОбъект
// Вызов необязателен, автоматически определяется при создании параметра,
// если передано значение по умолчанию
// Функция устанавливает тип параметра "Строка"
// возвращает текущий параметр команды
//
// Возвращаемое значение:
// ПараметрКоманды - значение из переменной ЭтотОбъект
// Вызов необязателен, автоматически определяется при создании параметра,
// если передано значение по умолчанию
// Функция устанавливает тип параметра "Массив" элементы "Дата"
// возвращает текущий параметр команды
//
// Параметры:
// ФорматДаты - Строка - формат даты, при приведении к дате из строки параметра по умолчанию (yyyy-MM-dd_HH:mm:ss)
// ВходящийРазделительМассива - символ - используется для разделения параметров при парсинге строки
//
// Возвращаемое значение:
// ПараметрКоманды - значение из переменной ЭтотОбъект
// Функция устанавливает тип параметра "Массив" элементы "Число"
// возвращает текущий параметр команды
//
// Параметры:
// ВходящийРазделительМассива - символ - используется для разделения параметров при парсинге строки
//
// Возвращаемое значение:
// ПараметрКоманды - значение из переменной ЭтотОбъект
// Функция устанавливает тип параметра "Массив" элементы "Строки"
// возвращает текущий параметр команды
//
// Параметры:
// ВходящийРазделительМассива - символ - используется для разделения параметров при парсинге строки
//
// Возвращаемое значение:
// ПараметрКоманды - значение из переменной ЭтотОбъект
// Функция устанавливает тип параметра "Массив" элементы "Булево"
// возвращает текущий параметр команды
//
// Возвращаемое значение:
// ПараметрКоманды - значение из переменной ЭтотОбъект
// Функция устанавливает тип параметра "Перечисление"
// возвращает текущий параметр команды
//
// Параметры:
// ДоступныеПеречисления - Соответсвие
// Ключ - Строка
// Значение - Структура ("Наименование, Значение, ДополнительнаяСправка")
// Возвращаемое значение:
// ПараметрКоманды - значение из переменной ЭтотОбъект
// Вызов необязателен, автоматически определяется при создании параметра,
// если передано значение по умолчанию
// Функция устанавливает произвольный тип параметра
// возвращает текущий параметр команды
//
// Параметры:
// НаименованиеПеречисления - строка - пользовательное значение перечисления
// ЗначениеПеречисления - произвольный - системное значение перечисления
// ДополнительнаяСправкаПеречисления - строка - дополнительная строка для справки
//
// Возвращаемое значение:
// ПараметрКоманды - значение из переменной ЭтотОбъект
//
// Функция устанавливает описание параметра для справки
// возвращает текущий параметр команды
//
// Параметры:
// НовыеОписание - строка - строка с новым описанием, отличным от переданного в момент создания
//
// Возвращаемое значение:
// ПараметрКоманды - значение из переменной ЭтотОбъект
// Функция устанавливает подробное описание параметра для справки
// возвращает текущий параметр команды
//
// Параметры:
// ВходящееПодробноеОписание - строка - строка с новым описанием, отличным от переданного в момент создания
//
// Возвращаемое значение:
// ПараметрКоманды - значение из переменной ЭтотОбъект
//
// Функция устанавливает дополнительный синоним/псевдоним параметра для справки
// возвращает текущий параметр команды
//
// Параметры:
// СтрокаПсевдонима - строка - строка с новым псевдонимом, отличным от переданного в момент создания
//
// Возвращаемое значение:
// ПараметрКоманды - значение из переменной ЭтотОбъект
// Функция устанавливает признак обязательности указания данного параметра
// возвращает текущий параметр команды
//
// Параметры:
// Признак - булево - признак обязательности указания данного параметра (по умолчанию Истина)
//
// Возвращаемое значение:
// ПараметрКоманды - значение из переменной ЭтотОбъект
// (ЗАГОТОВКА) Функция устанавливает путь и место в файле при получении настроек
// возвращает текущий параметр команды
//
// Параметры:
// ПутьКФайлу - строка - путь к файлу для чтения
// МестоВФайле - строка - путь в файле, в формате "general.force"
//
// Возвращаемое значение:
// ЭтотОбъект - класс ПараметрКоманд
// Функция устанавливает произвольный тип параметра
// возвращает текущий параметр команды
//
// Параметры:
// ВходящийКлассЗначенияПараметра - класс - Произвольный класс, реализующий ряд обязательных функций
// ВходящийТипПараметра - тип - тип значения параметра
// ВходящийТипЭлементаПараметра - Тип - тип элементов значения параметра, если тип Массив
//
// Возвращаемое значение:
// ПараметрКоманды - значение из переменной ЭтотОбъект