diff options
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.java | 86 |
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; + + } +} |