failing condition 3, 4, 5, 6. if anyone can help.
package com.codegym.task.task17.task1711;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.text.SimpleDateFormat;
import java.text.ParseException;
import java.util.Locale;
/*
CRUD 2
*/
public class Solution {
public static volatile List<Person> allPeople = new ArrayList<>();
static {
allPeople.add(Person.createMale("Donald Chump", new Date())); // id=0
allPeople.add(Person.createMale("Larry Gates", new Date())); // id=1
}
public static void main(String[] args) throws ParseException {
SimpleDateFormat f1 = new SimpleDateFormat("dd mm yyyy", Locale.ENGLISH);
SimpleDateFormat f2 = new SimpleDateFormat("MMM dd yyyy", Locale.ENGLISH);
switch (args[0]) {
case "-c":
synchronized (allPeople) {
for (int i = 0; i < args.length; i += 3) {
String n = args[i + 1];
String s = args[i + 2];
String b = args[i + 3];
Date d = f1.parse(b);
Person p = null;
if (s.equals("m"))
p = Person.createMale(n, d);
else
p = Person.createFemale(n, d);
allPeople.add(p);
System.out.println(allPeople.size() - 1);
}
}
break;
case "-u":
synchronized (allPeople) {
for (int i = 0; i < args.length; i += 4) {
String o = args[i + 1];
String n = args[i + 2];
String s = args[i + 3];
String b = args[i + 4];
Date d = f1.parse(b);
Person p = allPeople.get(Integer.parseInt(o));
p.setName(n);
if (s.equals("m"))
p.setSex(Sex.MALE);
else
p.setSex(Sex.FEMALE);
p.setBirthDate(d);
}
}
break;
case "-d":
synchronized (allPeople) {
for (int i = 0; i < args.length; i++) {
String o = args[i + 1];
Person p = allPeople.get(Integer.parseInt(o));
p.setName(null);
p.setSex(null);
p.setBirthDate(null);
}
}
break;
case "-i":
synchronized (allPeople) {
for (int i = 0; i < args.length; i += 3) {
String o = args[i + 1];
String n = args[i + 2];
String s = args[i + 3];
String b = args[i + 4];
Person p = allPeople.get(Integer.parseInt(o));
Date d = p.getBirthDate();
String x = f2.format(d);
System.out.print(p.getName() + " ");
if (p.getSex() == Sex.MALE)
System.out.print("m ");
else
System.out.print("f ");
System.out.print(x);
}
}
break;
}
}
}