/** * Method deserializers can call to inform configured {@link DeserializationProblemHandler}s * of an unrecognized property. * * @since 1.5 */ @Override public boolean handleUnknownProperty(JsonParser jp, JsonDeserializer<?> deser, Object instanceOrClass, String propName) throws IOException, JsonProcessingException { LinkedNode<DeserializationProblemHandler> h = _config.getProblemHandlers(); if (h != null) { /* 04-Jan-2009, tatu: Ugh. Need to mess with currently active parser * since parser is not explicitly passed to handler... that was a mistake */ JsonParser oldParser = _parser; _parser = jp; try { while (h != null) { // Can bail out if it's handled if (h.value().handleUnknownProperty(this, deser, instanceOrClass, propName)) { return true; } h = h.next(); } } finally { _parser = oldParser; } } return false; }
public boolean handleUnknownProperty(JsonParser paramJsonParser, JsonDeserializer<?> paramJsonDeserializer, Object paramObject, String paramString) throws IOException, JsonProcessingException { Object localObject1 = this._config.getProblemHandlers(); JsonParser localJsonParser; if (localObject1 != null) { localJsonParser = this._parser; this._parser = paramJsonParser; } while (true) { if (localObject1 != null); try { boolean bool = ((DeserializationProblemHandler)((LinkedNode)localObject1).value()).handleUnknownProperty(this, paramJsonDeserializer, paramObject, paramString); if (bool) return true; LinkedNode localLinkedNode = ((LinkedNode)localObject1).next(); localObject1 = localLinkedNode; continue; return false; } finally { this._parser = localJsonParser; } } throw localObject2; }
/** * Method that can be used to add a handler that can (try to) * resolve non-fatal deserialization problems. */ public void addHandler(DeserializationProblemHandler h) { /* Sanity check: let's prevent adding same handler multiple * times */ if (!LinkedNode.contains(_problemHandlers, h)) { _problemHandlers = new LinkedNode<DeserializationProblemHandler>(h, _problemHandlers); } }
public boolean handleUnknownProperty(JsonParser paramJsonParser, JsonDeserializer<?> paramJsonDeserializer, Object paramObject, String paramString) { LinkedNode localLinkedNode1 = this._config.getProblemHandlers(); JsonParser localJsonParser; Object localObject1; if (localLinkedNode1 != null) { localJsonParser = this._parser; this._parser = paramJsonParser; localObject1 = localLinkedNode1; } while (true) { if (localObject1 != null); try { boolean bool = ((DeserializationProblemHandler)((LinkedNode)localObject1).value()).handleUnknownProperty(this, paramJsonDeserializer, paramObject, paramString); if (bool) return true; LinkedNode localLinkedNode2 = ((LinkedNode)localObject1).next(); localObject1 = localLinkedNode2; continue; return false; } finally { this._parser = localJsonParser; } } }
public void addHandler(DeserializationProblemHandler paramDeserializationProblemHandler) { if (!LinkedNode.contains(this._problemHandlers, paramDeserializationProblemHandler)) this._problemHandlers = new LinkedNode(paramDeserializationProblemHandler, this._problemHandlers); }
public LinkedNode<DeserializationProblemHandler> getProblemHandlers() { return this._problemHandlers; }
/** * Method for getting head of the problem handler chain. May be null, * if no handlers have been added. */ public LinkedNode<DeserializationProblemHandler> getProblemHandlers() { return _problemHandlers; }