Skip to content

Latest commit

 

History

History
882 lines (722 loc) · 39.5 KB

readme.md

File metadata and controls

882 lines (722 loc) · 39.5 KB

Описание публичного интерфейса библиотеки

Класс КонсольноеПриложение:

Основной класс для реализации консольного приложения

Публичные свойства

ФлагВерсия
// Класс ПараметрКоманды, для доступа к установленному значению из вне
ВерсияПриложения
// Строковое представление версии приложения

Версия

// Процедура добавляет версию приложения,
// при вызове данной опции, показывается установленная версия и
// завершается выполнение с кодом (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"
//
// Возвращаемое значение:
//   ЭтотОбъект - класс ПараметрКоманд
ПроизвольныйТип
// Функция устанавливает произвольный тип параметра
// возвращает текущий параметр команды
//
// Параметры:
//   ВходящийКлассЗначенияПараметра - класс - Произвольный класс, реализующий ряд обязательных функций
//   ВходящийТипПараметра           - тип   - тип значения параметра
//   ВходящийТипЭлементаПараметра   - Тип   - тип элементов значения параметра, если тип Массив
//
// Возвращаемое значение:
//   ПараметрКоманды - значение из переменной ЭтотОбъект