package com.kryptnostic.directory.v1.domain; import static com.kryptnostic.directory.v1.domain.DomainSharingPolicyNames.ALL_DOMAINS; import static com.kryptnostic.directory.v1.domain.DomainSharingPolicyNames.INTERNAL_ONLY; import static com.kryptnostic.directory.v1.domain.DomainSharingPolicyNames.TRUSTED_DOMAINS; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonValue; public enum DomainSharingPolicy { AllDomains( ALL_DOMAINS ), TrustedDomains( TRUSTED_DOMAINS ), InternalOnly( INTERNAL_ONLY ); private static final Logger logger = LoggerFactory.getLogger( DomainSharingPolicy.class ); private final String domainSharingPolicy; private DomainSharingPolicy( String domainSharingPolicy ) { this.domainSharingPolicy = domainSharingPolicy; } @JsonCreator public static DomainSharingPolicy createDomainSharingPolicy( String domainSharingPolicy ) { switch ( domainSharingPolicy ) { case ALL_DOMAINS: return AllDomains; case TRUSTED_DOMAINS: return TrustedDomains; case INTERNAL_ONLY: return InternalOnly; default: logger.error( "Unrecognized domain sharing policy!" ); return null; } } @JsonValue public String toString() { return domainSharingPolicy; } }