package com.l7tech.gateway.common.transport;

import com.l7tech.objectmodel.imp.NamedEntityImp;
import com.l7tech.util.DeserializeSafe;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Table;
import org.hibernate.annotations.Proxy;

@Entity
@Proxy(lazy = false)
@Table(name = "resolution_configuration")
@DeserializeSafe
public class ResolutionConfiguration extends NamedEntityImp {
   private boolean pathRequired;
   private boolean pathCaseSensitive;
   private boolean useL7OriginalUrl;
   private boolean useServiceOid;
   private boolean useSoapAction;
   private boolean useSoapBodyChildNamespace;
   static final long serialVersionUID = 1497112660041383430L;

   public ResolutionConfiguration() {
   }

   public ResolutionConfiguration(ResolutionConfiguration var1, boolean var2) {
      super(var1);
      this.setPathRequired(var1.isPathRequired());
      this.setPathCaseSensitive(var1.isPathCaseSensitive());
      this.setUseL7OriginalUrl(var1.isUseL7OriginalUrl());
      this.setUseServiceOid(var1.isUseServiceOid());
      this.setUseSoapAction(var1.isUseSoapAction());
      this.setUseSoapBodyChildNamespace(var1.isUseSoapBodyChildNamespace());
      if (var2) {
         this.lock();
      }
   }

   @Column(name = "path_required")
   public boolean isPathRequired() {
      return this.pathRequired;
   }

   public void setPathRequired(boolean var1) {
      this.checkLocked();
      this.pathRequired = var1;
   }

   @Column(name = "path_case_sensitive")
   public boolean isPathCaseSensitive() {
      return this.pathCaseSensitive;
   }

   public void setPathCaseSensitive(boolean var1) {
      this.checkLocked();
      this.pathCaseSensitive = var1;
   }

   @Column(name = "use_url_header")
   public boolean isUseL7OriginalUrl() {
      return this.useL7OriginalUrl;
   }

   public void setUseL7OriginalUrl(boolean var1) {
      this.checkLocked();
      this.useL7OriginalUrl = var1;
   }

   @Column(name = "use_service_oid")
   public boolean isUseServiceOid() {
      return this.useServiceOid;
   }

   public void setUseServiceOid(boolean var1) {
      this.checkLocked();
      this.useServiceOid = var1;
   }

   @Column(name = "use_soap_action")
   public boolean isUseSoapAction() {
      return this.useSoapAction;
   }

   public void setUseSoapAction(boolean var1) {
      this.checkLocked();
      this.useSoapAction = var1;
   }

   @Column(name = "use_soap_namespace")
   public boolean isUseSoapBodyChildNamespace() {
      return this.useSoapBodyChildNamespace;
   }

   public void setUseSoapBodyChildNamespace(boolean var1) {
      this.checkLocked();
      this.useSoapBodyChildNamespace = var1;
   }
}
