@Override public Object createFromObjectWith(DeserializationContext ctxt, Object[] args) throws IOException { if (_withArgsCreator == null) { // sanity-check; caller should check return super.createFromObjectWith(ctxt, args); } try { return _withArgsCreator.call(args); } catch (Exception e) { // 19-Apr-2017, tatu: Let's not catch Errors, just Exceptions return ctxt.handleInstantiationProblem(_valueClass, args, rewrapCtorProblem(ctxt, e)); } }
@Override public Object createUsingDefault(DeserializationContext ctxt) throws IOException { if (_defaultCreator == null) { // sanity-check; caller should check return super.createUsingDefault(ctxt); } try { return _defaultCreator.call(); } catch (Exception e) { // 19-Apr-2017, tatu: Let's not catch Errors, just Exceptions return ctxt.handleInstantiationProblem(_valueClass, null, rewrapCtorProblem(ctxt, e)); } }
@Override public Object createFromLong(DeserializationContext ctxt, long value) throws IOException { if (_fromLongCreator == null) { return super.createFromLong(ctxt, value); } Object arg = Long.valueOf(value); try { return _fromLongCreator.call1(arg); } catch (Throwable t0) { return ctxt.handleInstantiationProblem(_fromLongCreator.getDeclaringClass(), arg, rewrapCtorProblem(ctxt, t0)); } }
@Override public Object createFromBoolean(DeserializationContext ctxt, boolean value) throws IOException { if (_fromBooleanCreator == null) { return super.createFromBoolean(ctxt, value); } final Boolean arg = Boolean.valueOf(value); try { return _fromBooleanCreator.call1(arg); } catch (Throwable t0) { return ctxt.handleInstantiationProblem(_fromBooleanCreator.getDeclaringClass(), arg, rewrapCtorProblem(ctxt, t0)); } }
@Override public Object createFromDouble(DeserializationContext ctxt, double value) throws IOException { if (_fromDoubleCreator == null) { return super.createFromDouble(ctxt, value); } Object arg = Double.valueOf(value); try { return _fromDoubleCreator.call1(arg); } catch (Throwable t0) { return ctxt.handleInstantiationProblem(_fromDoubleCreator.getDeclaringClass(), arg, rewrapCtorProblem(ctxt, t0)); } }
@Override public Object createFromInt(DeserializationContext ctxt, int value) throws IOException { // First: "native" int methods work best: if (_fromIntCreator != null) { Object arg = Integer.valueOf(value); try { return _fromIntCreator.call1(arg); } catch (Throwable t0) { return ctxt.handleInstantiationProblem(_fromIntCreator.getDeclaringClass(), arg, rewrapCtorProblem(ctxt, t0)); } } // but if not, can do widening conversion if (_fromLongCreator != null) { Object arg = Long.valueOf(value); try { return _fromLongCreator.call1(arg); } catch (Throwable t0) { return ctxt.handleInstantiationProblem(_fromLongCreator.getDeclaringClass(), arg, rewrapCtorProblem(ctxt, t0)); } } return super.createFromInt(ctxt, value); }
@Override public Object createFromString(DeserializationContext ctxt, String value) throws IOException { if (_fromStringCreator == null) { return _createFromStringFallbacks(ctxt, value); } try { return _fromStringCreator.call1(value); } catch (Throwable t) { return ctxt.handleInstantiationProblem(_fromStringCreator.getDeclaringClass(), value, rewrapCtorProblem(ctxt, t)); } }
throw rewrapCtorProblem(ctxt, t);
@Override public Object createFromObjectWith(DeserializationContext ctxt, Object[] args) throws IOException { if (_withArgsCreator == null) { // sanity-check; caller should check return super.createFromObjectWith(ctxt, args); } try { return _withArgsCreator.call(args); } catch (Exception e) { // 19-Apr-2017, tatu: Let's not catch Errors, just Exceptions return ctxt.handleInstantiationProblem(_valueClass, args, rewrapCtorProblem(ctxt, e)); } }
@Override public Object createUsingDefault(DeserializationContext ctxt) throws IOException { if (_defaultCreator == null) { // sanity-check; caller should check return super.createUsingDefault(ctxt); } try { return _defaultCreator.call(); } catch (Exception e) { // 19-Apr-2017, tatu: Let's not catch Errors, just Exceptions return ctxt.handleInstantiationProblem(_valueClass, null, rewrapCtorProblem(ctxt, e)); } }
@Override public Object createFromBoolean(DeserializationContext ctxt, boolean value) throws IOException { if (_fromBooleanCreator == null) { return super.createFromBoolean(ctxt, value); } final Boolean arg = Boolean.valueOf(value); try { return _fromBooleanCreator.call1(arg); } catch (Throwable t0) { return ctxt.handleInstantiationProblem(_fromBooleanCreator.getDeclaringClass(), arg, rewrapCtorProblem(ctxt, t0)); } }
@Override public Object createFromLong(DeserializationContext ctxt, long value) throws IOException { if (_fromLongCreator == null) { return super.createFromLong(ctxt, value); } Object arg = Long.valueOf(value); try { return _fromLongCreator.call1(arg); } catch (Throwable t0) { return ctxt.handleInstantiationProblem(_fromLongCreator.getDeclaringClass(), arg, rewrapCtorProblem(ctxt, t0)); } }
@Override public Object createFromDouble(DeserializationContext ctxt, double value) throws IOException { if (_fromDoubleCreator == null) { return super.createFromDouble(ctxt, value); } Object arg = Double.valueOf(value); try { return _fromDoubleCreator.call1(arg); } catch (Throwable t0) { return ctxt.handleInstantiationProblem(_fromDoubleCreator.getDeclaringClass(), arg, rewrapCtorProblem(ctxt, t0)); } }
@Override public Object createFromLong(DeserializationContext ctxt, long value) throws IOException { if (_fromLongCreator == null) { return super.createFromLong(ctxt, value); } Object arg = Long.valueOf(value); try { return _fromLongCreator.call1(arg); } catch (Throwable t0) { return ctxt.handleInstantiationProblem(_fromLongCreator.getDeclaringClass(), arg, rewrapCtorProblem(ctxt, t0)); } }
@Override public Object createFromDouble(DeserializationContext ctxt, double value) throws IOException { if (_fromDoubleCreator == null) { return super.createFromDouble(ctxt, value); } Object arg = Double.valueOf(value); try { return _fromDoubleCreator.call1(arg); } catch (Throwable t0) { return ctxt.handleInstantiationProblem(_fromDoubleCreator.getDeclaringClass(), arg, rewrapCtorProblem(ctxt, t0)); } }
@Override public Object createFromBoolean(DeserializationContext ctxt, boolean value) throws IOException { if (_fromBooleanCreator == null) { return super.createFromBoolean(ctxt, value); } final Boolean arg = Boolean.valueOf(value); try { return _fromBooleanCreator.call1(arg); } catch (Throwable t0) { return ctxt.handleInstantiationProblem(_fromBooleanCreator.getDeclaringClass(), arg, rewrapCtorProblem(ctxt, t0)); } }
@Override public Object createFromString(DeserializationContext ctxt, String value) throws IOException { if (_fromStringCreator == null) { return _createFromStringFallbacks(ctxt, value); } try { return _fromStringCreator.call1(value); } catch (Throwable t) { return ctxt.handleInstantiationProblem(_fromStringCreator.getDeclaringClass(), value, rewrapCtorProblem(ctxt, t)); } }
@Override public Object createUsingDefault(DeserializationContext ctxt) throws IOException { if (_defaultCreator == null) { // sanity-check; caller should check return super.createUsingDefault(ctxt); } try { return _defaultCreator.call(); } catch (Throwable t) { return ctxt.handleInstantiationProblem(_defaultCreator.getDeclaringClass(), null, rewrapCtorProblem(ctxt, t)); } }
@Override public Object createFromObjectWith(DeserializationContext ctxt, Object[] args) throws IOException { if (_withArgsCreator == null) { // sanity-check; caller should check return super.createFromObjectWith(ctxt, args); } try { return _withArgsCreator.call(args); } catch (Throwable t) { return ctxt.handleInstantiationProblem(_withArgsCreator.getDeclaringClass(), args, rewrapCtorProblem(ctxt, t)); } }
@Override public Object createFromString(DeserializationContext ctxt, String value) throws IOException { if (_fromStringCreator == null) { return _createFromStringFallbacks(ctxt, value); } try { return _fromStringCreator.call1(value); } catch (Throwable t) { return ctxt.handleInstantiationProblem(_fromStringCreator.getDeclaringClass(), value, rewrapCtorProblem(ctxt, t)); } }