Browse Source

GatherTimeLineDataImpl extended to Marriage Certificates

Andrew Grant 1 tháng trước cách đây
mục cha
commit
cdf37e446f

+ 12 - 0
src/main/java/scot/carricksoftware/grantswriter/writer/latex/parts/people/subsections/helpers/GatherMarriageCertificateTimeLineData.java

@@ -0,0 +1,12 @@
+/*
+ * Copyright (c) 2025.  Andrew Grant Carrick Software. All rights reserved
+ *
+ */
+
+package scot.carricksoftware.grantswriter.writer.latex.parts.people.subsections.helpers;
+
+import scot.carricksoftware.grantswriter.domains.people.Person;
+
+public interface GatherMarriageCertificateTimeLineData {
+   void gather(@SuppressWarnings("unused") Person person);
+}

+ 46 - 0
src/main/java/scot/carricksoftware/grantswriter/writer/latex/parts/people/subsections/helpers/GatherMarriageCertificateTimeLineDataImpl.java

@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2025.  Andrew Grant Carrick Software. All rights reserved
+ *
+ */
+
+package scot.carricksoftware.grantswriter.writer.latex.parts.people.subsections.helpers;
+
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.springframework.stereotype.Component;
+
+import scot.carricksoftware.grantswriter.domains.people.Person;
+import scot.carricksoftware.grantswriter.services.certificates.marriagecertificate.MarriageCertificateService;
+import scot.carricksoftware.grantswriter.writer.latex.parts.people.subsections.helpers.level2.marriagecertificate.GatherMarriageCertificateBrideTimeLineData;
+import scot.carricksoftware.grantswriter.domains.certificates.marriagecertificate.MarriageCertificate;
+
+import java.util.List;
+
+
+@Component
+public class GatherMarriageCertificateTimeLineDataImpl implements GatherMarriageCertificateTimeLineData {
+    private static final Logger logger = LogManager.getLogger(GatherMarriageCertificateTimeLineDataImpl.class);
+
+    private final MarriageCertificateService marriageCertificateService;
+    private final GatherMarriageCertificateBrideTimeLineData gatherMarriageCertificateBrideTimeLineData;
+
+    public GatherMarriageCertificateTimeLineDataImpl(MarriageCertificateService marriageCertificateService, GatherMarriageCertificateBrideTimeLineData gatherMarriageCertificateBrideTimeLineData) {
+        this.marriageCertificateService = marriageCertificateService;
+        this.gatherMarriageCertificateBrideTimeLineData = gatherMarriageCertificateBrideTimeLineData;
+    }
+
+    @Override
+    public void gather(Person person) {
+        logger.debug("GatherDeathCertificateTimeLineDataImpl::gather");
+        gatherBride(person);
+    }
+
+    private void gatherBride(Person person) {
+        logger.debug("GatherDeathCertificateTimeLineDataImpl::gatherDeceased");
+        List<MarriageCertificate> marriageCertificates = marriageCertificateService.findAllByBride(person);
+        if (!marriageCertificates.isEmpty()) {
+            gatherMarriageCertificateBrideTimeLineData.gather(marriageCertificates);
+        }
+    }
+
+}

+ 4 - 1
src/main/java/scot/carricksoftware/grantswriter/writer/latex/parts/people/subsections/helpers/GatherTimeLineDataImpl.java

@@ -14,12 +14,14 @@ public class GatherTimeLineDataImpl implements GatherTimeLineData {
     private final GatherCensusTimeLineData gatherCensusTimeLineData;
     private final GatherBirthCertificateTimeLineData gatherBirthCertificateTimeLineData;
     private final GatherDeathCertificateTimeLineData gatherDeathCertificateTimeLineData;
+    private final GatherMarriageCertificateTimeLineData gatherMarriageCertificateTimeLineData;
 
     public GatherTimeLineDataImpl(
-            GatherCensusTimeLineData gatherCensusTimeLineData, GatherBirthCertificateTimeLineData gatherBirthCertificateTimeLineData, GatherDeathCertificateTimeLineData gatherDeathCertificateTimeLineData) {
+            GatherCensusTimeLineData gatherCensusTimeLineData, GatherBirthCertificateTimeLineData gatherBirthCertificateTimeLineData, GatherDeathCertificateTimeLineData gatherDeathCertificateTimeLineData, GatherMarriageCertificateTimeLineData gatherMarriageCertificateTimeLineData) {
         this.gatherCensusTimeLineData = gatherCensusTimeLineData;
         this.gatherBirthCertificateTimeLineData = gatherBirthCertificateTimeLineData;
         this.gatherDeathCertificateTimeLineData = gatherDeathCertificateTimeLineData;
+        this.gatherMarriageCertificateTimeLineData = gatherMarriageCertificateTimeLineData;
     }
 
     @Override
@@ -27,5 +29,6 @@ public class GatherTimeLineDataImpl implements GatherTimeLineData {
         gatherCensusTimeLineData.gather(person);
         gatherBirthCertificateTimeLineData.gather(person);
         gatherDeathCertificateTimeLineData.gather(person);
+        gatherMarriageCertificateTimeLineData.gather(person);
     }
 }

