Package org.apache.catalina.util

## Class NetMaskSet

- java.lang.Object
- - org.apache.catalina.util.NetMaskSet

    public class NetMaskSet
    extends Object

This class maintains a Set of NetMask objects and allows to check if a given IP address is matched by any of the NetMasks, making it easy to create Allow and Deny lists of CIDR networks and hosts.

### Constructor Summary

Constructors
`NetMaskSet()`

### Method Summary

All Methods Instance Methods Concrete Methods
`boolean` `add​(String input)` Creates a NetMask object from the input string and adds it to the set.
`boolean` `add​(NetMask netmask)` Adds a NetMask object to the set if the set does not contain it
`List<String>` `addAll​(String input)` Adds a `NetMask` list from a string input containing a comma-separated list of (hopefully valid) `NetMask`s.
`void` `clear()` removes all entries from the set
`boolean` `contains​(String ipAddress)` Tests if the provided IP address matches any of the `NetMask`s in the set.
`boolean` `contains​(InetAddress inetAddress)` Tests if the provided InetAddress matches any of the `NetMask`s in the set.
`boolean` `isEmpty()` Tests if the set is empty.
`String` `toString()` Provides a string representation of this NetMaskSet.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Constructor Detail

#### NetMaskSet

    public NetMaskSet()

### Method Detail

#### contains

    public boolean contains​(InetAddress inetAddress)

Tests if the provided InetAddress matches any of the `NetMask`s in the set.

Parameters:
  `inetAddress` - An InetAddress to check
Returns:
  `true` if the passed inetAddress is matched by any of the `NetMask`s in the set

#### contains

    public boolean contains​(String ipAddress)
                     throws UnknownHostException

Tests if the provided IP address matches any of the `NetMask`s in the set.

Parameters:
  `ipAddress` - an IP address to check
Returns:
  `true` if the passed IP address is matched by any of the `NetMask`s in the set
Throws:
  `UnknownHostException` - if the passed input is not a valid IP address

#### add

    public boolean add​(NetMask netmask)

Adds a NetMask object to the set if the set does not contain it

Parameters:
  `netmask` - The NetMask to add
Returns:
  true if the object was added

#### add

    public boolean add​(String input)

Creates a NetMask object from the input string and adds it to the set.

Parameters:
  `input` - The string from which to construct the NetMask
Returns:
  true if the object was added
Throws:
  `IllegalArgumentException` - if the input is not a valid CIDR format.

#### clear

    public void clear()

removes all entries from the set

#### isEmpty

    public boolean isEmpty()

Tests if the set is empty.

Returns:
  `true` if the set is empty, otherwise `false`

#### addAll

    public List<String> addAll​(String input)

Adds a `NetMask` list from a string input containing a comma-separated list of (hopefully valid) `NetMask`s.

Parameters:
  `input` - The input string
Returns:
  a list of processing error messages (empty when no errors)

#### toString

    public String toString()

Provides a string representation of this NetMaskSet. The format of the String is not guaranteed to remain fixed.

Overrides:
  `toString` in class `Object`
Returns:
  a comma separated list of the `NetMask`s in this set