From bb35e7ba3c01100e057cffe00a527122fb3921ed Mon Sep 17 00:00:00 2001 From: Tatu Saloranta Date: Wed, 27 Jan 2021 20:39:05 -0800 Subject: [PATCH] bit more work on #674 --- .../fasterxml/jackson/core/JsonGenerator.java | 29 ++++++++++++++----- .../fasterxml/jackson/core/JsonParser.java | 25 ++++++++++++---- .../core/util/JsonGeneratorDelegate.java | 10 +++---- .../jackson/core/util/JsonParserDelegate.java | 17 +++++++---- 4 files changed, 57 insertions(+), 24 deletions(-) diff --git a/src/main/java/com/fasterxml/jackson/core/JsonGenerator.java b/src/main/java/com/fasterxml/jackson/core/JsonGenerator.java index f916586601..2d520a3c5b 100644 --- a/src/main/java/com/fasterxml/jackson/core/JsonGenerator.java +++ b/src/main/java/com/fasterxml/jackson/core/JsonGenerator.java @@ -375,7 +375,25 @@ public Object getOutputTarget() { * * @since 2.13 (added as replacement for older {@link #getCurrentValue()} */ - public abstract Object currentValue(); + public Object currentValue() { + // TODO: implement directly in 2.14 or later, make getCurrentValue() call this + return getCurrentValue(); + } + + /** + * Helper method, usually equivalent to: + * + * getOutputContext().setCurrentValue(v); + * + * + * @param v Current value to assign for the current context of this generator + * + * @since 2.13 (added as replacement for older {@link #setCurrentValue} + */ + public void assignCurrentValue(Object v) { + // TODO: implement directly in 2.14 or later, make setCurrentValue() call this + setCurrentValue(v); + } // TODO: deprecate in 2.14 or later /** @@ -389,15 +407,12 @@ public Object getCurrentValue() { return (ctxt == null) ? null : ctxt.getCurrentValue(); } + // TODO: deprecate in 2.14 or later /** - * Helper method, usually equivalent to: - * - * getOutputContext().setCurrentValue(v); - * + * Alias for {@link #assignCurrentValue}, to be deprecated in later + * Jackson 2.x versions (and removed from Jackson 3.0). * * @param v Current value to assign for the current context of this generator - * - * @since 2.5 */ public void setCurrentValue(Object v) { JsonStreamContext ctxt = getOutputContext(); diff --git a/src/main/java/com/fasterxml/jackson/core/JsonParser.java b/src/main/java/com/fasterxml/jackson/core/JsonParser.java index 66bec6ede5..b7315178c5 100644 --- a/src/main/java/com/fasterxml/jackson/core/JsonParser.java +++ b/src/main/java/com/fasterxml/jackson/core/JsonParser.java @@ -718,9 +718,25 @@ public JsonLocation currentTokenLocation() { * @since 2.13 (added as replacement for older {@link #getCurrentValue()} */ public Object currentValue() { + // TODO: implement directly in 2.14 or later, make getCurrentValue() call this return getCurrentValue(); } + /** + * Helper method, usually equivalent to: + * + * getParsingContext().setCurrentValue(v); + * + * + * @param v Current value to assign for the current input context of this parser + * + * @since 2.13 (added as replacement for older {@link #setCurrentValue} + */ + public void assignCurrentValue(Object v) { + // TODO: implement directly in 2.14 or later, make setCurrentValue() call this + setCurrentValue(v); + } + // TODO: deprecate in 2.14 or later /** * Alias for {@link #currentValue()}, to be deprecated in later @@ -733,15 +749,12 @@ public Object getCurrentValue() { return (ctxt == null) ? null : ctxt.getCurrentValue(); } + // TODO: deprecate in 2.14 or later /** - * Helper method, usually equivalent to: - * - * getParsingContext().setCurrentValue(v); - * + * Alias for {@link #assignCurrentValue}, to be deprecated in later + * Jackson 2.x versions (and removed from Jackson 3.0). * * @param v Current value to assign for the current input context of this parser - * - * @since 2.5 */ public void setCurrentValue(Object v) { JsonStreamContext ctxt = getParsingContext(); diff --git a/src/main/java/com/fasterxml/jackson/core/util/JsonGeneratorDelegate.java b/src/main/java/com/fasterxml/jackson/core/util/JsonGeneratorDelegate.java index 269a936995..8fb3abb4d0 100644 --- a/src/main/java/com/fasterxml/jackson/core/util/JsonGeneratorDelegate.java +++ b/src/main/java/com/fasterxml/jackson/core/util/JsonGeneratorDelegate.java @@ -63,14 +63,14 @@ public JsonGeneratorDelegate(JsonGenerator d, boolean delegateCopyMethods) { @Override public Object getOutputTarget() { return delegate.getOutputTarget(); } @Override public int getOutputBuffered() { return delegate.getOutputBuffered(); } - @Override - public void setCurrentValue(Object v) { - delegate.setCurrentValue(v); - } + @Override public void assignCurrentValue(Object v) { delegate.assignCurrentValue(v); } + @Override public Object currentValue() { return delegate.currentValue(); } + // TODO: deprecate in 2.14 or later @Override - public Object currentValue() { return delegate.currentValue(); } + public void setCurrentValue(Object v) { delegate.setCurrentValue(v); } + // TODO: deprecate in 2.14 or later @Override public Object getCurrentValue() { return delegate.getCurrentValue(); } diff --git a/src/main/java/com/fasterxml/jackson/core/util/JsonParserDelegate.java b/src/main/java/com/fasterxml/jackson/core/util/JsonParserDelegate.java index 9ffa4be8b6..8ca5074007 100644 --- a/src/main/java/com/fasterxml/jackson/core/util/JsonParserDelegate.java +++ b/src/main/java/com/fasterxml/jackson/core/util/JsonParserDelegate.java @@ -104,10 +104,12 @@ public JsonParser overrideFormatFeatures(int values, int mask) { @Override public JsonToken getLastClearedToken() { return delegate.getLastClearedToken(); } @Override public void overrideCurrentName(String name) { delegate.overrideCurrentName(name); } + @Override // since 2.13 + public void assignCurrentValue(Object v) { delegate.assignCurrentValue(v); } + + // TODO: deprecate in 2.14 or later @Override - public void setCurrentValue(Object v) { - delegate.setCurrentValue(v); - } + public void setCurrentValue(Object v) { delegate.setCurrentValue(v); } /* /********************************************************************** @@ -120,10 +122,13 @@ public void setCurrentValue(Object v) { @Override public JsonToken currentToken() { return delegate.currentToken(); } @Override public int currentTokenId() { return delegate.currentTokenId(); } @Override public String currentName() throws IOException { return delegate.currentName(); } - @Override public Object currentValue() { return delegate.currentValue(); } + @Override // since 2.13 + public Object currentValue() { return delegate.currentValue(); } - @Override public JsonLocation currentLocation() { return delegate.getCurrentLocation(); } - @Override public JsonLocation currentTokenLocation() { return delegate.getTokenLocation(); } + @Override // since 2.13 + public JsonLocation currentLocation() { return delegate.getCurrentLocation(); } + @Override // since 2.13 + public JsonLocation currentTokenLocation() { return delegate.getTokenLocation(); } // TODO: deprecate in 2.14 or later @Override public JsonToken getCurrentToken() { return delegate.getCurrentToken(); }