Package com.fasterxml.jackson.core
Class StreamWriteConstraints
- java.lang.Object
 - 
- com.fasterxml.jackson.core.StreamWriteConstraints
 
 
- 
- All Implemented Interfaces:
 java.io.Serializable
public class StreamWriteConstraints extends java.lang.Object implements java.io.SerializableThe constraints to use for streaming writes: used to guard against problematic output by preventing processing of "too big" output constructs (values, structures). Constraints are registered withTokenStreamFactory(such asJsonFactory); if nothing explicitly specified, default constraints are used.Currently constrained aspects, with default settings, are:
- Maximum Nesting depth: default 1000 (see 
DEFAULT_MAX_DEPTH) 
- Since:
 - 2.16
 - See Also:
 - Serialized Form
 
 
- 
- 
Nested Class Summary
Nested Classes Modifier and Type Class Description static classStreamWriteConstraints.Builder 
- 
Field Summary
Fields Modifier and Type Field Description static intDEFAULT_MAX_DEPTHDefault setting for maximum depth: seeStreamWriteConstraints.Builder.maxNestingDepth(int)for details. 
- 
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static StreamWriteConstraints.Builderbuilder()static StreamWriteConstraintsdefaults()intgetMaxNestingDepth()Accessor for maximum depth.static voidoverrideDefaultStreamWriteConstraints(StreamWriteConstraints streamWriteConstraints)Override the default StreamWriteConstraints.StreamWriteConstraints.Builderrebuild()voidvalidateNestingDepth(int depth)Convenience method that can be used to verify that the nesting depth does not exceed the maximum specified by this constraints object: if it does, aStreamConstraintsExceptionis thrown. 
 - 
 
- 
- 
Field Detail
- 
DEFAULT_MAX_DEPTH
public static final int DEFAULT_MAX_DEPTH
Default setting for maximum depth: seeStreamWriteConstraints.Builder.maxNestingDepth(int)for details.- See Also:
 - Constant Field Values
 
 
 - 
 
- 
Method Detail
- 
overrideDefaultStreamWriteConstraints
public static void overrideDefaultStreamWriteConstraints(StreamWriteConstraints streamWriteConstraints)
Override the default StreamWriteConstraints. These defaults are only used whenJsonFactoryinstances are not configured with their own StreamWriteConstraints.Library maintainers should not set this as it will affect other code that uses Jackson. Library maintainers who want to configure StreamWriteConstraints for the Jackson usage within their lib should create
ObjectMapperinstances that have aJsonFactoryinstance with the required StreamWriteConstraints.This method is meant for users delivering applications. If they use this, they set it when they start their application to avoid having other code initialize their mappers before the defaults are overridden.
- Parameters:
 streamWriteConstraints- new default for StreamWriteConstraints (a null value will reset to built-in default)- See Also:
 defaults(),builder()
 
- 
builder
public static StreamWriteConstraints.Builder builder()
 
- 
defaults
public static StreamWriteConstraints defaults()
- Returns:
 - the default 
StreamWriteConstraints(when none is set on theJsonFactoryexplicitly) - See Also:
 overrideDefaultStreamWriteConstraints(StreamWriteConstraints)
 
- 
rebuild
public StreamWriteConstraints.Builder rebuild()
- Returns:
 - New 
StreamWriteConstraints.Builderinitialized with settings of this constraints instance 
 
- 
getMaxNestingDepth
public int getMaxNestingDepth()
Accessor for maximum depth. seeStreamWriteConstraints.Builder.maxNestingDepth(int)for details.- Returns:
 - Maximum allowed depth
 
 
- 
validateNestingDepth
public void validateNestingDepth(int depth) throws StreamConstraintsExceptionConvenience method that can be used to verify that the nesting depth does not exceed the maximum specified by this constraints object: if it does, aStreamConstraintsExceptionis thrown.- Parameters:
 depth- count of unclosed objects and arrays- Throws:
 StreamConstraintsException- If depth exceeds maximum
 
 - 
 
 -