Adding to list doesn't work properly and updating too. Don't know why :/
package pl.codegym.task.task17.task1710;
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 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 {
// Zacznij tutaj
switch(args[0])
{
case "-c":
addToList(args);
break;
case "-u":
updatePerson(args);
break;
case "-d":
logicalDeleteFromList(args);
break;
case "-i":
displayInfo(args);
break;
default:
System.out.println("Wrong arguments!!!");
}
}
public static void addToList(String[] args) throws ParseException {
String name = args[1];
String sex = args[2];
String date = args[3];
date = date.replace("\"", "");
Date date1 = new SimpleDateFormat("MM/dd/yyyy", Locale.ENGLISH).parse(date);
if (sex.equals("m"))
{
allPeople.add(Person.createMale(name, date1));
} else {
allPeople.add(Person.createFemale(name, date1));
}
System.out.println(allPeople.size()-1);
}
public static void updatePerson(String[] args) throws ParseException {
int id = Integer.parseInt(args[1]);
String name = args[2];
String sex = args[3];
String date = args[4];
date = date.replace("\"", "");
Date date1 = new SimpleDateFormat("MM/dd/yyyy", Locale.ENGLISH).parse(date);
/*if (sex.equals("m"))
allPeople.set(id, Person.createMale(name, date1));
else
allPeople.set(id, Person.createFemale(name, date1));*/
if (sex.equals("m")) {
allPeople.get(id).setSex(Sex.MALE);
} else {
allPeople.get(id).setSex(Sex.FEMALE);
}
allPeople.get(id).setName(name);
allPeople.get(id).setBirthDate(date1);
}
public static void logicalDeleteFromList(String[] args) {
int id = Integer.parseInt(args[1]);
allPeople.get(id).setName(null);
allPeople.get(id).setBirthDate(null);
allPeople.get(id).setSex(null);
}
public static void displayInfo(String[] args) {
DateFormat newDate = new SimpleDateFormat("MMM dd yyyy", Locale.ENGLISH);
Person osoba1 = allPeople.get(Integer.parseInt(args[1]));
String plec = "";
if(osoba1.getSex().equals(Sex.MALE))
{
plec = "m";
}
else
{
plec = "f";
}
System.out.println(osoba1.getName() + " " + plec + " " + newDate.format(osoba1.getBirthDate()));
}
}