package im.actor.runtime; import im.actor.runtime.bser.BserCreator; import im.actor.runtime.bser.BserObject; import im.actor.runtime.mvvm.PlatformDisplayList; import im.actor.runtime.storage.ListEngine; import im.actor.runtime.storage.ListEngineItem; import im.actor.runtime.storage.ListStorage; public interface EnginesRuntime { /** * Creating of List Engine instance * * @param storage list storage * @param creator list creator * @param <T> type of object * @return the List Engine */ <T extends BserObject & ListEngineItem> ListEngine<T> createListEngine(ListStorage storage, BserCreator<T> creator); /** * Creating of Display List instance * * @param listEngine list engine * @param isSharedInstance is this list can be used by different lists * @param clazz entity simple class name * @param <T> type of object * @return the Display List */ <T extends BserObject & ListEngineItem> PlatformDisplayList<T> createDisplayList(ListEngine<T> listEngine, boolean isSharedInstance, String clazz); }