Hey guys,
just wondering if anyone can spot a bug in my code which isn't allowing validation?
Thanks so much
package com.codegym.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;
/*
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 {
// Start here
if (args.length != 0){
switch(args[0]){
case "-c":
synchronized (allPeople) {
int sex = 2;
int db = 3;
for (int i = 1; i < args.length; i += 3) {
Date date = new SimpleDateFormat("dd mm yyyy", Locale.ENGLISH).parse(args[db]);
if (args[sex].equals("m")) {
allPeople.add(Person.createMale(args[i], date));
} else if (args[sex].equals("f")) {
allPeople.add(Person.createFemale(args[i], date));
}
System.out.println(allPeople.size() - 1);
sex += 3;
db += 3;
}
break;
}
case "-u":
synchronized (allPeople) {
int name = 2;
int sex2 = 3;
int db2 = 4;
for (int i = 1; i < args.length; i += 4) {
Person updatePerson = allPeople.get(i);
Date date2 = new SimpleDateFormat("dd mm yyyy", Locale.ENGLISH).parse(args[db2]);
updatePerson.setName(args[name]);
updatePerson.setBirthDate(date2);
if (args[sex2].equals("m")) {
updatePerson.setSex(Sex.MALE);
} else if (args[sex2].equals("f")) {
updatePerson.setSex(Sex.FEMALE);
}
name += 4;
sex2 += 4;
db2 += 4;
}
break;
}
case "-d":
synchronized (allPeople) {
for (int i = 1; i < args.length; i++) {
Person delete = allPeople.get(i);
delete.setSex(null);
delete.setBirthDate(null);
delete.setName(null);
}
break;
}
case "-i":
synchronized (allPeople) {
SimpleDateFormat sdf = new SimpleDateFormat("MMM dd yyyy", Locale.ENGLISH);
for (int i = 1; i < args.length; i++) {
Person print = allPeople.get(i);
String name2 = print.getName();
String gender = "";
if (print.getSex().equals(Sex.MALE)) {
gender = "m";
} else {
gender = "f";
}
System.out.println(name2 + " " + gender + " " + sdf.format(print.getBirthDate()));
}
break;
}
}
}
}
}