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 Data Binding module allows you to converts JSON to and from POJO (Plain Old Java Object) using property accessor or using annotations.
  • Jackson Databind Source Code files are provided in the source packge (jackson-databind-2.12.4-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/type/PlaceholderForType.java

    package com.fasterxml.jackson.databind.type;
    
    import com.fasterxml.jackson.databind.JavaType;
    
    /**
     * Helper type used when introspecting bindings for already resolved types,
     * needed for specialization.
     *
     * @since 2.8.11
     */
    public class PlaceholderForType extends TypeBase
    {
        private static final long serialVersionUID = 1L;
    
        protected final int _ordinal;
    
        /**
         * Type assigned during wildcard resolution (which follows type
         * structure resolution)
         */
        protected JavaType _actualType;
        
        public PlaceholderForType(int ordinal)
        {
            super(Object.class, TypeBindings.emptyBindings(),
                    TypeFactory.unknownType(), null, 1, // super-class, super-interfaces, hashCode
                    null, null, false); // value/type handler, as-static
            _ordinal = ordinal;
        }
    
        public JavaType actualType() { return _actualType; }
        public void actualType(JavaType t) { _actualType = t; }
    
        // Override to get better diagnostics
        @Override
        protected String buildCanonicalName() {
            return toString();
        }
    
        @Override
        public StringBuilder getGenericSignature(StringBuilder sb) {
            return getErasedSignature(sb);
        }
    
        @Override
        public StringBuilder getErasedSignature(StringBuilder sb) {
            sb.append('$').append(_ordinal+1);
            return sb;
        }
    
        @Override
        public JavaType withTypeHandler(Object h) {
            return _unsupported();
        }
    
        @Override
        public JavaType withContentTypeHandler(Object h) {
            return _unsupported();
        }
    
        @Override
        public JavaType withValueHandler(Object h) {
            return _unsupported();
        }
    
        @Override
        public JavaType withContentValueHandler(Object h) {
            return _unsupported();
        }
    
        @Override
        public JavaType withContentType(JavaType contentType) {
            return _unsupported();
        }
    
        @Override
        public JavaType withStaticTyping() {
            return _unsupported();
        }
    
        @Override
        public JavaType refine(Class<?> rawType, TypeBindings bindings, JavaType superClass, JavaType[] superInterfaces) {
            return _unsupported();
        }
    
        @Override
        @Deprecated // since 2.7
        protected JavaType _narrow(Class<?> subclass) {
            return _unsupported();
        }
    
        @Override
        public boolean isContainerType() {
            return false;
        }
    
        @Override
        public String toString() {
            return getErasedSignature(new StringBuilder()).toString();
        }
    
        @Override
        public boolean equals(Object o) {
            return (o == this);
        }
    
        private <T> T _unsupported() {
            throw new UnsupportedOperationException("Operation should not be attempted on "+getClass().getName());
        }
    }
    

    com/fasterxml/jackson/databind/type/PlaceholderForType.java

     

    ⇒ Jackson Annotations Source Code

    ⇐ Download and Install Jackson Binary Package

    ⇑ Downloading and Reviewing jackson-*.jar

    ⇑⇑ Jackson - Java JSON library

    2022-03-29, 32268👍, 0💬