diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/MetadataResolverValidationService.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/MetadataResolverValidationService.java index f5c0932a7..3c16e183d 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/MetadataResolverValidationService.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/MetadataResolverValidationService.java @@ -6,6 +6,14 @@ import java.util.List; import java.util.Optional; +/** + * A facade that aggregates {@link MetadataResolverValidator}s available to call just one of them supporting the type of a given resolver. + * If no {@link MetadataResolverValidator}s are configured, conciders provided MetadataResolver as valid. + *

+ * Uses chain-of-responsibility design pattern + * + * @author Dmitriy Kopylenko + */ public class MetadataResolverValidationService { private List validators; diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/MetadataResolverValidator.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/MetadataResolverValidator.java index e5ccb66c0..f64ab96d6 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/MetadataResolverValidator.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/MetadataResolverValidator.java @@ -1,5 +1,14 @@ package edu.internet2.tier.shibboleth.admin.ui.domain.resolvers; +/** + * An SPI to validate different types of {@link MetadataResolver}s. + *

+ * Typical usage is - multiple validators for concrete type of resolvers are configured in Spring Application Context, + * aggregated by {@link MetadataResolverValidationService} facade and then that facade is injected into upstream consumers of it + * such as REST controllers, etc. + * + * @author Dmitriy Kopylenko + */ public interface MetadataResolverValidator { boolean supports(T resolver);