001    package com.hammurapi.review;
002    
003    import com.hammurapi.util.Context;
004    
005    /**
006     * Language module creates a model from sources.
007     * @author Pavel Vlasov
008     * @param <S> Source type.
009     * @param <M> Model type.
010     */
011    public interface LanguageModule<S, M> {
012    
013            /**
014             * Loads source(s) to produce model.
015             * @param source Source(s)
016             * @param context Context.
017             * @return Model.
018             * @throws ReviewException
019             */
020            M load(S source, Context context) throws ReviewException;
021    }