private void setUpDefaultMetaInfo(Task task, ContestManager contestManager, String contestId) { task.setTestGroups(new LinkedList<TestGroup>()); for (int i = 1; i <= task.getNumberOfTests(); ++i) { TestGroup group = new TestGroup(); group.setFeedbackEnabled(i * 5 <= task.getNumberOfTests()); group.setTestCases(Arrays.asList(i)); group.setPoints(new BigDecimal(100 / task.getNumberOfTests())); task.addTestGroup(group); } contestManager.updateTask(contestId, task); }
private boolean handleMetaInfo( ZipEntry zipEntry, Task task, ZipInputStream zipStream, List<String> errorMessages, ContestManager contestManager, String contestId) { String fileName = new File(zipEntry.getName()).getName().toLowerCase(); if (!fileName.equals(task.getName() + ".txt")) return false; List<TestGroup> testGroups = new LinkedList<TestGroup>(); BufferedReader reader = new BufferedReader(new InputStreamReader(zipStream)); String line = null; int lineNumber = 0; try { while ((line = reader.readLine()) != null) { String secondLine = reader.readLine(); lineNumber += 2; if (secondLine == null) { if ("".equals(line)) { break; } else { addMessageOnLine(errorMessages, lineNumber, "Line appears to be empty."); return false; } } TestGroup group = new TestGroup(); if (!parseOddLineOfMetaInfo(errorMessages, line, lineNumber, group) || !parseEvenLineOfMetaInfo(secondLine, task, errorMessages, lineNumber, group)) { return false; } testGroups.add(group); } } catch (IOException e) { addMessageOnLine(errorMessages, lineNumber, "Cannot read the file after this line."); return false; } task.setTestGroups(testGroups); contestManager.updateTask(contestId, task); return true; }