Package com.fasterxml.jackson.core.json
Class JsonWriteContext
java.lang.Object
com.fasterxml.jackson.core.JsonStreamContext
com.fasterxml.jackson.core.json.JsonWriteContext
Extension of
JsonStreamContext
, which implements
core methods needed, and also exposes
more complete API to generator implementation classes.-
Field Summary
Modifier and TypeFieldDescriptionprotected JsonWriteContext
protected String
Name of the field of which value is to be written; only used for OBJECT contextsprotected Object
protected DupDetector
protected boolean
Marker used to indicate that we just wrote a name, and now expect a value to writeprotected final JsonWriteContext
Parent context for this context; null for root context.static final int
static final int
static final int
static final int
static final int
static final int
Fields inherited from class com.fasterxml.jackson.core.JsonStreamContext
_index, _nestingDepth, _type, TYPE_ARRAY, TYPE_OBJECT, TYPE_ROOT
-
Constructor Summary
ModifierConstructorDescriptionprotected
JsonWriteContext
(int type, JsonWriteContext parent, DupDetector dups) protected
JsonWriteContext
(int type, JsonWriteContext parent, DupDetector dups, Object currValue) -
Method Summary
Modifier and TypeMethodDescriptionMethod that can be used to both clear the accumulated references (specifically value set withsetCurrentValue(Object)
) that should not be retained, and returns parent (as wouldgetParent()
do).createChildArrayContext
(Object currValue) createChildObjectContext
(Object currValue) static JsonWriteContext
Deprecated.Since 2.3; use method that takes argumentstatic JsonWriteContext
final String
Method for accessing name associated with the current location.Method for accessing currently active value being used by data-binding (as the source of streaming data to write, or destination of data being read), at this level in hierarchy.final JsonWriteContext
Accessor for finding parent context of this context; will return null for root context.boolean
reset
(int type) Internal method to allow instance reuse: DO NOT USE unless you absolutely know what you are doing.Internal method to allow instance reuse: DO NOT USE unless you absolutely know what you are doing.void
Method to call to pass value to be returned viaJsonStreamContext.getCurrentValue()
; typically called indirectly throughJsonParser.setCurrentValue(java.lang.Object)
orJsonGenerator.setCurrentValue(java.lang.Object)
).withDupDetector
(DupDetector dups) int
writeFieldName
(String name) Method that writer is to call before it writes a name of Object property.int
Methods inherited from class com.fasterxml.jackson.core.JsonStreamContext
getCurrentIndex, getEntryCount, getNestingDepth, getStartLocation, getTypeDesc, hasCurrentIndex, hasPathSegment, inArray, inObject, inRoot, pathAsPointer, pathAsPointer, startLocation, toString, typeDesc
-
Field Details
-
STATUS_OK_AS_IS
public static final int STATUS_OK_AS_IS- See Also:
-
STATUS_OK_AFTER_COMMA
public static final int STATUS_OK_AFTER_COMMA- See Also:
-
STATUS_OK_AFTER_COLON
public static final int STATUS_OK_AFTER_COLON- See Also:
-
STATUS_OK_AFTER_SPACE
public static final int STATUS_OK_AFTER_SPACE- See Also:
-
STATUS_EXPECT_VALUE
public static final int STATUS_EXPECT_VALUE- See Also:
-
STATUS_EXPECT_NAME
public static final int STATUS_EXPECT_NAME- See Also:
-
_parent
Parent context for this context; null for root context. -
_dups
-
_child
-
_currentName
Name of the field of which value is to be written; only used for OBJECT contexts -
_currentValue
- Since:
- 2.5
-
_gotName
protected boolean _gotNameMarker used to indicate that we just wrote a name, and now expect a value to write
-
-
Constructor Details
-
JsonWriteContext
-
JsonWriteContext
-
-
Method Details
-
reset
Internal method to allow instance reuse: DO NOT USE unless you absolutely know what you are doing. Clears up state (including "current value"), changes type to one specified; resets current duplicate-detection state (if any). Parent link left as-is since it isfinal
.NOTE: Public since 2.12.
- Parameters:
type
- Type to assign to this context node- Returns:
- This context instance to allow call-chaining
-
reset
Internal method to allow instance reuse: DO NOT USE unless you absolutely know what you are doing. Clears up state, changes type to one specified, assigns "current value"; resets current duplicate-detection state (if any). Parent link left as-is since it isfinal
.NOTE: Public since 2.12.
- Parameters:
type
- Type to assign to this context nodecurrValue
- Current value to assign to this context node- Returns:
- This context instance to allow call-chaining
- Since:
- 2.10
-
withDupDetector
-
getCurrentValue
Description copied from class:JsonStreamContext
Method for accessing currently active value being used by data-binding (as the source of streaming data to write, or destination of data being read), at this level in hierarchy.Note that "current value" is NOT populated (or used) by Streaming parser or generator; it is only used by higher-level data-binding functionality. The reason it is included here is that it can be stored and accessed hierarchically, and gets passed through data-binding.
- Overrides:
getCurrentValue
in classJsonStreamContext
- Returns:
- Currently active value, if one has been assigned.
-
setCurrentValue
Description copied from class:JsonStreamContext
Method to call to pass value to be returned viaJsonStreamContext.getCurrentValue()
; typically called indirectly throughJsonParser.setCurrentValue(java.lang.Object)
orJsonGenerator.setCurrentValue(java.lang.Object)
).- Overrides:
setCurrentValue
in classJsonStreamContext
- Parameters:
v
- Current value to assign to this context
-
createRootContext
Deprecated.Since 2.3; use method that takes argument- Returns:
- Context instance created
-
createRootContext
-
createChildArrayContext
-
createChildArrayContext
-
createChildObjectContext
-
createChildObjectContext
-
getParent
Description copied from class:JsonStreamContext
Accessor for finding parent context of this context; will return null for root context.- Specified by:
getParent
in classJsonStreamContext
- Returns:
- Parent context of this context, if any;
null
for Root contexts
-
getCurrentName
Description copied from class:JsonStreamContext
Method for accessing name associated with the current location. Non-null forFIELD_NAME
and value events that directly follow field names; null for root level and array values.- Specified by:
getCurrentName
in classJsonStreamContext
- Returns:
- Current field name within context, if any;
null
if none
-
hasCurrentName
public boolean hasCurrentName()- Overrides:
hasCurrentName
in classJsonStreamContext
- Returns:
True
if a call toJsonStreamContext.getCurrentName()
would return non-null
name;false
otherwise
-
clearAndGetParent
Method that can be used to both clear the accumulated references (specifically value set withsetCurrentValue(Object)
) that should not be retained, and returns parent (as wouldgetParent()
do). Typically called when closing the active context when encounteringJsonToken.END_ARRAY
orJsonToken.END_OBJECT
.- Returns:
- Parent context of this context node, if any;
null
for root context - Since:
- 2.7
-
getDupDetector
-
writeFieldName
Method that writer is to call before it writes a name of Object property.- Parameters:
name
- Property name being written- Returns:
- Index of the field entry (0-based)
- Throws:
JsonProcessingException
- if duplicate check restriction is violated
-
writeValue
public int writeValue()
-