package com.l7tech.common.io;

import com.l7tech.util.DeserializeSafe;
import com.l7tech.util.Pair;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;

@DeserializeSafe
public class PortRanges implements Serializable, PortOwner {
   final List<PortRange> ranges;
   static final long serialVersionUID = -7008177165102785966L;

   public PortRanges(Collection<PortRange> var1) {
      this.ranges = Collections.unmodifiableList(var1 != null ? new ArrayList<>(var1) : Collections.emptyList());
   }

   @Override
   public boolean isPortUsed(int var1, boolean var2, String var3) {
      for (PortRange var5 : this.ranges) {
         if (var5.isPortUsed(var1, var2, var3)) {
            return true;
         }
      }

      return false;
   }

   @Override
   public boolean isOverlapping(PortRange var1) {
      for (PortRange var3 : this.ranges) {
         if (var3.isOverlapping(var1)) {
            return true;
         }
      }

      return false;
   }

   @Override
   public Pair<PortRange, PortRange> getFirstOverlappingPortRange(PortOwner var1) {
      return PortRange.getFirstOverlappingPortRange(this, var1);
   }

   @Override
   public List<PortRange> getUsedPorts() {
      return this.ranges;
   }
}
