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}