package com.l7tech.gateway.api;

import com.l7tech.gateway.api.impl.AccessorSupport;
import com.l7tech.gateway.api.impl.AttributeExtensibleType;
import jakarta.xml.bind.annotation.XmlAnyElement;
import jakarta.xml.bind.annotation.XmlElement;
import jakarta.xml.bind.annotation.XmlRootElement;
import jakarta.xml.bind.annotation.XmlType;
import java.util.List;

@XmlRootElement(name = "CustomKeyValue")
@XmlType(name = "CustomKeyValueType", propOrder = {"storeNameValue", "keyValue", "valueValue", "extensions"})
@AccessorSupport.AccessibleResource(name = "customKeyValues")
public class CustomKeyValueStoreMO extends AccessibleObject {
   private AttributeExtensibleType.AttributeExtensibleString f;
   private AttributeExtensibleType.AttributeExtensibleByteArray g;
   private AttributeExtensibleType.AttributeExtensibleString h;

   public String getStoreName() {
      return AttributeExtensibleType.get(this.h);
   }

   public void setStoreName(String var1) {
      this.h = AttributeExtensibleType.set(this.h, var1);
   }

   public String getKey() {
      return AttributeExtensibleType.get(this.f);
   }

   public void setKey(String var1) {
      this.f = AttributeExtensibleType.set(this.f, var1);
   }

   public byte[] getValue() {
      return AttributeExtensibleType.get(this.g);
   }

   public void setValue(byte[] var1) {
      this.g = AttributeExtensibleType.set(this.g, var1);
   }

   @XmlAnyElement(lax = true)
   @Override
   protected List<Object> getExtensions() {
      return super.getExtensions();
   }

   @XmlElement(name = "Key", required = true)
   protected AttributeExtensibleType.AttributeExtensibleString getKeyValue() {
      return this.f;
   }

   protected void setKeyValue(AttributeExtensibleType.AttributeExtensibleString var1) {
      this.f = var1;
   }

   @XmlElement(name = "Value", required = true)
   protected AttributeExtensibleType.AttributeExtensibleByteArray getValueValue() {
      return this.g;
   }

   protected void setValueValue(AttributeExtensibleType.AttributeExtensibleByteArray var1) {
      this.g = var1;
   }

   @XmlElement(name = "StoreName", required = true)
   protected AttributeExtensibleType.AttributeExtensibleString getStoreNameValue() {
      return this.h;
   }

   protected void setStoreNameValue(AttributeExtensibleType.AttributeExtensibleString var1) {
      this.h = var1;
   }

   CustomKeyValueStoreMO() {
   }
}
