Пишет в требованиях по каждому пункту что не всех добавляю/обновляю/удаляю/печатаю.
Хотя проверял сам, всё вроде бы корректно
package com.javarush.task.task17.task1711;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import java.util.zip.DataFormatException;
/*
CRUD 2
*/
public class Solution {
public static volatile 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 ParseException {
//start here - начни тут
SimpleDateFormat formatIn = new SimpleDateFormat("dd/MM/YYYY", Locale.ENGLISH);
SimpleDateFormat formatOut = new SimpleDateFormat("dd-MMM-YYYY", Locale.ENGLISH);
switch (args[0]) {
case "-c": {
synchronized (allPeople) {
for (int i = 1; !(args[i].isEmpty()); i += 3) {
if (args[i + 1].equals("м")) {
allPeople.add(Person.createMale(args[i], formatIn.parse(args[i + 2])));
System.out.println(allPeople.size() - 1);
} else {
allPeople.add(Person.createFemale(args[i], formatIn.parse(args[i + 2])));
System.out.println(allPeople.size() - 1);
}
}
}
}
case "-u": {
synchronized (allPeople) {
for (int i = 1; !(args[i].isEmpty()); i += 4) {
Person person = allPeople.get(Integer.parseInt(args[i]));
person.setName(args[i + 1]);
Sex sex = args[i + 2].equals("м") ? Sex.MALE : Sex.FEMALE;
person.setSex(sex);
person.setBirthDate(formatIn.parse(args[i + 3]));
}
}
}
case "-d": {
synchronized (allPeople) {
for (int i = 1; !(args[i].isEmpty()); i++) {
Person person = allPeople.get(Integer.parseInt(args[i]));
person.setName(null);
person.setSex(null);
person.setBirthDate(null);
}
}
}
case "-i": {
synchronized (allPeople) {
for (int i = 1; !(args[i].isEmpty()); i++) {
Person person = allPeople.get(Integer.parseInt(args[i]));
String sex = person.getSex().equals(Sex.MALE) ? "м":"ж";
System.out.println(person.getName()+" "+sex+" "+formatOut.format(person.getBirthDate()));
}
}
}
}
}
}