Skip to content

Commit

Permalink
revert changes in FilteringGeneratorDelegate
Browse files Browse the repository at this point in the history
  • Loading branch information
pjfanning committed Jun 18, 2023
1 parent dea8488 commit 6e9b35b
Showing 1 changed file with 43 additions and 56 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
import java.math.BigInteger;

import com.fasterxml.jackson.core.*;
import com.fasterxml.jackson.core.exc.StreamConstraintsException;
import com.fasterxml.jackson.core.filter.TokenFilter.Inclusion;
import com.fasterxml.jackson.core.util.JsonGeneratorDelegate;

Expand Down Expand Up @@ -93,7 +92,7 @@ public class FilteringGeneratorDelegate extends JsonGeneratorDelegate
*/
@Deprecated
public FilteringGeneratorDelegate(JsonGenerator d, TokenFilter f,
boolean includePath, boolean allowMultipleMatches)
boolean includePath, boolean allowMultipleMatches)
{
this(d, f, includePath ? Inclusion.INCLUDE_ALL_AND_PATH : Inclusion.ONLY_INCLUDE_ALL, allowMultipleMatches);
}
Expand All @@ -107,7 +106,7 @@ public FilteringGeneratorDelegate(JsonGenerator d, TokenFilter f,
* @since 2.12
*/
public FilteringGeneratorDelegate(JsonGenerator d, TokenFilter f,
TokenFilter.Inclusion inclusion, boolean allowMultipleMatches)
TokenFilter.Inclusion inclusion, boolean allowMultipleMatches)
{
// By default, do NOT delegate copy methods
super(d, false);
Expand Down Expand Up @@ -167,33 +166,33 @@ public void writeStartArray() throws IOException
{
// First things first: whole-sale skipping easy
if (_itemFilter == null) {
createChildArrayContext(null, false);
_filterContext = _filterContext.createChildArrayContext(null, false);
return;
}
if (_itemFilter == TokenFilter.INCLUDE_ALL) { // include the whole sub-tree?
createChildArrayContext(_itemFilter, true);
_filterContext = _filterContext.createChildArrayContext(_itemFilter, true);
delegate.writeStartArray();
return;
}
// Ok; regular checking state then
_itemFilter = _filterContext.checkValue(_itemFilter);
if (_itemFilter == null) {
createChildArrayContext(null, false);
_filterContext = _filterContext.createChildArrayContext(null, false);
return;
}
if (_itemFilter != TokenFilter.INCLUDE_ALL) {
_itemFilter = _itemFilter.filterStartArray();
}
if (_itemFilter == TokenFilter.INCLUDE_ALL) {
_checkParentPath();
createChildArrayContext(_itemFilter, true);
_filterContext = _filterContext.createChildArrayContext(_itemFilter, true);
delegate.writeStartArray();
} else if (_itemFilter != null && _inclusion == Inclusion.INCLUDE_NON_NULL) {
_checkParentPath(false /* isMatch */);
createChildArrayContext(_itemFilter, true);
_filterContext = _filterContext.createChildArrayContext(_itemFilter, true);
delegate.writeStartArray();
} else {
createChildArrayContext(_itemFilter, false);
_filterContext = _filterContext.createChildArrayContext(_itemFilter, false);
}
}

Expand All @@ -202,98 +201,98 @@ public void writeStartArray() throws IOException
public void writeStartArray(int size) throws IOException
{
if (_itemFilter == null) {
createChildArrayContext(null, false);
_filterContext = _filterContext.createChildArrayContext(null, false);
return;
}
if (_itemFilter == TokenFilter.INCLUDE_ALL) {
createChildArrayContext(_itemFilter, true);
_filterContext = _filterContext.createChildArrayContext(_itemFilter, true);
delegate.writeStartArray(size);
return;
}
_itemFilter = _filterContext.checkValue(_itemFilter);
if (_itemFilter == null) {
createChildArrayContext(null, false);
_filterContext = _filterContext.createChildArrayContext(null, false);
return;
}
if (_itemFilter != TokenFilter.INCLUDE_ALL) {
_itemFilter = _itemFilter.filterStartArray();
}
if (_itemFilter == TokenFilter.INCLUDE_ALL) {
_checkParentPath();
createChildArrayContext(_itemFilter, true);
_filterContext = _filterContext.createChildArrayContext(_itemFilter, true);
delegate.writeStartArray(size);
} else if (_itemFilter != null && _inclusion == Inclusion.INCLUDE_NON_NULL) {
_checkParentPath(false /* isMatch */);
createChildArrayContext(_itemFilter, true);
_filterContext = _filterContext.createChildArrayContext(_itemFilter, true);
delegate.writeStartArray(size);
} else {
createChildArrayContext(_itemFilter, false);
_filterContext = _filterContext.createChildArrayContext(_itemFilter, false);
}
}

@Override
public void writeStartArray(Object forValue) throws IOException
{
if (_itemFilter == null) {
createChildArrayContext(null, false);
_filterContext = _filterContext.createChildArrayContext(null, false);
return;
}
if (_itemFilter == TokenFilter.INCLUDE_ALL) {
createChildArrayContext(_itemFilter, true);
_filterContext = _filterContext.createChildArrayContext(_itemFilter, true);
delegate.writeStartArray(forValue);
return;
}
_itemFilter = _filterContext.checkValue(_itemFilter);
if (_itemFilter == null) {
createChildArrayContext(null, false);
_filterContext = _filterContext.createChildArrayContext(null, false);
return;
}
if (_itemFilter != TokenFilter.INCLUDE_ALL) {
_itemFilter = _itemFilter.filterStartArray();
}
if (_itemFilter == TokenFilter.INCLUDE_ALL) {
_checkParentPath();
createChildArrayContext(_itemFilter, true);
_filterContext = _filterContext.createChildArrayContext(_itemFilter, true);
delegate.writeStartArray(forValue);
} else if (_itemFilter != null && _inclusion == Inclusion.INCLUDE_NON_NULL) {
_checkParentPath(false /* isMatch */);
createChildArrayContext(_itemFilter, true);
_filterContext = _filterContext.createChildArrayContext(_itemFilter, true);
delegate.writeStartArray(forValue);
} else {
createChildArrayContext(_itemFilter, false);
_filterContext = _filterContext.createChildArrayContext(_itemFilter, false);
}
}

@Override
public void writeStartArray(Object forValue, int size) throws IOException
{
if (_itemFilter == null) {
createChildArrayContext(null, false);
_filterContext = _filterContext.createChildArrayContext(null, false);
return;
}
if (_itemFilter == TokenFilter.INCLUDE_ALL) {
createChildArrayContext(_itemFilter, true);
_filterContext = _filterContext.createChildArrayContext(_itemFilter, true);
delegate.writeStartArray(forValue, size);
return;
}
_itemFilter = _filterContext.checkValue(_itemFilter);
if (_itemFilter == null) {
createChildArrayContext(null, false);
_filterContext = _filterContext.createChildArrayContext(null, false);
return;
}
if (_itemFilter != TokenFilter.INCLUDE_ALL) {
_itemFilter = _itemFilter.filterStartArray();
}
if (_itemFilter == TokenFilter.INCLUDE_ALL) {
_checkParentPath();
createChildArrayContext(_itemFilter, true);
_filterContext = _filterContext.createChildArrayContext(_itemFilter, true);
delegate.writeStartArray(forValue, size);
} else if (_itemFilter != null && _inclusion == Inclusion.INCLUDE_NON_NULL) {
_checkParentPath(false /* isMatch */);
createChildArrayContext(_itemFilter, true);
_filterContext = _filterContext.createChildArrayContext(_itemFilter, true);
delegate.writeStartArray(forValue, size);
} else {
createChildArrayContext(_itemFilter, false);
_filterContext = _filterContext.createChildArrayContext(_itemFilter, false);
}
}

Expand All @@ -311,18 +310,18 @@ public void writeEndArray() throws IOException
public void writeStartObject() throws IOException
{
if (_itemFilter == null) {
createChildObjectContext(_itemFilter, false);
_filterContext = _filterContext.createChildObjectContext(_itemFilter, false);
return;
}
if (_itemFilter == TokenFilter.INCLUDE_ALL) {
createChildObjectContext(_itemFilter, true);
_filterContext = _filterContext.createChildObjectContext(_itemFilter, true);
delegate.writeStartObject();
return;
}

TokenFilter f = _filterContext.checkValue(_itemFilter);
if (f == null) {
createChildObjectContext(null, false);
_filterContext = _filterContext.createChildObjectContext(null, false);
return;
}

Expand All @@ -331,33 +330,33 @@ public void writeStartObject() throws IOException
}
if (f == TokenFilter.INCLUDE_ALL) {
_checkParentPath();
createChildObjectContext(f, true);
_filterContext = _filterContext.createChildObjectContext(f, true);
delegate.writeStartObject();
} else if (f != null && _inclusion == Inclusion.INCLUDE_NON_NULL) {
_checkParentPath(false /* isMatch */);
createChildObjectContext(f, true);
_filterContext = _filterContext.createChildObjectContext(f, true);
delegate.writeStartObject();
} else { // filter out
createChildObjectContext(f, false);
_filterContext = _filterContext.createChildObjectContext(f, false);
}
}

