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}