Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (102)
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 (322)
Collections:
Other Resources:
Jackson Data Binding Source Code
Jackson is "the Java JSON library" or "the best JSON parser for Java". Or simply as "JSON for Java".
Jackson Databind Source Code files are provided in the source packge (jackson-databind-2.14.0-sources.jar). You can download it at Jackson Maven Website.
You can also browse Jackson Databind Source Code below:
✍: FYIcenter.com
⏎ com/fasterxml/jackson/databind/introspect/CollectorBase.java
package com.fasterxml.jackson.databind.introspect;
import java.lang.annotation.Annotation;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import com.fasterxml.jackson.databind.AnnotationIntrospector;
import com.fasterxml.jackson.databind.util.ClassUtil;
// @since 2.9
class CollectorBase
{
protected final static AnnotationMap[] NO_ANNOTATION_MAPS = new AnnotationMap[0];
protected final static Annotation[] NO_ANNOTATIONS = new Annotation[0];
protected final AnnotationIntrospector _intr;
protected CollectorBase(AnnotationIntrospector intr) {
_intr = intr;
}
// // // Annotation overrides ("mix over")
protected final AnnotationCollector collectAnnotations(Annotation[] anns) {
AnnotationCollector c = AnnotationCollector.emptyCollector();
for (int i = 0, end = anns.length; i < end; ++i) {
Annotation ann = anns[i];
c = c.addOrOverride(ann);
if (_intr.isAnnotationBundle(ann)) {
c = collectFromBundle(c, ann);
}
}
return c;
}
protected final AnnotationCollector collectAnnotations(AnnotationCollector c, Annotation[] anns) {
for (int i = 0, end = anns.length; i < end; ++i) {
Annotation ann = anns[i];
c = c.addOrOverride(ann);
if (_intr.isAnnotationBundle(ann)) {
c = collectFromBundle(c, ann);
}
}
return c;
}
protected final AnnotationCollector collectFromBundle(AnnotationCollector c, Annotation bundle) {
Annotation[] anns = ClassUtil.findClassAnnotations(bundle.annotationType());
for (int i = 0, end = anns.length; i < end; ++i) {
Annotation ann = anns[i];
// minor optimization: by-pass 2 common JDK meta-annotations
if (_ignorableAnnotation(ann)) {
continue;
}
if (_intr.isAnnotationBundle(ann)) {
// 11-Apr-2017, tatu: Also must guard against recursive definitions...
if (!c.isPresent(ann)) {
c = c.addOrOverride(ann);
c = collectFromBundle(c, ann);
}
} else {
c = c.addOrOverride(ann);
}
}
return c;
}
// // // Defaulting ("mix under")
// Variant that only adds annotations that are missing
protected final AnnotationCollector collectDefaultAnnotations(AnnotationCollector c,
Annotation[] anns) {
for (int i = 0, end = anns.length; i < end; ++i) {
Annotation ann = anns[i];
if (!c.isPresent(ann)) {
c = c.addOrOverride(ann);
if (_intr.isAnnotationBundle(ann)) {
c = collectDefaultFromBundle(c, ann);
}
}
}
return c;
}
protected final AnnotationCollector collectDefaultFromBundle(AnnotationCollector c,
Annotation bundle) {
Annotation[] anns = ClassUtil.findClassAnnotations(bundle.annotationType());
for (int i = 0, end = anns.length; i < end; ++i) {
Annotation ann = anns[i];
// minor optimization: by-pass 2 common JDK meta-annotations
if (_ignorableAnnotation(ann)) {
continue;
}
// also only defaulting, not overrides:
if (!c.isPresent(ann)) {
c = c.addOrOverride(ann);
if (_intr.isAnnotationBundle(ann)) {
c = collectFromBundle(c, ann);
}
}
}
return c;
}
protected final static boolean _ignorableAnnotation(Annotation a) {
return (a instanceof Target) || (a instanceof Retention);
}
static AnnotationMap _emptyAnnotationMap() {
return new AnnotationMap();
}
static AnnotationMap[] _emptyAnnotationMaps(int count) {
if (count == 0) {
return NO_ANNOTATION_MAPS;
}
AnnotationMap[] maps = new AnnotationMap[count];
for (int i = 0; i < count; ++i) {
maps[i] = _emptyAnnotationMap();
}
return maps;
}
}
⏎ com/fasterxml/jackson/databind/introspect/CollectorBase.java
Or download all of them as a single archive file:
File name: jackson-databind-2.14.0-sources.jar File size: 1187952 bytes Release date: 2022-11-05 Download
⇒ Jackson Annotations Source Code
⇐ Download and Install Jackson Binary Package
2022-03-29, ≈282🔥, 0💬
Popular Posts:
JDK 17 jdk.crypto.cryptoki.jmod is the JMOD file for JDK 17 Crypto Cryptoki module. JDK 17 Crypto KI...
Jackson is "the Java JSON library" or "the best JSON parser for Java". Or simply as "JSON for Java"....
JDK 17 jdk.compiler.jmod is the JMOD file for JDK 17 Compiler tool, which can be invoked by the "jav...
commons-net-1.4.1.jar is the JAR file for Apache Commons Net 1.4.1, which implements the client side...
Java Architecture for XML Binding (JAXB) is a Java API that allows Java developers to map Java class...