package com.l7tech.message;

import com.l7tech.common.http.HttpHeader;
import com.l7tech.common.http.HttpHeadersHaver;
import java.io.Closeable;
import java.io.IOException;
import java.util.ArrayList;

public class HttpInboundResponseFacet implements HttpInboundResponseKnob, Closeable {
   private static final HttpHeader[] a = new HttpHeader[0];
   private static final String[] b = new String[0];
   HttpHeadersHaver c;
   HttpHeader[] d;

   private void a() {
      if (this.d == null && this.c != null) {
         this.d = this.c.getHeaders().toArray();
      }
   }

   @Override
   public void setHeaderSource(HttpHeadersHaver var1) {
      this.d = null;
      this.c = var1;
   }

   @Override
   public String[] getHeaderValues(String var1) {
      this.a();
      if (this.d == null) {
         return b;
      }

      ArrayList var2 = new ArrayList();

      for (HttpHeader var6 : this.d) {
         if (var1.equalsIgnoreCase(var6.getName())) {
            var2.add(var6.getFullValue());
         }
      }

      return var2.toArray(new String[var2.size()]);
   }

   @Override
   public String[] getHeaderNames() {
      this.a();
      if (this.d == null) {
         return b;
      }

      ArrayList var1 = new ArrayList();

      for (HttpHeader var5 : this.d) {
         var1.add(var5.getName());
      }

      return var1.toArray(new String[var1.size()]);
   }

   @Override
   public boolean containsHeader(String var1) {
      this.a();
      if (this.d == null) {
         return false;
      }

      for (HttpHeader var5 : this.d) {
         if (var1.equalsIgnoreCase(var5.getName())) {
            return true;
         }
      }

      return false;
   }

   @Override
   public HttpHeader[] getHeadersArray() {
      this.a();
      return this.d == null ? a : this.d;
   }

   @Override
   public void close() throws IOException {
      this.c = null;
      this.d = null;
   }
}
