001package de.learnlib.cache;
002
003import net.automatalib.words.Alphabet;
004import net.automatalib.words.Word;
005import de.learnlib.api.MembershipOracle;
006import de.learnlib.api.SUL;
007import de.learnlib.cache.dfa.DFACacheOracle;
008import de.learnlib.cache.mealy.MealyCacheOracle;
009import de.learnlib.cache.sul.SULCache;
010
011public abstract class Caches {
012        
013        
014        public static <I> DFACacheOracle<I> createDFACache(Alphabet<I> alphabet, MembershipOracle<I,Boolean> mqOracle) {
015                return new DFACacheOracle<I>(alphabet, mqOracle);
016        }
017        
018        public static <I,O> MealyCacheOracle<I, O> createMealyCache(Alphabet<I> alphabet, MembershipOracle<I,Word<O>> mqOracle) {
019                return new MealyCacheOracle<>(alphabet, mqOracle);
020        }
021        
022        public static <I,O> SULCache<I,O> createSULCache(Alphabet<I> alphabet, SUL<I,O> sul) {
023                return new SULCache<>(alphabet, sul);
024        }
025
026        // prevent inheritance
027        private Caches() {
028        }
029
030}