All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.fasterxml.jackson.core.TreeNode Maven / Gradle / Ivy

package com.fasterxml.jackson.core;

/**
 * Marker interface used to denote JSON Tree nodes, as far as
 * the core package knows them (which is very little): mostly
 * needed to allow {@link ObjectCodec} to have some level
 * of interoperability.
 * All real functionality is within JsonNode
 * base class in mapper package.
 *

* Note that in Jackson 1.x JsonNode itself * was part of core package: Jackson 2.x refactored this * since conceptually Tree Model is part of mapper package, * and so part visible to core package should * be minimized. */ public interface TreeNode { /* /********************************************************** /* Minimal introspection methods /********************************************************** */ /** * Method that can be used for efficient type detection * when using stream abstraction for traversing nodes. * Will return the first {@link JsonToken} that equivalent * stream event would produce (for most nodes there is just * one token but for structured/container types multiple) */ JsonToken asToken(); /** * If this node is a numeric type (as per {@link JsonToken#isNumeric}), * returns native type that node uses to store the numeric value; * otherwise returns null. * * @return Type of number contained, if any; or null if node does not * contain numeric value. */ JsonParser.NumberType numberType(); /* /********************************************************** /* Public API: converting to/from Streaming API /********************************************************** */ /** * Method for constructing a {@link JsonParser} instance for * iterating over contents of the tree that this node is root of. * Functionally equivalent to first serializing tree using * {@link ObjectCodec} and then re-parsing but * more efficient. */ JsonParser traverse(); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy