package com.airlock.iam.oauth2.domain.model.resource;

import com.airlock.iam.oauth2.api.domain.model.OAuth2Scope;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import java.util.List;
import java.util.Set;

public final class OAuth2Resource {
   private final List<OAuth2ResourceProvider> resourceProviders;
   private final Set<OAuth2Scope> requiredScopes;

   public boolean hasMatchingScopes(Set<OAuth2Scope> givenScopes) {
      return givenScopes.containsAll(this.requiredScopes);
   }

   @SuppressFBWarnings(justification = "generated code")
   public List<OAuth2ResourceProvider> getResourceProviders() {
      return this.resourceProviders;
   }

   @SuppressFBWarnings(justification = "generated code")
   public Set<OAuth2Scope> getRequiredScopes() {
      return this.requiredScopes;
   }

   @SuppressFBWarnings(justification = "generated code")
   public OAuth2Resource(List<OAuth2ResourceProvider> resourceProviders, Set<OAuth2Scope> requiredScopes) {
      this.resourceProviders = resourceProviders;
      this.requiredScopes = requiredScopes;
   }
}