+ 14 - 0
src/main/java/scot/carricksoftware/grantswriter/writer/latex/parts/people/subsections/helpers/level2/marriagecertificate/GatherMarriageCertificateBrideTimeLineData.java

@@ -0,0 +1,14 @@
+/*
+ * Copyright (c) 2025.  Andrew Grant Carrick Software. All rights reserved
+ *
+ */
+
+package scot.carricksoftware.grantswriter.writer.latex.parts.people.subsections.helpers.level2.marriagecertificate;
+
+import scot.carricksoftware.grantswriter.domains.certificates.marriagecertificate.MarriageCertificate;
+
+import java.util.List;
+
+public interface GatherMarriageCertificateBrideTimeLineData {
+   void gather(List<MarriageCertificate> marriageCertificates);
+}

+ 69 - 0
src/main/java/scot/carricksoftware/grantswriter/writer/latex/parts/people/subsections/helpers/level2/marriagecertificate/GatherMarriageCertificateBrideTimeLineDataImpl.java

@@ -0,0 +1,69 @@
+/*
+ * Copyright (c) 2025.  Andrew Grant Carrick Software. All rights reserved
+ *
+ */
+
+package scot.carricksoftware.grantswriter.writer.latex.parts.people.subsections.helpers.level2.marriagecertificate;
+
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.springframework.stereotype.Component;
+import scot.carricksoftware.grantswriter.data.DMY;
+import scot.carricksoftware.grantswriter.data.DMYImpl;
+import scot.carricksoftware.grantswriter.data.TimeLineData;
+import scot.carricksoftware.grantswriter.domains.certificates.marriagecertificate.MarriageCertificate;
+
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.TreeMap;
+
+@Component
+public class GatherMarriageCertificateBrideTimeLineDataImpl implements GatherMarriageCertificateBrideTimeLineData {
+
+    private final TimeLineData timelineData;
+
+    private static final Logger logger = LogManager.getLogger(GatherMarriageCertificateBrideTimeLineDataImpl.class);
+
+    public GatherMarriageCertificateBrideTimeLineDataImpl(TimeLineData timelineData) {
+        this.timelineData = timelineData;
+    }
+
+    @Override
+    public void gather(List<MarriageCertificate> marriageCertificates) {
+        logger.info("GatherMarriageCertificateDeceasedTimeLineDataImpl::Gather");
+        for (MarriageCertificate marriageCertificate : marriageCertificates) {
+            addWhenMarried(timelineData.getTimeLine(), marriageCertificate);
+            addRefs(marriageCertificate);
+        }
+    }
+
+    @SuppressWarnings("unused")
+    private void addRefs(MarriageCertificate marriageCertificate) {
+        timelineData.getRefs().add("Marriage Certificate for : " + marriageCertificate.getBride() + " and " + marriageCertificate.getGroom());
+    }
+
+    private void addWhenMarried(TreeMap<DMY, List<String>> timeLine, MarriageCertificate marriageCertificate) {
+        logger.info("GatherMarriageCertificateDeceasedTimeLineDataImpl::AddWhenMarried");
+
+        List<String> existingValues = timeLine.get(getDMY(marriageCertificate.getWhenMarried()));
+        if (existingValues == null) {
+            existingValues = new ArrayList<>();
+        }
+
+        if (marriageCertificate.getWhereMarried() != null) {
+            existingValues.add("Married " + marriageCertificate.getGroom().toString() + " at " + marriageCertificate.getWhereMarried().toString());
+        } else {
+            existingValues.add("Married " + marriageCertificate.getGroom().toString() + " at " + marriageCertificate.getUntrackedWhereMarried());
+        }
+        timeLine.put(getDMY(marriageCertificate.getWhenMarried()), existingValues);
+
+    }
+
+
+    private DMY getDMY(String dateKey) {
+        DMY dmyKey = new DMYImpl();
+        dmyKey.parse(dateKey);
+        return dmyKey;
+    }
+}