@Override
    public boolean containedBy(IValue ip) throws FilterException {
        return range.inRange(((ValueIPAddress) ip).getIP());
    }
@ Override public boolean containedBy ( IValue ip ) throws FilterException { return range . inRange ( ( ( ValueIPAddress ) ip ) . getIP ( ) ) ; }
Is the IP address within the range (this). In some sense this is the opposite of the usual
interpretation of the containedBy() function. However, it's the best I can think of. If, you
think of the string comparisons as asking the question "does the input match the value" where the value
has an implicit wildard at the beginning and end, then the interpretation here is essentially the same.
Yes, this is strained, but it's the best I can think of for now.