001package io.ebeanservice.docstore.api.mapping;
002
003/**
004 * Used to visit the properties in a document structure.
005 */
006public interface DocPropertyVisitor {
007
008  /**
009   * Begin visiting the document structure.
010   */
011  void visitBegin();
012
013  /**
014   * Visit a property.
015   */
016  void visitProperty(DocPropertyMapping property);
017
018  /**
019   * Start visiting a nested object.
020   */
021  void visitBeginObject(DocPropertyMapping property);
022
023  /**
024   * End visiting a nested object.
025   */
026  void visitEndObject(DocPropertyMapping property);
027
028  /**
029   * Start visiting a nested list.
030   */
031  void visitBeginList(DocPropertyMapping property);
032
033  /**
034   * End visiting a nested list.
035   */
036  void visitEndList(DocPropertyMapping property);
037
038  /**
039   * Finished visiting the document structure.
040   */
041  void visitEnd();
042
043}