в чем нарушена логика ???
package com.javarush.task.task17.task1711;
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 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) {
//start here - начни тут
// if (args[0].equals("-c")) createPerson(args[1], args[2], args[3]);
// else if (args[0].equals("-u")) updatePerson(args[1], args[2], args[3], args[4]);
// else if (args[0].equals("-d")) deletePerson(args[1]);
// else if (args[0].equals("-i")) infoPesron(args[1]);
switch (args[0]) {
case "-c":
for (int i = 1; i < args.length; i += 3) {
synchronized (allPeople) {
createPerson(args[i], args[i + 1], args[i + 2]);
}
}
case "-u":
for (int i = 1; i < args.length; i += 4) {
synchronized (allPeople) {
updatePerson(args[i], args[i + 1], args[i + 2], args[i + 3]);
}
}
case "-d":
for (int i = 1; i < args.length; i++) {
synchronized (allPeople) {
deletePerson(args[i]);
}
}
case "-i":
synchronized (allPeople) {
for (int i = 1; i < args.length; i++) {
infoPesron(args[i]);
}
}
}
}
public static Sex choseSex(String sex) {
Sex SEX = null;
if (sex.equals("м")) SEX = Sex.MALE;
if (sex.equals("ж")) SEX = Sex.FEMALE;
return SEX;
}
public static Date chooseBDay(String s) {
Date personBD = null;
DateFormat format = new SimpleDateFormat("dd/MM/yyyy", Locale.ENGLISH);
try {
personBD = format.parse(s);
} catch (ParseException e) {
//System.out.println("Указан неправильный формат даты рождения");
e.printStackTrace();
}
return personBD;
}
public static void createPerson(String name, String sex, String bd) {
Person person = null;
String NAME = name;
Sex SEX = choseSex(sex);
Date date = chooseBDay(bd);
if (SEX.equals(Sex.MALE)) person = Person.createMale(name, date);
if (SEX.equals(Sex.FEMALE)) person = Person.createFemale(name, date);
allPeople.add(person);
System.out.println(allPeople.indexOf(person));
}
public static void updatePerson(String id, String name, String sex, String bd) {
Person person = allPeople.get(Integer.parseInt(id));
person.setName(name);
person.setSex(choseSex(sex));
person.setBirthDate(chooseBDay(bd));
}
public static void deletePerson(String id) {
int size_ = allPeople.size();
Person person = allPeople.get(Integer.parseInt(id));
person.setName(null);
person.setSex(null);
person.setBirthDate(null);
size_ = allPeople.size();
}
public static void infoPesron(String id) {
Person person = allPeople.get(Integer.parseInt(id));
String sex = "";
if (person.getSex().equals(Sex.MALE)) sex = "м";
else if (person.getSex().equals(Sex.FEMALE)) sex = "ж";
SimpleDateFormat sm = new SimpleDateFormat("dd-MMM-yyyy");
String bDay = sm.format(person.getBirthDate());
String info = person.getName() + " " + sex + " " + bDay;
System.out.println(info);
}
}