001package io.ebean.text.json;
002
003
004import java.util.Map;
005
006/**
007 * Provides for custom handling of json content as it is read.
008 * <p>
009 * This visit method is called after all the known properties of the bean have
010 * been processed. Any JSON elements that could not be mapped to known bean
011 * properties are available in the unmapped Map.
012 * </p>
013 *
014 * @param <T> The type of entity bean
015 */
016public interface JsonReadBeanVisitor<T> {
017
018  /**
019   * Visit the bean that has just been processed.
020   * <p>
021   * This provides a method of customising the bean and processing any custom
022   * JSON content.
023   * </p>
024   *
025   * @param bean     the bean being processed
026   * @param unmapped Map of any JSON elements that didn't map to known bean properties
027   */
028  void visit(T bean, Map<String, Object> unmapped);
029
030}