All Known Subinterfaces:
IndexableRepeater, ModelAwareRepeater, ModifiableIndexableRepeater, ModifiableModelAwareRepeater, ModifiableRepeater
All Known Implementing Classes:
DefaultModelAwareRepeater, DefaultModifiableModelAwareRepeater

public interface Repeater
Interface for repeaters Here is the format of generated SAX events for a given data in a repeater: <entry name="<entry position>"> <sax events for the given data in the current entry> <\entry> ... Here is the format of JSON object for a given data in a repeater: { "entryCount" : <size>, "entries" : [ { "position" : <entry position>, "value" : <value of data at given path in current entry> }, ... ] }
  • Method Details

    • getEntries

      Retrieves the repeater entries, sorted by position
      Returns:
      the repeater entries
    • getEntry

      RepeaterEntry getEntry(int position)
      Retrieves the repeater entry at the given position. The position starts at index 1. The position can be an integer between 1 and the repeater size to get an entry from the beginning Or the position can an integer between 0 and - the repeater size to get an entry from the end (0 means at the end, -1 means before the last one and so on)
      Parameters:
      position - the position of the entry to retrieve
      Returns:
      the repeater entry, null if there is no entry at this position
    • getSize

      int getSize()
      Retrieves the size of the repeater
      Returns:
      the size of the repeater
    • hasEntry

      boolean hasEntry(int position)
      Determines if the repeater has an entry at the given position. The position starts at index 1. The position can be an integer between 1 and the repeater size to get an entry from the beginning Or the position can an integer between 0 and - the repeater size to get an entry from the end (0 means at the end, -1 means before the last one and so on)
      Parameters:
      position - the position
      Returns:
      true if the repeater has an entry at the given position, false otherwise
    • copyTo

      Copies the current Repeater to the given ModifiableRepeater.
      Parameters:
      repeater - The destination repeater. Can not be null.
      Throws:
      UndefinedItemPathException - if one of the copied data is not defined by the model of the destination ModifiableModelAwareRepeater
      BadItemTypeException - if the type defined by the model of the destination ModifiableModelAwareRepeater doesn't match the copied value
    • copyTo

      Copies the current Repeater to the given ModifiableRepeater.
      Parameters:
      repeater - The destination repeater. Can not be null.
      context - The context of the data to copy
      Throws:
      UndefinedItemPathException - if one of the copied data is not defined by the model of the destination ModifiableModelAwareRepeater
      BadItemTypeException - if the type defined by the model of the destination ModifiableModelAwareRepeater doesn't match the copied value
    • dataToSAX

      default void dataToSAX(ContentHandler contentHandler, String dataPath) throws SAXException, IOException
      Generates SAX events for the data at the given data path in the current DataHolder Do not generate any event if there is no values at the given path
      Parameters:
      contentHandler - the ContentHandler that will receive the SAX events
      dataPath - the path of the data to SAX
      Throws:
      SAXException - if an error occurs during the SAX events generation
      IOException - if an error occurs while reading a value using the I/O API
    • dataToSAX

      void dataToSAX(ContentHandler contentHandler, String dataPath, DataContext context) throws SAXException, IOException
      Generates SAX events for the data at the given data path in the current DataHolder Do not generate any event if there is no values at the given path
      Parameters:
      contentHandler - the ContentHandler that will receive the SAX events
      dataPath - the path of the data to SAX
      context - The context of the data to SAX
      Throws:
      SAXException - if an error occurs during the SAX events generation
      IOException - if an error occurs while reading a value using the I/O API
    • dataToJSON

      default Map<String,Object> dataToJSON(String dataPath) throws IOException
      Convert the data at the given path into a JSON object
      Parameters:
      dataPath - the path of the data to convert
      Returns:
      The value as JSON
      Throws:
      IOException - if an error occurs while reading a value using the I/O API
    • dataToJSON

      Map<String,Object> dataToJSON(String dataPath, DataContext context) throws IOException
      Convert the data at the given path into a JSON object
      Parameters:
      dataPath - the path of the data to convert
      context - The context of the data to convert
      Returns:
      The value as JSON
      Throws:
      IOException - if an error occurs while reading a value using the I/O API
    • hasToMoveEntries

      boolean hasToMoveEntries(Map<Integer,Integer> positionsMapping, int targetSize)
      Check if has to be moved according to the given position mapping. The given position mapping's key is the previous position and the value is the new one The existent entries with no corresponding entry in the position mapping should be removed the given size is taken into account to create new empty entries if needed
      Parameters:
      positionsMapping - the position mapping
      targetSize - the target size of the repeater
      Returns:
      true if some entries have moved, false otherwise
    • getRepositoryData

      Retrieves the repository data used by this Repeater
      Returns:
      the repository data used by this Repeater
    • getParentDataHolder

      Retrieves the parent of the current Repeater
      Returns:
      the parent of the current Repeater
    • getRootDataHolder

      Retrieves the root DataHolder of the current repeater
      Returns:
      the root DataHolder