Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.dimitrija.LogProcessor;
- import java.io.*;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.stream.Collectors;
- /**
- * Да се имплементира класата LogProcessor со единствен метод:
- *
- * void readLines(InputStream is, OutputStream os, int processId) којшто од влезен поток ќе ги прочита сите логови (секој од нив во нов ред), а на излезен поток ќе ги испечати сите логови кои припаѓаат на процесот со processId сортирани според текстот на логот во растечки редослед. Текстот на логот е делот кој се наоѓа по знакот ":" во секој лог.
- *
- * Задачата мора да ги помине сите тест примери за да се продолжи на главниот дел од испитот.
- *
- *
- * For example:
- * Input Result
- *
- * 99900:STATUS CODE 200 OK
- * 78976:AUTHENTICATION ERROR
- * 12345:STATUS CODE 201
- * 12334:DATABASE DOWN
- *
- *
- * 99900:STATUS CODE 200 OK
- * 78976:AUTHENTICATION ERROR
- * 12345:STATUS CODE 201
- * 12334:DATABASE DOWN
- *
- *
- *
- * 12334:DATABASE DOWN
- *
- *
- *
- * 12334:DATABASE DOWN
- *
- *
- *
- *
- * 12334:SERVICE Z NOT RUNNING
- * 78999:SERVICE X NOT RUNNING
- * 12334:STATUS CODE 302
- * 99900:SERVICE X NOT RUNNING
- * 78976:STATUS CODE 304
- * 12345:DATABASE DOWN
- *
- *
- *
- * 12334:SERVICE Z NOT RUNNING
- * 12334:STATUS CODE 302
- *
- *
- *
- * 12334:SERVICE Z NOT RUNNING
- * 12334:STATUS CODE 302
- *
- *
- *
- *
- * 12334:DATABASE DOWN
- * 34567:STATUS CODE 201
- * 99900:STATUS CODE 200 OK
- * 12334:STATUS CODE 302
- * 35677:STATUS CODE 304
- * 78999:STATUS CODE 302
- * 23456:AUTHORIZATION ERROR
- * 12345:STATUS CODE 500
- *
- *
- *
- * 12334:DATABASE DOWN
- * 12334:STATUS CODE 302
- *
- *
- *
- * 12334:DATABASE DOWN
- * 12334:STATUS CODE 302
- *
- *
- *
- *
- * 12334:SERVICE Z NOT RUNNING
- * 12334:SERVICE X NOT RUNNING
- * 12345:AUTHENTICATION ERROR
- * 23456:SERVICE Z NOT RUNNING
- * 35677:STATUS CODE 304
- * 12334:STATUS CODE 304
- * 12345:STATUS CODE 200 OK
- * 78976:SERVICE Z NOT RUNNING
- * 35677:AUTHENTICATION ERROR
- *
- *
- *
- * 12334:SERVICE X NOT RUNNING
- * 12334:SERVICE Z NOT RUNNING
- * 12334:STATUS CODE 304
- *
- *
- *
- * 12334:SERVICE X NOT RUNNING
- * 12334:SERVICE Z NOT RUNNING
- * 12334:STATUS CODE 304
- */
- class Log implements Comparable<Log>{
- @Override
- public String toString() {
- return ID + ":" + statusLog;
- }
- private int ID;
- private String statusLog;
- public Log(int ID, String status) {
- this.ID = ID;
- this.statusLog = status;
- }
- public static Log createALog(String s){
- String[] strings = s.split(":");
- int ID = Integer.parseInt(strings[0]);
- String statusLog = strings[1];
- return new Log(ID,statusLog);
- }
- public int getID() {
- return ID;
- }
- @Override
- public int compareTo(Log o) {
- return statusLog.compareTo(o.statusLog);
- }
- }
- class LogProcessor{
- private List<Log> logList;
- void readLines(InputStream is, OutputStream os, int processId) throws IOException {
- BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(is));
- if (bufferedReader == null){
- throw new IOException();
- }
- logList = bufferedReader.lines()
- .map(x->Log.createALog(x)).collect(Collectors.toList());
- PrintWriter printWriter = new PrintWriter(os);
- if (printWriter == null){
- throw new IOException();
- }
- logList.stream().filter(x->x.getID() == processId).sorted().forEach(printWriter::println);
- printWriter.flush();
- }
- }
- public class LogProcessorTest {
- public static void main(String[] args) {
- LogProcessor lineProcessor = new LogProcessor();
- try {
- lineProcessor.readLines(System.in, System.out, 12334);
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment