package com.l7tech.gateway.common.service;

import com.l7tech.objectmodel.EntityType;
import com.l7tech.objectmodel.Goid;
import com.l7tech.objectmodel.OrganizationHeader;
import com.l7tech.objectmodel.PersistentEntity;
import com.l7tech.util.DeserializeSafe;

@DeserializeSafe
public class ServiceHeader extends OrganizationHeader {
   private final boolean isSoap;
   private final boolean isDisabled;
   private final String displayName;
   private final long policyRevision;
   private final Goid policyGoid;
   private final String routingUri;
   private final boolean tracingEnabled;
   static final long serialVersionUID = -7313815120334045412L;

   public ServiceHeader(PublishedService var1) {
      this(
         var1.isSoap(),
         var1.isDisabled(),
         var1.displayName(),
         var1.getGoid(),
         var1.getName(),
         var1.getName(),
         var1.getFolder() == null ? null : var1.getFolder().getGoid(),
         null,
         var1.getPolicy() == null ? 0L : var1.getPolicy().getVersionOrdinal(),
         var1.getVersion(),
         var1.getRoutingUri(),
         var1.isTracingEnabled(),
         var1.getPolicy() == null ? false : var1.getPolicy().isDisabled(),
         var1.getSecurityZone() == null ? null : var1.getSecurityZone().getGoid(),
         var1.getPolicy() == null ? null : var1.getPolicy().getGoid()
      );
   }

   public ServiceHeader(ServiceHeader var1) {
      this(
         var1.isSoap(),
         var1.isDisabled(),
         var1.getDisplayName(),
         var1.getGoid(),
         var1.getName(),
         var1.getDescription(),
         var1.getFolderId(),
         var1.getAliasGoid(),
         var1.getPolicyRevision(),
         var1.getVersion(),
         var1.getRoutingUri(),
         var1.isTracingEnabled(),
         var1.isPolicyDisabled(),
         var1.getSecurityZoneId(),
         var1.getPolicyGoid()
      );
   }

   public ServiceHeader(
      boolean var1,
      boolean var2,
      String var3,
      Goid var4,
      String var5,
      String var6,
      Goid var7,
      Goid var8,
      long var9,
      int var11,
      String var12,
      boolean var13,
      boolean var14,
      Goid var15,
      Goid var16
   ) {
      super(var4 == null ? PersistentEntity.DEFAULT_GOID : var4, EntityType.SERVICE, var5, var6, var11);
      this.isSoap = var1;
      this.isDisabled = var2;
      this.displayName = var3;
      this.folderGoid = var7;
      this.aliasGoid = var8;
      this.policyRevision = var9;
      this.routingUri = var12;
      this.tracingEnabled = var13;
      this.isPolicyDisabled = var14;
      this.securityZoneGoid = var15;
      this.policyGoid = var16;
   }

   public boolean isSoap() {
      return this.isSoap;
   }

   public boolean isDisabled() {
      return this.isDisabled;
   }

   public String getDisplayName() {
      return this.displayName;
   }

   public String getRoutingUri() {
      return this.routingUri;
   }

   public long getPolicyRevision() {
      return this.policyRevision;
   }

   public Goid getPolicyGoid() {
      return this.policyGoid;
   }

   public boolean isTracingEnabled() {
      return this.tracingEnabled;
   }

   public String toString() {
      return this.getDisplayName();
   }
}
