<commit_before>package ru.job4j.module2;

import java.util.Arrays;

/**
 *Class Tracker решение задачи второго модуля.
 *@author <NAME>
 *@since 26.07.2017
*/
public class StartUI {
	/**
	*метод main.
	*@param args - args
	*/
	public static void main(String[] args) {
		Tracker tracker = new Tracker();
		ConsoleInput console = new ConsoleInput();
		int choice;
		do {
			showMenu();
			choice = Integer.parseInt(console.ask("Enter your choice "));
			switch (choice) {
				case 0:
				showItem(tracker.add(addNewItem()));
				break;
				case 1:
					showItems(tracker.getAll());
					break;
				case 2:
					tracker.update(editItem());
					break;
				case 3:
					tracker.delete(console.ask("Please, enter item's id "));
					break;
				case 4:
					showItem(tracker.findById(console.ask("Please, enter item's id ")));
					break;
				case 5:
					showItems(tracker.findByName(console.ask("Please, enter item's name ")));
					break;
				default:
			}
		} while (choice != 6);
	}
	/**
	*метод выводит на экран меню.
	*/
	static void showMenu() {
		System.out.println("0. Add new item.");
		System.out.println("1. Show all items.");
		System.out.println("2. Edit item.");
		System.out.println("3. Delete item.");
		System.out.println("4. Find item by Id.");
		System.out.println("5. Find items by name.");
		System.out.println("6. Exit program.");
	}
	/**
	*метод опрашивает пользователя и заполняет поля заявки.
	*@return item - заявка
	*/
	static Item addNewItem() {
		ConsoleInput consoleInput = new ConsoleInput();
		Item item = new Item();
		item.setName(consoleInput.ask("Input item's name "));
		item.setDescription(consoleInput.ask("Input item's description "));
		item.setCreated(System.currentTimeMillis());
		item.setId("" + System.currentTimeMillis());
		String[] forcomments = new String[10];
		int i = 0;
		String end;
		do {
			forcomments[i++] = consoleInput.ask("Input item's comment ");
			end = consoleInput.ask("Is it all? (y/n) ");
		} while (end.equals("n"));
		item.setComments(Arrays.copyOf(forcomments, i));
		return item;
	}
	/**
	*метод выводит на экран поля заявки.
	*@param item - item
	*/
	static void showItem(Item item) {
		System.out.println("Item's name " + item.getName());
		System.out.println("Item's description " + item.getDescription());
		System.out.println("Item was created " + item.getCreated());
		System.out.println("Item's id " + item.getId());
		System.out.println("Item's comments:");
		for (String s : item.getComments()) {
			System.out.println(s);
		}
	}
	/**
	*метод выводит на экран все заявки из массива.
	*@param items - массив заявок
	*/
	static void showItems(Item[] items) {
		System.out.println("Items:");
		for (int i = 0; i < items.length; i++) {
			showItem(items[i]);
			System.out.println("");
		}
	}
	/**
	*метод редактирует заявку.
	*@return item - измененная заявка
	*/
	static Item editItem() {
		Item item = new Item();
		ConsoleInput consoleInput = new ConsoleInput();
		item.setId(consoleInput.ask("Please, enter item's id "));
		item.setName(consoleInput.ask("Input item's new name "));
		item.setDescription(consoleInput.ask("Input item's new description "));
		item.setCreated(System.currentTimeMillis());
		String[] forcomments = new String[10];
		int i = 0;
		String end;
		do {
			forcomments[i++] = consoleInput.ask("Input item's new comment ");
			end = consoleInput.ask("Is it all? (y/n) ");
		} while (end.equals("n"));
		item.setComments(Arrays.copyOf(forcomments, i));
		return item;
	}
}<commit_msg>1. Используя класс ConsoleInput в классе StartUI обеспечить полноценную работу всего приложения [#784]<commit_after>package ru.job4j.module2;

import java.util.Arrays;

/**
 *Class StartUI решение задачи второго модуля.
 *@author <NAME>
 *@since 26.07.2017
*/
public class StartUI {
	/**
	*добавление заявки.
	*/
	private static final int ADD = 0;
	/**
	*получить список заявок.
	*/
	private static final int GETALL = 1;
	/**
	*изменить заявку.
	*/
	private static final int UPDATE = 2;
	/**
	*удалить заявку.
	*/
	private static final int DELETE = 3;
	/**
	*найти заявку по id.
	*/
	private static final int FINDBYID = 4;
	/**
	*найти заявки по имени.
	*/
	private static final int FINDBYNAME = 5;
	/**
	*выход.
	*/
	private static final int EXIT = 6;
	/**
	*ввод данных.
	*/
	private Input input;
	/**
	*вывод данных.
	*/
	private Output output;
	/**
	*tracker.
	*/
	private Tracker tracker;
	/**
	*конструктор.
	*@param input - ввод данных
	*@param output - вывод данных
	*@param tracker - tracker
	*/
	public StartUI(Input input, Output output, Tracker tracker) {
		this.input = input;
		this.output = output;
		this.tracker = tracker;
	}
	/**
	*метод init.
	*/
	public void init() {
		int choice;
		do {
			this.showMenu();
			choice = Integer.parseInt(input.ask("Enter your choice "));
			switch (choice) {
				case ADD:
				this.showItem(tracker.add(this.addNewItem()));
				break;
				case GETALL:
					this.showItems(tracker.getAll());
					break;
				case UPDATE:
					tracker.update(this.editItem());
					break;
				case DELETE:
					tracker.delete(input.ask("Please, enter item's id "));
					break;
				case FINDBYID:
					this.showItem(tracker.findById(input.ask("Please, enter item's id ")));
					break;
				case FINDBYNAME:
					this.showItems(tracker.findByName(input.ask("Please, enter item's name ")));
					break;
				default:
			}
		} while (choice != EXIT);
	}
	/**
	*метод main.
	*@param args - args
	*/
	public static void main(String[] args) {
		Input input = new ConsoleInput();
		Output output = new ConsoleOutput();
		Tracker tracker = new Tracker();
		new StartUI(input, output, tracker).init();
	}
	/**
	*метод выводит на экран меню.
	*/
	private void showMenu() {
		System.out.println("0. Add new item.");
		System.out.println("1. Show all items.");
		System.out.println("2. Edit item.");
		System.out.println("3. Delete item.");
		System.out.println("4. Find item by Id.");
		System.out.println("5. Find items by name.");
		System.out.println("6. Exit program.");
	}
	/**
	*метод опрашивает пользователя и заполняет поля заявки.
	*@return item - заявка
	*/
	private Item addNewItem() {
		Item item = new Item();
		item.setName(input.ask("Input item's name "));
		item.setDescription(input.ask("Input item's description "));
		item.setCreated(System.currentTimeMillis());
		item.setId("" + System.currentTimeMillis());
		String[] forcomments = new String[10];
		int i = 0;
		String end;
		do {
			forcomments[i++] = input.ask("Input item's comment ");
			end = input.ask("Is it all? (y/n) ");
		} while (end.equals("n"));
		item.setComments(Arrays.copyOf(forcomments, i));
		return item;
	}
	/**
	*метод выводит на экран поля заявки.
	*@param item - item
	*/
	private void showItem(Item item) {
		this.output.write("Item's name " + item.getName());
		this.output.write("Item's description " + item.getDescription());
		this.output.write("Item was created " + item.getCreated());
		this.output.write("Item's id " + item.getId());
		this.output.write("Item's comments:");
		for (String s : item.getComments()) {
			this.output.write(s);
		}
	}
	/**
	*метод выводит на экран все заявки из массива.
	*@param items - массив заявок
	*/
	private void showItems(Item[] items) {
		System.out.println("Items:");
		for (int i = 0; i < items.length; i++) {
			showItem(items[i]);
			System.out.println("");
		}
	}
	/**
	*метод редактирует заявку.
	*@return item - измененная заявка
	*/
	private Item editItem() {
		Item item = new Item();
		item.setId(input.ask("Please, enter item's id "));
		item.setName(input.ask("Input item's new name "));
		item.setDescription(input.ask("Input item's new description "));
		item.setCreated(System.currentTimeMillis());
		String[] forcomments = new String[10];
		int i = 0;
		String end;
		do {
			forcomments[i++] = input.ask("Input item's new comment ");
			end = input.ask("Is it all? (y/n) ");
		} while (end.equals("n"));
		item.setComments(Arrays.copyOf(forcomments, i));
		return item;
	}
}
{'fraction_non_alphanumeric': 0.16167212289095945, 'fraction_numerical': 0.008310249307479225, 'mean_word_length': 3.50028328611898, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1559698', 'n_tokens_mistral': 3182, 'n_tokens_neox': 2874, 'n_words': 692}