package org.sef4j.core.helpers.export;
import java.util.Collection;
import java.util.Map;
/**
* callback to give to ExportFragmentsProvider(s) to ask then for fragments
*
* @param <T>
*/
public interface ExportFragmentsAdder<T> {
/**
* add a fragment with an associated natural id...
* when failing to export, new fragment values with same key will override previous value
*
* @param key
* @param fragment
*/
public void putIdentifiableFragment(ExportFragmentsProvider<T> provider, Object key, T fragment, int priority);
/**
* add a fragment with no associated natural id (not a metric?!)
* when failing to export ... this kind of fragment will be lost
*
* @param fragment
*/
public void addNonIdentifiableFragment(ExportFragmentsProvider<T> provider, T fragment, int priority);
/** idem putFragmentValue(), for multiple elements */
public void putAllIdentifiableFragments(ExportFragmentsProvider<T> provider, Map<Object,T> other, int priority);
/** idem addNonIdentifiableFragment(), for multiple elements */
public void addAllNonIdentifiableFragments(ExportFragmentsProvider<T> provider, Collection<T> other, int priority);
/** add either identifiable or nonIdentifiable fragment */
public void addEntry(ExportFragment<T> entry);
/** idem addEntry(), for multiple elements */
public void addAllEntries(Collection<ExportFragment<T>> entries);
}