package com.l7tech.gateway.api.impl;

import jakarta.xml.bind.annotation.XmlElement;
import jakarta.xml.bind.annotation.XmlRootElement;
import jakarta.xml.bind.annotation.XmlType;
import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

@XmlRootElement(name = "PrivateKeySpecialPurposeContext")
@XmlType(name = "PrivateKeySpecialPurposeContextType", propOrder = {"specialPurposeValues", "properties", "extension", "extensions"})
public class PrivateKeySpecialPurposeContext extends ElementExtendableManagedObject {
   private AttributeExtensibleType.AttributeExtensibleStringList f;
   private Map<String, Object> g;

   public List<String> getSpecialPurposes() {
      return AttributeExtensibleType.unwrap(AttributeExtensibleType.get(this.f, new ArrayList()));
   }

   public void setSpecialPurposes(List<String> var1) {
      this.f = AttributeExtensibleType.set(this.f, AttributeExtensibleType.wrap(var1, AttributeExtensibleType.AttributeExtensibleStringBuilder));
   }

   @XmlElement(name = "Properties")
   @XmlJavaTypeAdapter(PropertiesMapType.PropertiesMapTypeAdapter.class)
   public Map<String, Object> getProperties() {
      return this.g;
   }

   public void setProperties(Map<String, Object> var1) {
      this.g = var1;
   }

   @XmlElement(name = "SpecialPurposes", required = true)
   protected AttributeExtensibleType.AttributeExtensibleStringList getSpecialPurposeValues() {
      return this.f;
   }

   protected void setSpecialPurposeValues(AttributeExtensibleType.AttributeExtensibleStringList var1) {
      this.f = var1;
   }
}
