Приступать к выполнению после завершения задачи по созданию View и MainController.
Пользователь вводит с консоли строку вида commandName|param1|param2|…|paramN, где commandName – название команды, paramN – параметры необходимые для выполнения команды.
Контроллер (MainController) хранит в себе все команды, с которыми может работать приложение, и после каждого ввода пробегает по этому списку, запуская на выполнение необходимую команду. Для этого скорей всего придется переписать логику метода run() в классе MainController. Если введенная строка не соответствует ни одному из известных шаблонов команд, тогда в консоль выводим сообщение о том, что команда не найдена.
В пакете controller создать пакет command, где будут находиться классы всех команд. Каждый класс-команда должен содержать в себе поле final String template = «шаблон команды».
Создать интерфейс Command, который должен содержать следующие методы:
boolean canProcess(String command) Метод на вход принимает введенную пользователем строку и возвращает true, если реализующий этот интерфейс класс может обработать указанную команду, иначе false. Проще говоря, если команда соответствует шаблону, тогда true.
void process(String command). В этом методе описывается логика поведения команды. На вход приходит введенная пользователем строка.
Команда exit (без параметров):
создать класс Exit реализующий интерфейс Command.
boolean canProcess(String command) -> проверяет соответствует ли введенная пользователем строка шаблону команды exit.
void process(String command) -> выводит в консоль сообщение о завершении работы и закрывает приложение.
команда может выполняться без подключения к базе данных
все последующие команды реализуют интерфейс Command и создаются аналогично
Команда help (без параметров):
выводит в консоль все возможные команды и их параметры.
команда может выполняться без подключения к базе данных.
Команда list (без параметров):
выводит в консоль список всех существующих в базе данных таблиц в виде
[table1, table2, … , tableN]
команда НЕ МОЖЕТ выполняться без подключения к базе данных
Команда find (параметр tableName):
выводит в консоль содержимое таблицы tableName в виде
void process(String command) -> выводит в консоль сообщение о том, что введенная команда не существует.
Команда connect(параметры -> databaseName|userName|password)
производит подключение к базе данных
Обработать ситуацию когда пользователь попытается выполнить команду для которой обязательно требуется подключение к базе данных, для этого создать класс-команду IsConnect реализующий интерфейс Command. Метод isProcess возвращает true если коннект с базой данных НЕ установлен, иначе false
Все команды покрыть тестами
Для тех кому скучно :)
Команда insert (параметры -> tableName|field1=value1|field2=value2|…|fieldN=valueN)
вставляет в таблицу tabelName данные field1=value1|field2=value2|…|fieldN=valueN
команда НЕ МОЖЕТ выполняться без подключения к базе данных.
Команда delete (параметры -> tabelName|field1=value1)
удаляет из таблицы tabelName данные, где field1=value1
команда НЕ МОЖЕТ выполняться без подключения к базе данных
Команда update(параметры -> tableName|field1=value1| field2=value2)
обновляет данные в таблицы tabelName. В поле field1 записывается значение value1, где field2=value2
команда НЕ МОЖЕТ выполняться без подключения к базе данных
Команда select(параметры -> tableName|field1,field2,...,fieldN| key=value)
выбирает данные полей field1,field2,...,fieldN из таблицы tablName, где поле key принимает значение value1.
команда НЕ МОЖЕТ выполняться без подключения к базе данных
Приступать к выполнению после завершения задачи по созданию
View
иMainController
.Пользователь вводит с консоли строку вида
commandName|param1|param2|…|paramN
, гдеcommandName
– название команды,paramN
– параметры необходимые для выполнения команды. Контроллер (MainController
) хранит в себе все команды, с которыми может работать приложение, и после каждого ввода пробегает по этому списку, запуская на выполнение необходимую команду. Для этого скорей всего придется переписать логику методаrun()
в классеMainController
. Если введенная строка не соответствует ни одному из известных шаблонов команд, тогда в консоль выводим сообщение о том, что команда не найдена.В пакете controller создать пакет command, где будут находиться классы всех команд. Каждый класс-команда должен содержать в себе поле
final String template = «шаблон команды»
.Создать интерфейс
Command
, который должен содержать следующие методы:boolean canProcess(String command)
Метод на вход принимает введенную пользователем строку и возвращаетtrue
, если реализующий этот интерфейс класс может обработать указанную команду, иначеfalse
. Проще говоря, если команда соответствует шаблону, тогдаtrue
.void process(String command)
. В этом методе описывается логика поведения команды. На вход приходит введенная пользователем строка.Команда exit (без параметров):
Exit
реализующий интерфейсCommand
.boolean canProcess(String command)
-> проверяет соответствует ли введенная пользователем строка шаблону команды exit.void process(String command)
-> выводит в консоль сообщение о завершении работы и закрывает приложение.Command
и создаются аналогичноКоманда help (без параметров):
Команда list (без параметров):
Команда find (параметр tableName):
выводит в консоль содержимое таблицы tableName в виде
| field1 | field2 |… | fieldN |
| value1 | value2 |… | valueN1 | | value3 | value4 |… | valueN2 | | value5 | value6 |… | valueN3 |
Неподдерживаемая команда:
Unsupported
реализующий интерфейсCommand
.boolean canProcess(String command)
->всегда возвращаетtrue
.void process(String command)
-> выводит в консоль сообщение о том, что введенная команда не существует.Команда connect(параметры ->
databaseName|userName|password
)Обработать ситуацию когда пользователь попытается выполнить команду для которой обязательно требуется подключение к базе данных, для этого создать класс-команду
IsConnect
реализующий интерфейсCommand
. МетодisProcess
возвращаетtrue
если коннект с базой данных НЕ установлен, иначеfalse
Все команды покрыть тестами
Для тех кому скучно :)
Команда insert (параметры ->
tableName|field1=value1|field2=value2|…|fieldN=valueN
)tabelName
данныеfield1=value1|field2=value2|…|fieldN=valueN
Команда delete (параметры ->
tabelName|field1=value1
)tabelName
данные, гдеfield1=value1
Команда update(параметры ->
tableName|field1=value1| field2=value2
)tabelName
. В полеfield1
записывается значениеvalue1
, гдеfield2=value2
Команда select(параметры ->
tableName|field1,field2,...,fieldN| key=value
)field1,field2,...,fieldN
из таблицыtablName
, где полеkey
принимает значениеvalue1
.