package org.ovirt.engine.core.utils.network.predicate; import java.net.InetAddress; import java.net.UnknownHostException; import java.util.Objects; import java.util.function.Predicate; public final class IpAddressPredicate implements Predicate<String> { private final String baseAddressString; private final InetAddress baseAddress; public IpAddressPredicate(String baseAddress) { this.baseAddressString = baseAddress; this.baseAddress = convertToInetAddress(baseAddress); } @Override public boolean test(String address) { if (Objects.equals(baseAddressString, address)) { return true; } final InetAddress inetAddress = convertToInetAddress(address); return address != null && inetAddress != null && baseAddress != null && baseAddress.equals(inetAddress); } private InetAddress convertToInetAddress(String ipAddress) { if (ipAddress == null) { return null; } else { try { return InetAddress.getByName(ipAddress); } catch (UnknownHostException e) { return null; } } } }