"Xin chào, quân nhân!"
"Chúc mừng bạn đã nâng cấp kỹ năng của mình. Chúng tôi cần những người sẵn sàng làm bất cứ điều gì."
"Tôi chắc chắn rằng bạn vẫn còn nhiều nhiệm vụ chưa hoàn thành. Đã đến lúc hoàn thành một số trong số chúng!"
36
Nhiệm vụ
Java Collections, mức độ, bài học
Log parser (part 1)
Today we're going to write a log parser.
The log file has the following format:
ip username date event status
where:
ip is the IP address from which the user generated the event, user is the username (one or more words separated by spaces), date is the date of the event.
36
Nhiệm vụ
Java Collections, mức độ, bài học
Log parser (part 2)
Implement the UserQuery interface in the LogParser class:
2.1. The getAllUsers() method must return all users.
2.2. The getNumberOfUsers() method must return the number of unique users.
2.3. The getNumberOfUserEvents() method must return the number of events from a specific user.
36
Nhiệm vụ
Java Collections, mức độ, bài học
Log parser (part 3)
Implement the DateQuery interface in the LogParser class:
3.1. The getDatesForUserAndEvent() method must return the dates when a specific
user generated a specific event.
3.2. The getDatesWhenSomethingFailed() method must return the dates when
any event failed (FAILED status).
36
Nhiệm vụ
Java Collections, mức độ, bài học
Log parser (part 4)
Implement the EventQuery interface in the LogParser class:
4.1. The getNumberOfEvents() method must return the number of events in the specified period.
4.2. The getAllEvents() method must return all events in the specified period.
36
Nhiệm vụ
Java Collections, mức độ, bài học
Log parser (part 5)
As you noticed, there are a huge number of combinations of parameter to choose from for selecting
specific records from a log file. Cover them all with appropriate methods.
It's thankless work. So, we'll implement our own query language (QL).
36
Nhiệm vụ
Java Collections, mức độ, bài học
Log parser (part 6)
Let's add support for query parameters to our query language.
Examples of queries with parameters:
1) get ip for user = "Jack";
2) get user for event = "COMPLETE_TASK";
3) get event for date = "03.01.2014 03:45:23".
36
Nhiệm vụ
Java Collections, mức độ, bài học
Log parser (part 7)
Now give our query language support for an additional query parameter.
The additional parameter will be responsible for the range of dates we are interested in.
Example query: get ip for user = "Eduard Bentley" and date between
"11.12.2013 0:00:00" and "03.01.2014 23:59:59".
9
Nhiệm vụ
Java Collections, mức độ, bài học
Log parser (part 8)
You've implemented a log parser that reads from different files.
In addition to the parser, you also implemented your own query language. We need it in order to minimize
the number of methods. A line in our log file contained a total of 5 parameters plus one optional parameter.