Refine search
@Override public void writeBinary(Base64Variant b64variant, byte[] data, int offset, int len) throws IOException { if (_checkBinaryWrite()) { delegate.writeBinary(b64variant, data, offset, len); } }
@Override public void writeString(char[] text, int offset, int len) throws IOException { if (_itemFilter == null) { return; } if (_itemFilter != TokenFilter.INCLUDE_ALL) { String value = new String(text, offset, len); TokenFilter state = _filterContext.checkValue(_itemFilter); if (state == null) { return; } if (state != TokenFilter.INCLUDE_ALL) { if (!state.includeString(value)) { return; } } _checkParentPath(); } delegate.writeString(text, offset, len); }
@Override public void writeFieldName(String name) throws IOException { TokenFilter state = _filterContext.setFieldName(name); if (state == null) { _itemFilter = null; return; } if (state == TokenFilter.INCLUDE_ALL) { _itemFilter = state; delegate.writeFieldName(name); return; } state = state.includeProperty(name); _itemFilter = state; if (state == TokenFilter.INCLUDE_ALL) { _checkPropertyParentPath(); } }
@Override public void writeStartObject(Object forValue) throws IOException { if (_itemFilter == null) { _filterContext = _filterContext.createChildObjectContext(_itemFilter, false); return; } if (_itemFilter == TokenFilter.INCLUDE_ALL) { _filterContext = _filterContext.createChildObjectContext(_itemFilter, true); delegate.writeStartObject(forValue); return; } TokenFilter f = _filterContext.checkValue(_itemFilter); if (f == null) { return; } if (f != TokenFilter.INCLUDE_ALL) { f = f.filterStartObject(); } if (f == TokenFilter.INCLUDE_ALL) { _checkParentPath(); _filterContext = _filterContext.createChildObjectContext(f, true); delegate.writeStartObject(forValue); } else { // filter out _filterContext = _filterContext.createChildObjectContext(f, false); } }
@Override public void writeNumber(long v) throws IOException { if (_itemFilter == null) { return; } if (_itemFilter != TokenFilter.INCLUDE_ALL) { TokenFilter state = _filterContext.checkValue(_itemFilter); if (state == null) { return; } if (state != TokenFilter.INCLUDE_ALL) { if (!state.includeNumber(v)) { return; } } _checkParentPath(); } delegate.writeNumber(v); }
@Override public void writeStartArray(int size) throws IOException { if (_itemFilter == null) { _filterContext = _filterContext.createChildArrayContext(null, false); return; } if (_itemFilter == TokenFilter.INCLUDE_ALL) { _filterContext = _filterContext.createChildArrayContext(_itemFilter, true); delegate.writeStartArray(size); return; } _itemFilter = _filterContext.checkValue(_itemFilter); if (_itemFilter == null) { _filterContext = _filterContext.createChildArrayContext(null, false); return; } if (_itemFilter != TokenFilter.INCLUDE_ALL) { _itemFilter = _itemFilter.filterStartArray(); } if (_itemFilter == TokenFilter.INCLUDE_ALL) { _checkParentPath(); _filterContext = _filterContext.createChildArrayContext(_itemFilter, true); delegate.writeStartArray(size); } else { _filterContext = _filterContext.createChildArrayContext(_itemFilter, false); } }
@Override public void writeRawValue(String text, int offset, int len) throws IOException { if (_checkRawValueWrite()) { delegate.writeRaw(text, offset, len); } }
@Override public void writeNull() throws IOException { if (_itemFilter == null) { return; } if (_itemFilter != TokenFilter.INCLUDE_ALL) { TokenFilter state = _filterContext.checkValue(_itemFilter); if (state == null) { return; } if (state != TokenFilter.INCLUDE_ALL) { if (!state.includeNull()) { return; } } _checkParentPath(); } delegate.writeNull(); }
@Override public void writeBoolean(boolean v) throws IOException { if (_itemFilter == null) { return; } if (_itemFilter != TokenFilter.INCLUDE_ALL) { TokenFilter state = _filterContext.checkValue(_itemFilter); if (state == null) { return; } if (state != TokenFilter.INCLUDE_ALL) { if (!state.includeBoolean(v)) { return; } } _checkParentPath(); } delegate.writeBoolean(v); }
@Override public void writeUTF8String(byte[] text, int offset, int length) throws IOException { // not exact match, but best we can do if (_checkRawValueWrite()) { delegate.writeUTF8String(text, offset, length); } }
@Override public void writeRawUTF8String(byte[] text, int offset, int length) throws IOException { if (_checkRawValueWrite()) { delegate.writeRawUTF8String(text, offset, length); } }
@Override public void serialize(final T value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException, JsonProcessingException { final FilteringGeneratorDelegate filtering = new FilteringGeneratorDelegate(gen, excludeFilter, true, true); if (value == null || delegate == null) { serializers.defaultSerializeValue(value, filtering); } else { delegate.serialize(value, filtering, serializers); } } }
protected boolean _checkRawValueWrite() throws IOException { if (_itemFilter == null) { return false; } if (_itemFilter == TokenFilter.INCLUDE_ALL) { return true; } if (_itemFilter.includeRawValue()) { // close enough? _checkParentPath(); return true; } return false; } }
private JsonGenerator getLowLevelGenerator() { if (isFiltered()) { JsonGenerator delegate = filter.getDelegate(); if (delegate instanceof JsonGeneratorDelegate) { // In case of combined inclusion and exclusion filters, we have one and only one another delegating level delegate = ((JsonGeneratorDelegate) delegate).getDelegate(); assert delegate instanceof JsonGeneratorDelegate == false; } return delegate; } return generator; }
@Override public void writeStartObject() throws IOException { if (_itemFilter == null) { _filterContext = _filterContext.createChildObjectContext(_itemFilter, false); return; } if (_itemFilter == TokenFilter.INCLUDE_ALL) { _filterContext = _filterContext.createChildObjectContext(_itemFilter, true); delegate.writeStartObject(); return; } TokenFilter f = _filterContext.checkValue(_itemFilter); if (f == null) { return; } if (f != TokenFilter.INCLUDE_ALL) { f = f.filterStartObject(); } if (f == TokenFilter.INCLUDE_ALL) { _checkParentPath(); _filterContext = _filterContext.createChildObjectContext(f, true); delegate.writeStartObject(); } else { // filter out _filterContext = _filterContext.createChildObjectContext(f, false); } }
@Override public void writeNumber(String encodedValue) throws IOException, UnsupportedOperationException { if (_itemFilter == null) { return; } if (_itemFilter != TokenFilter.INCLUDE_ALL) { TokenFilter state = _filterContext.checkValue(_itemFilter); if (state == null) { return; } if (state != TokenFilter.INCLUDE_ALL) { if (!state.includeRawValue()) { // close enough? return; } } _checkParentPath(); } delegate.writeNumber(encodedValue); }
delegate.writeStartArray(); return; _checkParentPath(); _filterContext = _filterContext.createChildArrayContext(_itemFilter, true); delegate.writeStartArray(); } else { _filterContext = _filterContext.createChildArrayContext(_itemFilter, false);
@Override public void writeRaw(char[] text, int offset, int len) throws IOException { if (_checkRawValueWrite()) { delegate.writeRaw(text, offset, len); } }
@Override public void writeNull() throws IOException { if (_itemFilter == null) { return; } if (_itemFilter != TokenFilter.INCLUDE_ALL) { TokenFilter state = _filterContext.checkValue(_itemFilter); if (state == null) { return; } if (state != TokenFilter.INCLUDE_ALL) { if (!state.includeNull()) { return; } } _checkParentPath(); } delegate.writeNull(); }
@Override public void writeBoolean(boolean v) throws IOException { if (_itemFilter == null) { return; } if (_itemFilter != TokenFilter.INCLUDE_ALL) { TokenFilter state = _filterContext.checkValue(_itemFilter); if (state == null) { return; } if (state != TokenFilter.INCLUDE_ALL) { if (!state.includeBoolean(v)) { return; } } _checkParentPath(); } delegate.writeBoolean(v); }