Собственно, вот мое решение. Каждый пункт проверял - все работает. Валидатор... как обычно.
Что не так?
package com.javarush.task.task17.task1710;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Locale;
/*
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) throws IOException, ParseException {
//start here - начни тут
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String string = reader.readLine();
String[] array = string.split(" ");
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy", Locale.ENGLISH);
switch (array[0]){
case "-c":
Create(array[1],array[2].charAt(0),dateFormat.parse(array[3]));
break;
case "-u":
Update(Integer.parseInt(array[1]),array[2],array[3].charAt(0),dateFormat.parse(array[4]));
break;
case "-d":
Delete(Integer.parseInt(array[1]));
break;
case "-i":
Info(Integer.parseInt(array[1]));
}
}
public static void Create(String name, char sex, Date bd) {
switch (sex){
case 'м':
allPeople.add(Person.createMale(name, bd));
break;
case 'ж':
allPeople.add(Person.createFemale(name, bd));
break;
}
System.out.println(allPeople.size()-1);
}
public static void Update(int id, String name, char sex, Date bd){
// System.out.println(allPeople.size());
Person person = allPeople.get(id);
person.setName(name);
person.setBirthDate(bd);
person.setSex(sex=='м'? Sex.MALE:Sex.FEMALE);
// System.out.println(allPeople.size());
}
public static void Delete(int id){
// System.out.println(allPeople.size());
Person person = allPeople.get(id);
person.setName(null);
person.setBirthDate(null);
person.setSex(null);
// System.out.println(allPeople.size());
}
public static void Info(int id){
Person person = allPeople.get(id);
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MMM-yyyy", Locale.ENGLISH);
System.out.println(person.getName()+ " "+(person.getSex()==Sex.MALE ? "м ":"ж ")+dateFormat.format(person.getBirthDate()));
}
}