001/* Copyright (C) 2013 TU Dortmund 002 * This file is part of AutomataLib, http://www.automatalib.net/. 003 * 004 * AutomataLib is free software; you can redistribute it and/or 005 * modify it under the terms of the GNU Lesser General Public 006 * License version 3.0 as published by the Free Software Foundation. 007 * 008 * AutomataLib is distributed in the hope that it will be useful, 009 * but WITHOUT ANY WARRANTY; without even the implied warranty of 010 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 011 * Lesser General Public License for more details. 012 * 013 * You should have received a copy of the GNU Lesser General Public 014 * License along with AutomataLib; if not, see 015 * http://www.gnu.de/documents/lgpl.en.html. 016 */ 017package net.automatalib.automata.fsa.abstractimpl; 018 019import java.util.Collection; 020 021import net.automatalib.automata.abstractimpl.AbstractMutableAutomaton; 022import net.automatalib.automata.dot.DOTPlottableAutomaton; 023import net.automatalib.automata.fsa.MutableNFA; 024 025 026public abstract class AbstractMutableNFA<S, I> extends 027 AbstractMutableAutomaton<S, I, S, Boolean, Void> implements 028 MutableNFA<S, I>, DOTPlottableAutomaton<S, I, S> { 029 030 @Override 031 public boolean isAccepting(Collection<? extends S> states) { 032 return AbstractNFA.isAccepting(this, states); 033 } 034 035 @Override 036 public S getSuccessor(S transition) { 037 return AbstractNFA.getSuccessor(this, transition); 038 } 039 040 041 @Override 042 public boolean accepts(Iterable<I> input) { 043 return AbstractNFA.accepts(this, input); 044 } 045 046 047 @Override 048 public void setStateProperty(S state, Boolean property) { 049 AbstractMutableFSA.setStateProperty(this, state, property); 050 } 051 052 @Override 053 public void setTransitionProperty(S transition, Void property) { 054 AbstractMutableFSA.setTransitionProperty(this, transition, property); 055 } 056 057 058 059 @Override 060 public S createTransition(S successor, Void properties) { 061 return AbstractMutableFSA.createTransition(this, successor, properties); 062 } 063 064 065 @Override 066 public S copyTransition(S trans, S succ) { 067 return AbstractMutableFSA.copyTransition(this, trans, succ); 068 } 069 070 @Override 071 public void flipAcceptance() { 072 AbstractMutableFSA.flipAcceptance(this); 073 } 074 075 076 077}