Class CreatorOptimizer


  • public class CreatorOptimizer
    extends java.lang.Object
    Helper class that tries to generate ValueInstantiator class that calls constructors and/or factory methods directly, instead of using Reflection.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.lang.invoke.MethodHandles.Lookup _lookup  
      protected com.fasterxml.jackson.databind.deser.std.StdValueInstantiator _originalInstantiator  
      protected java.lang.Class<?> _valueClass  
    • Constructor Summary

      Constructors 
      Constructor Description
      CreatorOptimizer​(java.lang.Class<?> valueClass, java.lang.invoke.MethodHandles.Lookup lookup, com.fasterxml.jackson.databind.deser.std.StdValueInstantiator orig)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      com.fasterxml.jackson.databind.deser.ValueInstantiator createOptimized()  
      private java.lang.invoke.MethodHandle directHandle​(java.lang.reflect.AnnotatedElement element)  
      static java.lang.Object invokeTrampoline​(java.lang.invoke.MethodHandle delegate, java.lang.Object[] args)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • _valueClass

        protected final java.lang.Class<?> _valueClass
      • _originalInstantiator

        protected final com.fasterxml.jackson.databind.deser.std.StdValueInstantiator _originalInstantiator
      • _lookup

        private final java.lang.invoke.MethodHandles.Lookup _lookup
    • Constructor Detail

      • CreatorOptimizer

        public CreatorOptimizer​(java.lang.Class<?> valueClass,
                                java.lang.invoke.MethodHandles.Lookup lookup,
                                com.fasterxml.jackson.databind.deser.std.StdValueInstantiator orig)
    • Method Detail

      • createOptimized

        public com.fasterxml.jackson.databind.deser.ValueInstantiator createOptimized()
      • directHandle

        private java.lang.invoke.MethodHandle directHandle​(java.lang.reflect.AnnotatedElement element)
      • invokeTrampoline

        public static java.lang.Object invokeTrampoline​(java.lang.invoke.MethodHandle delegate,
                                                        java.lang.Object[] args)
                                                 throws java.lang.Throwable
        Throws:
        java.lang.Throwable