@Override public StateEnvelope<T> doIt(StateEnvelope<T> stateEnvelope) { if (type == null) type = Type.EXCLUDE; if (isExclude() && stateEnvelope.isState(FilterState.OUT)) { return stateEnvelope; } if (isInclude() && stateEnvelope.isState(FilterState.IN)) { return stateEnvelope; } return updateStateEnvelope(stateEnvelope); }
private StateEnvelope<T> updateStateEnvelope(StateEnvelope<T> stateEnvelope) { Boolean result = runFilter(stateEnvelope.getItem()); if (result == null) { log.error("The filter [{}] returned a null value. This filter is being ignored.", this); return stateEnvelope; } if (result) { if (isExclude()) { stateEnvelope.setState(FilterState.OUT); } else if (isInclude()) { stateEnvelope.setState(FilterState.IN); } } return stateEnvelope; }