package com.l7tech.gateway.common.mapping;

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

@Entity
@Proxy(lazy = false)
@Table(name = "message_context_mapping_values")
public class MessageContextMappingValues extends PersistentEntityImp {
   private static final int MAX_VALUE_LENGTH = 255;
   private Goid mappingKeysGoid;
   private long createTime;
   private String digested;
   private Goid authUserProviderId;
   private String authUserId;
   private String authUserUniqueId;
   private String serviceOperation;
   private String mapping1_value;
   private String mapping2_value;
   private String mapping3_value;
   private String mapping4_value;
   private String mapping5_value;
   private MessageContextMappingKeys mappingKeysEntity;
   static final long serialVersionUID = 7216152050067781075L;

   @Column(name = "digested")
   public String getDigested() {
      return this.digested;
   }

   public void setDigested(String var1) {
      this.digested = var1;
   }

   @Column(name = "mapping_keys_goid")
   @Type(type = "com.l7tech.server.util.GoidType")
   public Goid getMappingKeysGoid() {
      return this.mappingKeysGoid;
   }

   public void setMappingKeysGoid(Goid var1) {
      this.mappingKeysGoid = var1;
   }

   @Column(name = "create_time")
   public long getCreateTime() {
      return this.createTime;
   }

   public void setCreateTime(long var1) {
      this.createTime = var1;
   }

   @Column(name = "auth_user_provider_id")
   @Type(type = "com.l7tech.server.util.GoidType")
   public Goid getAuthUserProviderId() {
      return this.authUserProviderId;
   }

   public void setAuthUserProviderId(Goid var1) {
      this.authUserProviderId = var1;
   }

   @Column(name = "auth_user_id", length = 255)
   public String getAuthUserId() {
      return this.authUserId;
   }

   public void setAuthUserId(String var1) {
      this.authUserId = var1;
   }

   @Column(name = "auth_user_unique_id", length = 255)
   public String getAuthUserUniqueId() {
      return this.authUserUniqueId;
   }

   public void setAuthUserUniqueId(String var1) {
      this.authUserUniqueId = var1;
   }

   @Column(name = "service_operation", length = 255)
   public String getServiceOperation() {
      return this.serviceOperation;
   }

   public void setServiceOperation(String var1) {
      this.serviceOperation = var1;
   }

   @Column(name = "mapping1_value", length = 255)
   public String getMapping1_value() {
      return this.mapping1_value;
   }

   public void setMapping1_value(String var1) {
      this.mapping1_value = var1 != null ? var1.trim() : null;
   }

   @Column(name = "mapping2_value", length = 255)
   public String getMapping2_value() {
      return this.mapping2_value;
   }

   public void setMapping2_value(String var1) {
      this.mapping2_value = var1 != null ? var1.trim() : null;
   }

   @Column(name = "mapping3_value", length = 255)
   public String getMapping3_value() {
      return this.mapping3_value;
   }

   public void setMapping3_value(String var1) {
      this.mapping3_value = var1 != null ? var1.trim() : null;
   }

   @Column(name = "mapping4_value", length = 255)
   public String getMapping4_value() {
      return this.mapping4_value;
   }

   public void setMapping4_value(String var1) {
      this.mapping4_value = var1 != null ? var1.trim() : null;
   }

   @Column(name = "mapping5_value", length = 255)
   public String getMapping5_value() {
      return this.mapping5_value;
   }

   public void setMapping5_value(String var1) {
      this.mapping5_value = var1 != null ? var1.trim() : null;
   }

   public String[] obtainValues() {
      return new String[]{this.mapping1_value, this.mapping2_value, this.mapping3_value, this.mapping4_value, this.mapping5_value};
   }

   public void setValue(int var1, String var2) {
      switch (var1) {
         case 0:
            this.setMapping1_value(var2);
            break;
         case 1:
            this.setMapping2_value(var2);
            break;
         case 2:
            this.setMapping3_value(var2);
            break;
         case 3:
            this.setMapping4_value(var2);
            break;
         case 4:
            this.setMapping5_value(var2);
      }
   }

   @ManyToOne
   @JoinColumn(name = "mapping_keys_goid", insertable = false, updatable = false)
   public MessageContextMappingKeys getMappingKeysEntity() {
      return this.mappingKeysEntity;
   }

   public void setMappingKeysEntity(MessageContextMappingKeys var1) {
      this.mappingKeysEntity = var1;
   }

   public boolean matches(MessageContextMappingValues var1) {
      if (!Goid.equals(this.mappingKeysGoid, var1.mappingKeysGoid)) {
         return false;
      }

      if (this.serviceOperation != null ? this.serviceOperation.equals(var1.serviceOperation) : var1.serviceOperation == null) {
         if (this.authUserUniqueId != null ? this.authUserUniqueId.equals(var1.authUserUniqueId) : var1.authUserUniqueId == null) {
            if (this.authUserProviderId != null ? this.authUserProviderId.equals(var1.authUserProviderId) : var1.authUserProviderId == null) {
               if (this.mapping1_value != null ? this.mapping1_value.equals(var1.mapping1_value) : var1.mapping1_value == null) {
                  if (this.mapping2_value != null ? this.mapping2_value.equals(var1.mapping2_value) : var1.mapping2_value == null) {
                     if (this.mapping3_value != null ? this.mapping3_value.equals(var1.mapping3_value) : var1.mapping3_value == null) {
                        if (this.mapping4_value != null ? this.mapping4_value.equals(var1.mapping4_value) : var1.mapping4_value == null) {
                           return this.mapping5_value != null ? this.mapping5_value.equals(var1.mapping5_value) : var1.mapping5_value == null;
                        } else {
                           return false;
                        }
                     } else {
                        return false;
                     }
                  } else {
                     return false;
                  }
               } else {
                  return false;
               }
            } else {
               return false;
            }
         } else {
            return false;
         }
      } else {
         return false;
      }
   }

   public String generateDigest() {
      StringBuilder var1 = new StringBuilder();
      var1.append(this.mappingKeysGoid);
      var1.append(this.serviceOperation);
      var1.append(this.authUserUniqueId);
      var1.append(this.authUserProviderId);
      var1.append(this.mapping1_value);
      var1.append(this.mapping2_value);
      var1.append(this.mapping3_value);
      var1.append(this.mapping4_value);
      var1.append(this.mapping5_value);
      String var2 = var1.toString();
      return this.digested = HexUtils.hexDump(HexUtils.getMd5Digest(HexUtils.encodeUtf8(var2)));
   }
}
