Advertisement
soyl

Untitled

Oct 6th, 2023
1,037
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.71 KB | None | 0 0
  1. public static Task fromString (String line) {
  2.         try {
  3.             if (!line.isBlank() && !line.isEmpty()) {
  4.                 String[] tokens = line.split(",");
  5.                 TaskType type = TaskType.valueOf(tokens[1]);
  6.                 for (int i = 0; i < tokens.length; i++) {
  7.                     switch (type) {
  8.                         case TASK -> {
  9.                             Task task = new Task();
  10.                             task.setId(Long.parseLong(tokens[0]));
  11.                             task.setName(tokens[2]);
  12.                             task.setStatus(tokens[3]);
  13.                             task.setDesc(tokens[4]);
  14.                             if (!tokens[5].equals("null") && !tokens[6].equals("null")) {
  15.                                 task.setStartTime(LocalDateTime.parse(tokens[5]));
  16.                                 task.setDuration(Duration.parse(tokens[6]));
  17.                             }
  18.                             return task;
  19.                         }
  20.                         case EPIC -> {
  21.                             Epic epic = new Epic();
  22.                             epic.setId(Long.parseLong(tokens[0]));
  23.                             epic.setName(tokens[2]);
  24.                             epic.setStatus(tokens[3]);
  25.                             epic.setDesc(tokens[4]);
  26.                             if (!tokens[5].equals("null") && !tokens[6].equals("null")) {
  27.                                 epic.setStartTime(LocalDateTime.parse(tokens[5]));
  28.                                 epic.setDuration(Duration.parse(tokens[6]));
  29.                             }
  30.                             return epic;
  31.                         }
  32.                         case SUBTASK -> {
  33.                             if (tokens.length > 7) {
  34.                                 Subtask subtask = new Subtask();
  35.                                 subtask.setId(Long.parseLong(tokens[0]));
  36.                                 subtask.setName(tokens[2]);
  37.                                 subtask.setStatus(tokens[3]);
  38.                                 subtask.setDesc(tokens[4]);
  39.                                 if (!tokens[5].equals("null") && !tokens[6].equals("null")) {
  40.                                     subtask.setStartTime(LocalDateTime.parse(tokens[5]));
  41.                                     subtask.setDuration(Duration.parse(tokens[6]));
  42.                                 }
  43.                                 subtask.setEpicId(Long.parseLong(tokens[7]));
  44.  
  45.                                 return subtask;
  46.                             }
  47.                         }
  48.                     }
  49.                 }
  50.             }
  51.         } catch (DateTimeParseException e) {
  52.             throw new RuntimeException(e);
  53.         }return null;
  54.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement