package com.l7tech.external.assertions.gatewaygraphql.server.data;

import com.l7tech.wsdl.Wsdl;
import com.l7tech.xml.soap.SoapUtil;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Set;
import java.util.logging.Logger;
import javax.wsdl.BindingOperation;
import javax.xml.namespace.QName;
import lombok.Generated;
import org.apache.commons.lang3.StringUtils;

public class SoapResolversDTO {
   @Generated
   private static final Logger a = Logger.getLogger(SoapResolversDTO.class.getName());
   private final List<String> b;
   private final String c;
   private final String d;

   public SoapResolversDTO(List<String> var1, String var2, String var3) {
      this.b = var1;
      this.d = var3;
      this.c = var2;
   }

   private static String a(List<QName> var0) {
      QName var1 = var0.stream().filter(var0x -> StringUtils.isNotEmpty(var0x.getNamespaceURI())).findFirst().orElse(null);
      return var1 != null ? var1.getNamespaceURI() : null;
   }

   public static SoapResolversDTO fromWsdl(Wsdl var0, String var1) {
      ArrayList var2 = new ArrayList();
      String var3 = "";
      if (var0 != null) {
         Collection var4 = var0.getBindingOperations();
         if (var4 != null) {
            for (BindingOperation var6 : var4) {
               String var7 = SoapUtil.findSoapAction(var6);
               if (StringUtils.isNotEmpty(var7)) {
                  var2.add(var7);
               }

               Set var8 = SoapUtil.getOperationPayloadQNames(var6, null, null);
               if (var8 != null) {
                  for (List var10 : var8) {
                     String var11 = a(var10);
                     if (var11 != null) {
                        var3 = var11;
                     }
                  }
               }
            }
         }
      }

      return new SoapResolversDTO(var2, var3, var1);
   }

   public List<String> getSoapActions() {
      return this.b;
   }

   public String getBaseUri() {
      return this.c;
   }

   public String getResolutionPath() {
      return this.d;
   }
}
