package com.l7tech.gateway.api;

import com.l7tech.gateway.api.impl.PropertiesMapType;
import jakarta.xml.bind.annotation.XmlAccessType;
import jakarta.xml.bind.annotation.XmlAccessorType;
import jakarta.xml.bind.annotation.XmlElement;
import jakarta.xml.bind.annotation.XmlElementWrapper;
import jakarta.xml.bind.annotation.XmlRootElement;
import jakarta.xml.bind.annotation.XmlType;
import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import java.util.List;
import java.util.Map;

@XmlRootElement(name = "DependencyList")
@XmlType(propOrder = {"options", "searchObjectItem", "dependencies", "missingDependencies"})
@XmlAccessorType(XmlAccessType.PROPERTY)
public class DependencyListMO {
   private Map<String, Object> a;
   private DependencyMO b;
   private List<DependencyMO> c;
   private List<DependencyMO> d;

   protected DependencyListMO() {
   }

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

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

   @XmlElement(name = "Reference")
   public DependencyMO getSearchObjectItem() {
      return this.b;
   }

   public void setSearchObjectItem(DependencyMO var1) {
      this.b = var1;
   }

   @XmlElement(name = "Dependency")
   @XmlElementWrapper(name = "Dependencies")
   public List<DependencyMO> getDependencies() {
      return this.c;
   }

   public void setDependencies(List<DependencyMO> var1) {
      this.c = var1;
   }

   @XmlElement(name = "MissingDependency")
   @XmlElementWrapper(name = "MissingDependencies")
   public List<DependencyMO> getMissingDependencies() {
      return this.d;
   }

   public void setMissingDependencies(List<DependencyMO> var1) {
      this.d = var1;
   }
}
