001package com.hammurapi.store.local;
002
003import java.util.Map;
004
005import com.hammurapi.extract.Extractor;
006import com.hammurapi.extract.Predicate;
007import com.hammurapi.store.Store;
008
009/**
010 * Handle factory allows to configure LocalStore store to use custom handles which 
011 * carry additional information about store entries. 
012 * @author Pavel Vlasov
013 *
014 * @param <T>
015 * @param <PK>
016 * @param <H>
017 */
018public interface HandleFactory<T, PK, S extends Store<T,PK,S>, H extends LocalHandle<T,PK,S>> {
019        
020        H createHandle(
021                        S store,
022                        T obj,
023                        PK primaryKey,
024                        Map<S, Map<Extractor<T, ? super PK, S>, ? super PK>> cache,
025                        Predicate<T, S>[] validators,                     
026                        LocalHandle.HandleStrength handleStrength,
027                        boolean cacheExtracted);
028
029}