package com.l7tech.gateway.api.impl;

import com.l7tech.gateway.api.AccessibleObject;
import com.l7tech.util.Functions;
import jakarta.xml.bind.annotation.XmlAttribute;
import jakarta.xml.bind.annotation.XmlType;
import java.util.List;

@XmlType(name = "ReferenceType")
public class ManagedObjectReference extends ExtensionSupport {
   private String d;
   private String e;

   public ManagedObjectReference() {
   }

   public ManagedObjectReference(Class<? extends AccessibleObject> var1, String var2) {
      this.setResourceType(var1);
      this.setId(var2);
   }

   @XmlAttribute(name = "id", required = true)
   public String getId() {
      return this.e;
   }

   public void setId(String var1) {
      this.e = var1;
   }

   @XmlAttribute(name = "resourceUri")
   public String getResourceUri() {
      return this.d;
   }

   public void setResourceUri(String var1) {
      this.d = var1;
   }

   public void setResourceType(Class<? extends AccessibleObject> var1) {
      if (var1 != null) {
         this.setResourceUri(AccessorSupport.getResourceUri(var1));
      } else {
         this.setResourceUri(null);
      }
   }

   public static List<ManagedObjectReference> asReferences(Class<? extends AccessibleObject> var0, Iterable<?> var1) {
      return Functions.map(var1, new p(var0));
   }

   public static List<ManagedObjectReference> asReferences(Iterable<?> var0) {
      return asReferences(null, var0);
   }
}
