public static class PersonScannerAdapter implements PersonScanner { private Scanner fileScanner; public PersonScannerAdapter(Scanner fileScanner) { this.fileScanner = fileScanner; } @Override public Person read() throws IOException, ParseException { String firstName = null; String middleName = null; String lastName = null; String stringDate = null; Date date = null; String line = fileScanner.nextLine (); String[] arrayString = line.split(" "); lastName = arrayString[0]; firstName = arrayString[1]; middleName = arrayString[2]; stringDate = line.substring(line.indexOf(middleName)); date = new SimpleDateFormat("dd MM yyyy").parse(stringDate); return new Person(firstName, middleName, lastName, date); } @Override public void close() throws IOException { fileScanner.close(); } }