Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (101)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (309)
Collections:
Other Resources:
Jackson Core Source Code
Jackson is "the Java JSON library" or "the best JSON parser for Java". Or simply as "JSON for Java".
Jackson Core Source Code files are provided in the source packge (jackson-core-2.14.0-sources.jar). You can download it at Jackson Maven Website.
You can also browse Jackson Core Source Code below:
✍: FYIcenter.com
⏎ com/fasterxml/jackson/core/JsonLocation.java
/* Jackson JSON-processor. * * Copyright (c) 2007- Tatu Saloranta, tatu.saloranta@iki.fi */ package com.fasterxml.jackson.core; import com.fasterxml.jackson.core.io.ContentReference; /** * Object that encapsulates Location information used for reporting * parsing (or potentially generation) errors, as well as current location * within input streams. *<p> * NOTE: users should be careful if using {@link #equals} implementation as * it may or may not compare underlying "content reference" for equality. * Instead if would make sense to explicitly implementing equality checks * using specific criteria caller desires. */ public class JsonLocation implements java.io.Serializable { private static final long serialVersionUID = 2L; // in 2.13 /** * @deprecated Since 2.13 use {@link ContentReference#DEFAULT_MAX_CONTENT_SNIPPET} instead */ @Deprecated public static final int MAX_CONTENT_SNIPPET = 500; /** * Shared immutable "N/A location" that can be returned to indicate * that no location information is available. *<p> * NOTE: before 2.9, Location was given as String "N/A"; with 2.9 it was * removed so that source should be indicated as "UNKNOWN". */ public final static JsonLocation NA = new JsonLocation(ContentReference.unknown(), -1L, -1L, -1, -1); protected final long _totalBytes; protected final long _totalChars; protected final int _lineNr; protected final int _columnNr; /** * Reference to input source; never null (but may be that of * {@link ContentReference#unknown()}). * * @since 2.13 (before we have {@code _sourceRef} (Object-valued) */ protected final ContentReference _contentReference; /** * Lazily constructed description for source; constructed if and * when {@link #sourceDescription()} is called, retained. * * @since 2.13 */ protected transient String _sourceDescription; /* /********************************************************************** /* Life cycle /********************************************************************** */ public JsonLocation(ContentReference contentRef, long totalChars, int lineNr, int colNr) { this(contentRef, -1L, totalChars, lineNr, colNr); } public JsonLocation(ContentReference contentRef, long totalBytes, long totalChars, int lineNr, int columnNr) { // 14-Mar-2021, tatu: Defensive programming, but also for convenience... if (contentRef == null) { contentRef = ContentReference.unknown(); } _contentReference = contentRef; _totalBytes = totalBytes; _totalChars = totalChars; _lineNr = lineNr; _columnNr = columnNr; } @Deprecated // since 2.13 public JsonLocation(Object srcRef, long totalChars, int lineNr, int columnNr) { this(_wrap(srcRef), totalChars, lineNr, columnNr); } @Deprecated // since 2.13 public JsonLocation(Object srcRef, long totalBytes, long totalChars, int lineNr, int columnNr) { this(_wrap(srcRef), totalBytes, totalChars, lineNr, columnNr); } protected static ContentReference _wrap(Object srcRef) { if (srcRef instanceof ContentReference) { return (ContentReference) srcRef; } return ContentReference.construct(false, srcRef); } /* /********************************************************************** /* Simple accessors /********************************************************************** */ /** * Accessor for information about the original input source content is being * read from. Returned reference is never {@code null} but may not contain * useful information. *<p> * NOTE: not getter, on purpose, to avoid inlusion if serialized using * default Jackson serializer. * * @return Object with information about input source. * * @since 2.13 (to replace {@code getSourceRef}) */ public ContentReference contentReference() { return _contentReference; } /** * Reference to the original resource being read, if one available. * For example, when a parser has been constructed by passing * a {@link java.io.File} instance, this method would return * that File. Will return null if no such reference is available, * for example when {@link java.io.InputStream} was used to * construct the parser instance. * * @return Source reference this location was constructed with, if any; {@code null} if none * * @deprecated Since 2.13 Use {@link #contentReference} instead */ @Deprecated public Object getSourceRef() { return _contentReference.getRawContent(); } /** * Access for getting line number of this location, if available. * Note that line number is typically not available for binary formats. * * @return Line number of the location (1-based), if available; {@code -1} if not. */ public int getLineNr() { return _lineNr; } /** * Access for getting column position of this location, if available. * Note that column position is typically not available for binary formats. * * @return Column position of the location (1-based), if available; {@code -1} if not. */ public int getColumnNr() { return _columnNr; } /** * @return Character offset within underlying stream, reader or writer, * if available; {@code -1} if not. */ public long getCharOffset() { return _totalChars; } /** * @return Byte offset within underlying stream, reader or writer, * if available; {@code -1} if not. */ public long getByteOffset() { return _totalBytes; } /** * Accessor for getting a textual description of source reference * (Object returned by {@link #getSourceRef()}), as included in * description returned by {@link #toString()}. *<p> * Note: implementation will simply call * {@link ContentReference#buildSourceDescription()}) *<p> * NOTE: not added as a "getter" to prevent it from getting serialized. * * @return Description of the source reference (see {@link #getSourceRef()} * * @since 2.9 */ public String sourceDescription() { // 04-Apr-2021, tatu: Construct lazily but retain if (_sourceDescription == null) { _sourceDescription = _contentReference.buildSourceDescription(); } return _sourceDescription; } /** * Accessor for a brief summary of Location offsets (line number, column position, * or byte offset, if available). * * @return Description of available relevant location offsets; combination of * line number and column position or byte offset * * @since 2.13 */ public String offsetDescription() { return appendOffsetDescription(new StringBuilder(40)).toString(); } // @since 2.13 public StringBuilder appendOffsetDescription(StringBuilder sb) { // 04-Apr-2021, tatu: [core#694] For binary content, we have no line // number or column position indicators; try using what we do have // (if anything) if (_contentReference.hasTextualContent()) { sb.append("line: "); // should be 1-based, but consider -1 to be canonical "got none" if (_lineNr >= 0) { sb.append(_lineNr); } else { sb.append("UNKNOWN"); } sb.append(", column: "); if (_columnNr >= 0) { // same here sb.append(_columnNr); } else { sb.append("UNKNOWN"); } } else { // 04-Apr-2021, tatu: Ideally byte formats would not need line/column // info, but for backwards-compatibility purposes (Jackson 2.x), // will leave logic here if (_lineNr > 0) { // yes, require 1-based in case of allegedly binary content sb.append("line: ").append(_lineNr); if (_columnNr > 0) { sb.append(", column: "); sb.append(_columnNr); } } else { sb.append("byte offset: #"); // For binary formats, total bytes should be the canonical offset // for token/current location if (_totalBytes >= 0) { sb.append(_totalBytes); } else { sb.append("UNKNOWN"); } } } return sb; } /* /********************************************************************** /* Standard method overrides /********************************************************************** */ @Override public int hashCode() { int hash = (_contentReference == null) ? 1 : 2; hash ^= _lineNr; hash += _columnNr; hash ^= (int) _totalChars; hash += (int) _totalBytes; return hash; } @Override public boolean equals(Object other) { if (other == this) return true; if (other == null) return false; if (!(other instanceof JsonLocation)) return false; JsonLocation otherLoc = (JsonLocation) other; if (_contentReference == null) { if (otherLoc._contentReference != null) return false; } else if (!_contentReference.equals(otherLoc._contentReference)) { return false; } return (_lineNr == otherLoc._lineNr) && (_columnNr == otherLoc._columnNr) && (_totalChars == otherLoc._totalChars) && (_totalBytes == otherLoc._totalBytes) ; } @Override public String toString() { final String srcDesc = sourceDescription(); StringBuilder sb = new StringBuilder(40 + srcDesc.length()) .append("[Source: ") .append(srcDesc) .append("; "); return appendOffsetDescription(sb) .append(']') .toString(); } }
⏎ com/fasterxml/jackson/core/JsonLocation.java
Or download all of them as a single archive file:
File name: jackson-core-2.14.0-sources.jar File size: 497693 bytes Release date: 2022-11-05 Download
⇒ Download and Install Jackson Binary Package
2016-02-03, 38987👍, 1💬
Popular Posts:
How to download and install JDK (Java Development Kit) 1.3? If you want to write Java applications, ...
JDK 11 jdk.internal.vm.compiler .jmodis the JMOD file for JDK 11 Internal VM Compiler module. JDK 11...
The JMX technology provides the tools for building distributed, Web-based, modular and dynamic solut...
JDK 11 java.compiler.jmod is the JMOD file for JDK 11 Compiler module. JDK 11 Compiler module compil...
The JMX technology provides the tools for building distributed, Web-based, modular and dynamic solut...