package com.l7tech.external.assertions.gatewaygraphql.server.resolver.finder;

import com.l7tech.external.assertions.gatewaygraphql.server.data.HttpConfigurationDTO;
import com.l7tech.gateway.common.resources.HttpConfiguration;
import com.l7tech.objectmodel.FindException;
import com.l7tech.server.globalresources.HttpConfigurationManager;
import java.util.Collection;
import java.util.Objects;
import java.util.logging.Logger;

public class HttpConfigurationFinder extends EntityAwareFinder<HttpConfiguration, HttpConfigurationDTO.HttpConfigurationInput> {
   private static final Logger b = Logger.getLogger(HttpConfigurationFinder.class.getName());
   private final HttpConfigurationManager c;

   public HttpConfigurationFinder(HttpConfigurationManager var1) {
      this.c = var1;
   }

   @Override
   protected Logger getLogger() {
      return b;
   }

   @Override
   protected Collection<HttpConfiguration> doFindAll() throws FindException {
      return this.c.findAll();
   }

   protected boolean matches(HttpConfiguration var1, HttpConfigurationDTO.HttpConfigurationInput var2) {
      return var2.getHost().equals(var1.getHost())
         && (var2.getPort() == null || var2.getPort() == var1.getPort())
         && (
            var2.getProtocol() == null
               || var2.getProtocol() == HttpConfigurationDTO.HttpScheme.ANY && var1.getProtocol() == null
               || Objects.equals(var2.getProtocol().internalProtocol(), var1.getProtocol())
         )
         && (var2.getPath() == null || var2.getPath().equals(var1.getPath()));
   }
}
