Explorar o código

DMY Class (3)

Andrew Grant hai 3 meses
pai
achega
c437272367

+ 29 - 0
src/main/java/scot/carricksoftware/grantswriter/constants/ApplicationConstants.java

@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) Andrew Grant of Carrick Software 11/03/2025, 19:54. All rights reserved.
+ *
+ */
+
+package scot.carricksoftware.grantswriter.constants;
+
+import org.springframework.stereotype.Component;
+
+import java.time.format.DateTimeFormatter;
+
+@SuppressWarnings("unused")
+@Component
+public class ApplicationConstants {
+
+    private ApplicationConstants() {
+        // to stop checkstyle complaining
+    }
+
+    public static final int DEFAULT_PAGE_SIZE = 15;
+    public static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("dd/MM/yyyy");
+    public static final String DATE_FORMAT = "dd/MM/yyyy";
+    public static final String DATE_TIME_FORMAT = "dd/MM/yyyy hh:mm";
+    public final static String EMPTY_STRING = "";
+
+    public static final int MINIMUM_NAME_LENGTH = 3;
+    public static final int MAXIMUM_NAME_LENGTH = 40;
+
+}

+ 13 - 1
src/main/java/scot/carricksoftware/grantswriter/data/DMYImpl.java

@@ -8,6 +8,9 @@ package scot.carricksoftware.grantswriter.data;
 
 import org.jetbrains.annotations.NotNull;
 import org.springframework.stereotype.Component;
+import scot.carricksoftware.grantswriter.constants.ApplicationConstants;
+
+import java.time.LocalDate;
 
 @Component
 public class DMYImpl implements DMY {
@@ -81,6 +84,15 @@ public class DMYImpl implements DMY {
 
     @Override
     public int compareTo(@NotNull DMY o) {
-        return 0;
+        LocalDate thisDate = LocalDate.parse(this.getDay() + "/" + this.getMonth() + "/" + this.getYear(), ApplicationConstants.FORMATTER);
+        LocalDate oDate = LocalDate.parse(o.getDay() + "/" + o.getMonth() + "/" + o.getYear(), ApplicationConstants.FORMATTER);
+        if (thisDate.isAfter(oDate)) {
+            return 1;
+        } if (thisDate.isEqual(oDate)) {
+            return 0;
+        }
+        return -1;
+
+
     }
 }

+ 8 - 7
src/main/java/scot/carricksoftware/grantswriter/writer/latex/parts/people/subsections/helpers/WriteTimeLineImpl.java

@@ -46,15 +46,16 @@ public class WriteTimeLineImpl implements WriteTimeLine {
 
     private void writeTheData(TreeMap<DMY, List<String>> map) {
         logger.info("PersonSubSectionTimeLineWriterImp::writeTheData");
-
         for (DMY dmy : map.keySet()) {
             var value = map.get(dmy);
-            for (String event : value) {
-                String builder = dmy.toString() +
-                        LatexConstants.TABLE_COLUMN_END +
-                        event +
-                        LatexConstants.TABLE_LINE_END;
-                fileWriter.writeLine(builder);
+            if (value != null && !value.isEmpty()) {
+                for (String event : value) {
+                    String builder = dmy.toString() +
+                            LatexConstants.TABLE_COLUMN_END +
+                            event +
+                            LatexConstants.TABLE_LINE_END;
+                    fileWriter.writeLine(builder);
+                }
             }
         }
     }