示例#1
0
 @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);
 }
示例#2
0
  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;
  }