протестировал всё. вроде тесты показывают что всё Ок.
валидатор пишет:
1. убедись, что выводит id добавленного человека. А что не выводит? Протестировал - выводит.
2. убедись, что правильно обновляется дата рождения человека. А что не обновляется?
3. Убедись, что удаляется дата рождения человека с заданным id, т.е дата рождения равно null. А что не будет равно null?
4. Убедись, что выводится на экран дата рождения человека (формат 15-Apr-1990). Протестировал - выводится именно в этом формате.
Помогите разобраться. Спасибо!
package com.javarush.task.task17.task1710;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
/*
CRUD
*/
public class Solution {
public static List<Person> allPeople = new ArrayList<Person>();
static {
allPeople.add(Person.createMale("Иванов Иван", new Date())); //сегодня родился id=0
allPeople.add(Person.createMale("Петров Петр", new Date())); //сегодня родился id=1
}
public static void main(String[] args) {
//BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
try {
if (!args[0].equals("-c") && !args[0].equals("-u") && !args[0].equals("-d") && !args[0].equals("-i")) {
System.out.println("Первый параметр командной строки должен быть один из следующих: -c, -u, -d или -i");
}
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy", Locale.ENGLISH);
//добавление элемента в список
if (args[0].equals("-c")) {
try {
Person newPerson = null;
if (args[2].equals("м")) {
newPerson = Person.createMale(args[1].toString(), sdf.parse(args[3].toString()));
allPeople.add(newPerson);
System.out.println("Мужчина c id = " + (allPeople.lastIndexOf(newPerson)) + " добавлен успешно");
//System.out.println("Мужчина не был добавлен");
} else if (args[2].equals("ж")) {
newPerson = Person.createFemale(args[1].toString(), sdf.parse(args[3].toString()));
allPeople.add(newPerson);
System.out.println("Женщина c id = " + (allPeople.lastIndexOf(newPerson)) + " добавлена успешно");
} else
System.out.println("Третий параметр командной строки должен быть один из следующих: м или ж");
} catch (ParseException e) {
System.out.println("Введите дату рождения в формате dd/mm/yyyy");
} catch (IndexOutOfBoundsException e) {
System.out.println("Ошибка добавления человека в список");
}
}
if (args[0].equals("-u")) {
try {
Person modifiedPerson = allPeople.get(Integer.parseInt(args[1].toString()));
modifiedPerson.setName(args[2]);
try {
modifiedPerson.setBirthDay(sdf.parse(args[4].toString()));
} catch (ParseException e) {
System.out.println("Введите дату рождения в формате dd/MM/yyyy");
}
if (args[3].equals("м"))
modifiedPerson.setSex(Sex.MALE);
else if (args[3].equals("ж")) {
modifiedPerson.setSex(Sex.FEMALE);
} else
System.out.println("Третий параметр командной строки должен быть один из следующих: м или ж");
System.out.println("Обновление данных о человеке с id = " + args[1].toString() + " произведено");
String SexS = "ж";
if (modifiedPerson.getSex() == Sex.MALE) SexS = "м";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd-MMM-yyyy");
String birthday = simpleDateFormat.format(modifiedPerson.getBirthDay());
System.out.println(modifiedPerson.getName() + " " + SexS + " " + birthday);
} catch (IndexOutOfBoundsException e) {
System.out.println("Не существует человека с id = " + args[1] + " или введены не все параметры для изменения записи");
}
}
if (args[0].equals("-d")) {
try {
//allPeople.remove(Integer.parseInt(args[1]));// delete the record in the list
Person modifiedPerson = allPeople.get(Integer.parseInt(args[1].toString()));
modifiedPerson.setName(null);
modifiedPerson.setSex(null);
modifiedPerson.setBirthDay(null);
System.out.println("Удалён человек с id = " + args[1]);
} catch (Exception e) {
System.out.println("Не существует человека с id = " + args[1]);
}
}
if (args[0].equals("-i")) {
// print the record from the list
try {
Person modifiedPerson = allPeople.get(Integer.parseInt(args[1].toString()));
String SexS = "ж";
if (modifiedPerson.getSex() == Sex.MALE) SexS = "м";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd-MMM-yyyy");
String birthday = simpleDateFormat.format(modifiedPerson.getBirthDay());
System.out.println(modifiedPerson.getName() + " " + SexS + " " + birthday);
} catch (IndexOutOfBoundsException e) {
System.out.println("Не существует человека с id = " + args[1].toString());
} catch (Exception e) {
e.printStackTrace();
}
}
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("Не введена командная строка");
} catch (Exception e) {
e.printStackTrace();
}
}
}