3rd and 4th requirement is not passing. :(
package com.codegym.task.task17.task1711;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.*;
import java.io.*;
import java.text.*;
/*
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 Exception, ArrayIndexOutOfBoundsException {
switch(args[0]){
case "-c":
synchronized(allPeople){
for(int i =1; i<args.length; i++){
String name = args[i];
Date date = new SimpleDateFormat("MM dd yyyy", Locale.ENGLISH).parse(args[i+2] + " " + args[i+3] + " " + args[i+4]);
//String sex = args[i+2];
if(args[i+1].equals("m")){
allPeople.add(Person.createMale(name, date));
}
else{
allPeople.add(Person.createFemale(name, date));
}
System.out.println(allPeople.size()-1);
}
break;
}
case "-u":
synchronized(allPeople){
for(int i =1; i<args.length; i++){
String name = args[i+1];
Date date = new SimpleDateFormat("MM dd yyyy", Locale.ENGLISH).parse(args[i+2] + " " + args[i+3] + " "+ args[i+4]);
Person allperson = allPeople.get(Integer.parseInt(args[i]));
allperson.setName(name);
allperson.setBirthDate(date);
String sex = args[i+2];
if(sex.equals("m")){
allperson.setSex(Sex.MALE);
}
else{
allperson.setSex(Sex.FEMALE);
}
}
}
break;
case "-d":
synchronized(allPeople){
for(Person allperson: allPeople){
allperson.setName(null);
allperson.setBirthDate(null);
allperson.setSex(null);
}
}
break;
case "-i":
synchronized(allPeople){
for(int i=1; i<args.length; i++){
Person allPerson = allPeople.get(Integer.parseInt(args[i]));
String gender = "";
if (allPerson.getSex().equals(Sex.MALE)) {
gender = "m";
} else {
gender = "f";
}
SimpleDateFormat date = new SimpleDateFormat("MMM dd yyyy", Locale.ENGLISH);
System.out.println(allPerson.getName() + " " + gender + " " + date.format(allPerson.getBirthDate()));
}
break;
}
}
}
}