@Override
public void writeStartObject(Object forValue) throws IOException
{
if (_itemFilter == null) {
createChildObjectContext(_itemFilter, false);
_filterContext = _filterContext.createChildObjectContext(_itemFilter, false);
return;
}
if (_itemFilter == TokenFilter.INCLUDE_ALL) {
createChildObjectContext(_itemFilter, true);
_filterContext = _filterContext.createChildObjectContext(_itemFilter, true);
delegate.writeStartObject(forValue);
return;
}

TokenFilter f = _filterContext.checkValue(_itemFilter);
if (f == null) {
createChildObjectContext(null, false);
_filterContext = _filterContext.createChildObjectContext(null, false);
return;
}

Expand All @@ -366,33 +365,33 @@ public void writeStartObject(Object forValue) throws IOException
}
if (f == TokenFilter.INCLUDE_ALL) {
_checkParentPath();
createChildObjectContext(f, true);
_filterContext = _filterContext.createChildObjectContext(f, true);
delegate.writeStartObject(forValue);
} else if (f != null && _inclusion == Inclusion.INCLUDE_NON_NULL) {
_checkParentPath(false /* isMatch */);
createChildObjectContext(f, true);
_filterContext = _filterContext.createChildObjectContext(f, true);
delegate.writeStartObject(forValue);
} else { // filter out
createChildObjectContext(f, false);
_filterContext = _filterContext.createChildObjectContext(f, false);
}
}

