if (line.trim().length() == 0) {
continue;
}
// CSV format code,title,checker,tl,ml,ol,sl,author,source,contest
String[] values = ProblemManager.split(line);
Problem problem = new Problem();
if (values.length < 2) {
messages.add(messageKey, new ActionMessage("onlinejudge.importProblem.invalidline"));
continue;
}
if (values[0].length() > 8 || values[0].length() == 0) {
messages.add(messageKey, new ActionMessage("onlinejudge.importProblem.invalidcode"));
}
problem.setCode(values[0]);
if (values[1].length() > 128 || values[1].length() == 0) {
messages.add(messageKey, new ActionMessage("onlinejudge.importProblem.invalidtitle"));
}
problem.setTitle(values[1]);
if (values.length > 2 && Boolean.valueOf(values[2]).booleanValue()) {
problem.setChecker(true);
}
Limit limit = new Limit();
Integer tl = ProblemManager.retrieveInt(values, 3);
if (tl != null) {
if (tl.intValue() < 0) {
messages.add(messageKey, new ActionMessage("onlinejudge.importProblem.invalidtl"));
} else {
limit.setTimeLimit(tl.intValue());
}
}
Integer ml = ProblemManager.retrieveInt(values, 4);
if (ml != null) {
if (ml.intValue() < 0) {
messages.add(messageKey, new ActionMessage("onlinejudge.importProblem.invalidml"));
} else {
limit.setMemoryLimit(ml.intValue());
}
}
Integer ol = ProblemManager.retrieveInt(values, 5);
if (ol != null) {
if (ol.intValue() < 0) {
messages.add(messageKey, new ActionMessage("onlinejudge.importProblem.invalidol"));
} else {
limit.setOutputLimit(ol.intValue());
}
}
Integer sl = ProblemManager.retrieveInt(values, 6);
if (sl != null) {
if (sl.intValue() < 0) {
messages.add(messageKey, new ActionMessage("onlinejudge.importProblem.invalidsl"));
} else {
limit.setSubmissionLimit(sl.intValue());
}
}
if (tl != null || ml != null || ol != null || sl != null) {
if (tl != null && ml != null && ol != null && sl != null) {
problem.setLimit(limit);
} else {
messages.add(messageKey, new ActionMessage("onlinejudge.importProblem.missinglimit"));
}
}
if (values.length > 7 && values[7].length() > 0) {
if (values[7].length() > 32) {
messages.add(messageKey, new ActionMessage("onlinejudge.importProblem.invalidauthor"));
} else {
problem.setAuthor(values[7]);
}
}
if (values.length > 8 && values[8].length() > 0) {
if (values[8].length() > 128) {
messages.add(messageKey, new ActionMessage("onlinejudge.importProblem.invalidsource"));
} else {
problem.setSource(values[8]);
}
}
if (values.length > 9 && values[9].length() > 0) {
if (values[9].length() > 128) {
messages.add(messageKey, new ActionMessage("onlinejudge.importProblem.invalidcontest"));
} else {
problem.setContest(values[9]);
}
}
ProblemEntry entry = new ProblemEntry();
entry.setProblem(problem);
if (entryMap.containsKey(problem.getCode())) {
messages.add(messageKey, new ActionMessage("onlinejudge.importProblem.reduplicatecode"));
}
entryMap.put(problem.getCode(), entry);
}
} catch (IOException e) {
messages.add("error", new ActionMessage("onlinejudge.importProblem.invalidproblemscsv"));
}
if (messages.size() > 0) {