package com.airlock.iam.oauth2.domain.model.token.revocation;

import com.airlock.iam.oauth2.domain.model.revocation.TokenInvalidationTokenManager;
import com.airlock.iam.oauth2.domain.model.token.OAuth2Token;
import com.airlock.iam.oauth2.domain.service.persistence.OAuth2TokenReader;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import java.util.List;
import lombok.NonNull;

public final class AsCentricTokenInvalidationTokenManager implements TokenInvalidationTokenManager {
   @NonNull
   private final OAuth2TokenReader tokenReader;

   @Override
   public List<OAuth2Token> getValidTokensOfSession(String sessionIdentifier) {
      return this.tokenReader.getActiveTokensOfSession(sessionIdentifier);
   }

   @SuppressFBWarnings(justification = "generated code")
   public AsCentricTokenInvalidationTokenManager(@NonNull OAuth2TokenReader tokenReader) {
      if (tokenReader == null) {
         throw new NullPointerException("tokenReader is marked non-null but is null");
      }

      this.tokenReader = tokenReader;
   }
}