@Override
public void writeStartObject(Object forValue, int size) throws IOException
{
if (_itemFilter == null) {
createChildObjectContext(_itemFilter, false);
_filterContext = _filterContext.createChildObjectContext(_itemFilter, false);
return;
}
if (_itemFilter == TokenFilter.INCLUDE_ALL) {
createChildObjectContext(_itemFilter, true);
_filterContext = _filterContext.createChildObjectContext(_itemFilter, true);
delegate.writeStartObject(forValue, size);
return;
}

TokenFilter f = _filterContext.checkValue(_itemFilter);
if (f == null) {
createChildObjectContext(null, false);
_filterContext = _filterContext.createChildObjectContext(null, false);
return;
}

Expand All @@ -401,10 +400,10 @@ public void writeStartObject(Object forValue, int size) throws IOException
}
if (f == TokenFilter.INCLUDE_ALL) {
_checkParentPath();
createChildObjectContext(f, true);
_filterContext = _filterContext.createChildObjectContext(f, true);
delegate.writeStartObject(forValue, size);
} else {
createChildObjectContext(f, false);
_filterContext = _filterContext.createChildObjectContext(f, false);
}
}

Expand Down Expand Up @@ -1090,16 +1089,4 @@ protected boolean _checkRawValueWrite() throws IOException
}
return false;
}

private void createChildArrayContext(final TokenFilter filter, final boolean writeStart)
throws StreamConstraintsException {
_filterContext = _filterContext.createChildArrayContext(filter, writeStart);
streamWriteConstraints().validateNestingDepth(_filterContext.getNestingDepth());
}

private void createChildObjectContext(final TokenFilter filter, final boolean writeStart)
throws StreamConstraintsException {
_filterContext = _filterContext.createChildObjectContext(filter, writeStart);
streamWriteConstraints().validateNestingDepth(_filterContext.getNestingDepth());
}
}

0 comments on commit 6e9b35b

Please sign in to comment.