aboutsummaryrefslogtreecommitdiff
path: root/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/log/statistic/DetailedMatchtingStatistic.java
diff options
context:
space:
mode:
Diffstat (limited to 'modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/log/statistic/DetailedMatchtingStatistic.java')
-rw-r--r--modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/log/statistic/DetailedMatchtingStatistic.java86
1 files changed, 86 insertions, 0 deletions
diff --git a/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/log/statistic/DetailedMatchtingStatistic.java b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/log/statistic/DetailedMatchtingStatistic.java
new file mode 100644
index 00000000..975d17b4
--- /dev/null
+++ b/modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/log/statistic/DetailedMatchtingStatistic.java
@@ -0,0 +1,86 @@
+package at.asitplus.eidas.specific.modules.auth.eidas.v2.log.statistic;
+
+import java.io.Serializable;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+import at.asitplus.eidas.specific.modules.auth.eidas.v2.service.RegisterSearchService.RegisterStatusResults;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * Detailed statistic of matching operation.
+ *
+ * @author tlenz
+ *
+ */
+@Getter
+@Setter
+public class DetailedMatchtingStatistic implements Serializable {
+
+ private static final long serialVersionUID = 8563971979294950484L;
+
+ @JsonProperty("BY_PERSONALID")
+ private MatchingStepResult personalIdResult;
+
+ @JsonProperty("BY_COUNTRY_SPECIFIC")
+ private MatchingStepResult ccSpecificResult;
+
+ @JsonProperty("BY_MDS")
+ private MatchingStepResult mdsResult;
+
+ @JsonProperty("USE_IDA")
+ private boolean idaLoginUsed = false;
+
+ @JsonProperty("USE_EIDAS")
+ private int eidasLoginUsed = 0;
+
+ @JsonProperty("USE_ADDRESS")
+ private int addressSearchUsed = 0;
+
+ /**
+ * Increment the search address counter.
+ */
+ public void incrementAddressSearch() {
+ this.addressSearchUsed++;
+
+ }
+
+ /**
+ * Increment the alternative eIDAS login counter.
+ */
+ public void incrementAlternativEidas() {
+ this.eidasLoginUsed++;
+
+ }
+
+ /**
+ * Generate a matching step result from {@link RegisterStatusResults}.
+ *
+ * @param result results from a specific register search operation
+ * @return detailed statistic information
+ */
+ public static MatchingStepResult buildFrom(RegisterStatusResults result) {
+ return new MatchingStepResult(
+ result.getResultsZmr().size(),
+ result.getResultsZmr().size());
+
+ }
+
+ @Getter
+ @Setter
+ @AllArgsConstructor
+ @JsonInclude(Include.NON_NULL)
+ private static class MatchingStepResult {
+
+ @JsonProperty("zmr")
+ private int zmrResults = 0;
+
+ @JsonProperty("ernp")
+ private int ernpResults = 0;
+
+ }
+}