public boolean check(InetAddress addr) {
        if (AllowAll) {
            if (Logger.isDebug()) {
                Logger.debug(addr.getHostName() + " is allowed.[AllowAll]");
            }
            return true;
        }
        Boolean Value = FilterTable.get(addr);
        if (Value != null && Value.booleanValue()) {
            if (Logger.isDebug()) {
                Logger.debug(addr.getHostName() + " is allowed.[AllowList]");
            }
            return true;
        }
        if (DenyAll) {
            if (Logger.isDebug()) {
                Logger.debug(addr.getHostName() + " is denied.[DenyAll]");
            }
            return false;
        }
        if (Value != null && !Value.booleanValue()) {
            if (Logger.isDebug()) {
                Logger.debug(addr.getHostName() + " is denied.[DenyList]");
            }
            return false;
        }
        if (Logger.isDebug()) {
            Logger.debug(addr.getHostName() + " is allowed.[NoRule]");
        }
        return true;
    }