core java excersise
===

Core Java Coding exercise:

Given a CSV of this format:
id,name,relation,related_id,dob
1,Peter,,,19/08/1965
2,Roger,father,4,19/04/1945
3,Ann,wife,2,19/05/1946
4,Albert,son,2,19/03/1994
5,Sam,uncle,1,19/08/1940
6,Satheesh,husband,7,19/08/1981
7,Nisha,,,16/07/1983
8,Dinesh,,,15/04/1935
9,Angie,niece,8,11/11/1956

Explained:
2,Roger,father,4,19/04/1945
4,Albert,son,2,19/03/1994

Roger has id: 2 and is the father of 4
Albert has id 4 and is the son of 2

Relations are not bi directional.

1. Parse the CSV into a POJO model.
2. Implement queries in core java to find the following:
   * Select on name. Given a name, the system should output all people who have that name. Implement the wild card % too (only at the end)
   * Implement the query, "select people where relation = '<filter>'"
   * Implement the query, "select people where relation = null"
   * Correct the CSV to make the relation bidirectional if and only if (iff) one side of the relation is not related.
   * Implement the query "select * from ppl order by dob desc"
   
The CSV will be updated every 30 mins, add a thread to read the new contents from the CSV every 15 mins. 

This operation should be thread safe and no queries should run when the update operation is underway.
   