001package io.ebean;
002
003import java.util.Set;
004
005/**
006 * Options used to control a merge. Use MergeOptionsBuilder to create an instance.
007 * <p>
008 * Instances of MergeOptions are thread safe and safe to share across threads.
009 */
010public interface MergeOptions {
011
012  /**
013   * Returns true if Id values are supplied by the client.
014   * <p>
015   * This would be the case when for example a mobile creates data in it's own local database
016   * and then sync's. In this case often the id values are UUID.
017   */
018  boolean isClientGeneratedIds();
019
020  /**
021   * Return true if delete permanent should be used and false for 'normal' delete that allows soft deletes.
022   */
023  boolean isDeletePermanent();
024
025  /**
026   * Return the paths included in the merge.
027   */
028  Set<String> paths();
029}