package com.l7tech.gateway.common.uddi;

import com.l7tech.objectmodel.imp.PersistentEntityImp;
import com.l7tech.util.DeserializeSafe;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import jakarta.persistence.Version;
import org.hibernate.annotations.Proxy;

@Entity
@Proxy(lazy = false)
@Table(name = "uddi_proxied_service")
@DeserializeSafe
public class UDDIProxiedService extends PersistentEntityImp {
   private String uddiServiceKey;
   private String uddiServiceName;
   private String wsdlServiceName;
   private String wsdlServiceNamespace;
   private static final String NULL_NAMESPACE;
   private UDDIProxiedServiceInfo uddiProxiedServiceInfo;
   static final long serialVersionUID = 4063314927479123903L;
   private static final String[] b;

   public UDDIProxiedService() {
   }

   public UDDIProxiedService(String var1, String var2, String var3, String var4) {
      this.uddiServiceKey = var1;
      this.uddiServiceName = var2;
      this.wsdlServiceName = var3;
      if (var4 == null) {
         this.wsdlServiceNamespace = b[1];
      } else {
         this.wsdlServiceNamespace = var4;
      }
   }

   @Version
   @Column(name = "version")
   public int getVersion() {
      return super.getVersion();
   }

   @Column(name = "uddi_service_key", updatable = false)
   public String getUddiServiceKey() {
      return this.uddiServiceKey;
   }

   public void setUddiServiceKey(String var1) {
      this.uddiServiceKey = var1;
   }

   @Column(name = "uddi_service_name", updatable = false)
   public String getUddiServiceName() {
      return this.uddiServiceName;
   }

   public void setUddiServiceName(String var1) {
      this.uddiServiceName = var1;
   }

   @Column(name = "wsdl_service_name", updatable = false)
   public String getWsdlServiceName() {
      return this.wsdlServiceName;
   }

   public void setWsdlServiceName(String var1) {
      this.wsdlServiceName = var1;
   }

   @Column(name = "wsdl_service_namespace", updatable = false)
   public String getWsdlServiceNamespace() {
      return this.wsdlServiceNamespace;
   }

   public void setWsdlServiceNamespace(String var1) {
      this.wsdlServiceNamespace = var1;
   }

   @ManyToOne(optional = false)
   @JoinColumn(name = "uddi_proxied_service_info_goid", nullable = false)
   public UDDIProxiedServiceInfo getUddiProxiedServiceInfo() {
      return this.uddiProxiedServiceInfo;
   }

   public void setUddiProxiedServiceInfo(UDDIProxiedServiceInfo var1) {
      this.uddiProxiedServiceInfo = var1;
   }

   public boolean equals(Object var1) {
      if (this == var1) {
         return true;
      }

      if (var1 != null && this.getClass() == var1.getClass()) {
         UDDIProxiedService var2 = (UDDIProxiedService)var1;
         if (!this.uddiServiceKey.equals(var2.uddiServiceKey)) {
            return false;
         } else if (!this.uddiServiceName.equals(var2.uddiServiceName)) {
            return false;
         } else {
            return !this.wsdlServiceName.equals(var2.wsdlServiceName) ? false : this.wsdlServiceNamespace.equals(var2.wsdlServiceNamespace);
         }
      } else {
         return false;
      }
   }

   public int hashCode() {
      int var1 = super.hashCode();
      var1 = 31 * var1 + this.uddiServiceKey.hashCode();
      var1 = 31 * var1 + this.uddiServiceName.hashCode();
      var1 = 31 * var1 + this.wsdlServiceName.hashCode();
      return 31 * var1 + this.wsdlServiceNamespace.hashCode();
   }

   static {
      String[] var5 = new String[2];
      int var3 = 0;
      String var2 = "2\u0005\u0016My:\u001b1\u0015\tQg7\u001f\u000e2\u0005\u0016My:\u001b1\u0015\tQg7\u001f";
      int var4 = "2\u0005\u0016My:\u001b1\u0015\tQg7\u001f\u000e2\u0005\u0016My:\u001b1\u0015\tQg7\u001f".length();
      char var1 = 14;
      int var0 = -1;

      while (true) {
         String var10002 = b(6, b(var2.substring(++var0, var0 + var1)));
         byte var10001 = -1;
         var5[var3++] = var10002;
         if ((var0 += var1) >= var4) {
            b = var5;
            NULL_NAMESPACE = b[0];
            return;
         }

         var1 = var2.charAt(var0);
      }
   }

   private static char[] b(String var0) {
      char[] var10000 = var0.toCharArray();
      if (var10000.length < 2) {
         var10000[0] = (char)(var10000[0] ^ 92);
      }

      return var10000;
   }

   private static String b(int var0, char[] var1) {
      int var10003 = var1.length;
      int var10002 = var0;
      char[] var10001 = var1;
      int var10000 = var10003;

      for (int var2 = 0; var10000 > var2; var2++) {
         var10001[var2] = (char)(var10001[var2] ^ var10002 ^ switch (var2 % 7) {
            case 0 -> 122;
            case 1 -> 86;
            case 2 -> 92;
            case 3 -> 7;
            case 4 -> 32;
            case 5 -> 114;
            default -> 92;
         });
      }

      return new String(var10001).intern();
   }
}
