Проверил всё миллион раз, на примерах из лога всё работает. Не знаю, что ещё нужно валли (((
public Set<Object> execute(String query) {
if (query.contains("for")) {
HashSet<Object> set = new HashSet<>();
String tmpuser = null;
if (query.contains("for user") || query.contains("for date")){
String[] usplit = query.split("=");
tmpuser = usplit[1].replace("\"", "");
}
String[] split = query.split(" ");
String value1 = split[5].replace("\"", "");
String field1 = split[1];
String field2 = split[3];
if (query.contains("for user")){
value1 = tmpuser;
}
if (query.contains("for date")){
DateFormat format = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
try {
Date val = format.parse(tmpuser);
value1 = val.toString();
} catch (ParseException e) {
e.printStackTrace();
}
}
for (Logs l : getLogs()){
/* System.out.println(l.toString());
System.out.println(l.toString().contains(value1));*/
if (l.toString().contains(value1)){
switch (field1){
case "ip":
set.add(l.ip.trim());
break;
case "user":
set.add(l.user);
break;
case "event":
eventadd();
for (Event e : eventslist) {
if (l.event.contains(String.valueOf(e))) {
set.add(e);
}}
break;
case "status":
statadd();
for (Status s : statlist){
if (l.status.contains(String.valueOf(s))){
set.add(s);
}
}
break;
case "date":
set.add(l.date);
break;
}
}
}
return set;
package com.javarush.task.task39.task3913;
import java.nio.file.Paths;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Solution {
public static void main(String[] args) {
LogParser logParser = new LogParser(Paths.get("c:/logs/"));
logParser.execute("get date for user = \"Eduard Petrovich Morozko");
}
}