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.dot; 018 019import java.util.Map; 020 021import net.automatalib.automata.graphs.TransitionEdge; 022import net.automatalib.automata.transout.TransitionOutputAutomaton; 023 024 025public class DOTHelperMealy<S, I, T, O> extends 026 DefaultDOTHelperAutomaton<S, I, T, TransitionOutputAutomaton<S, I, T, O>> { 027 028 public DOTHelperMealy(TransitionOutputAutomaton<S, I, T, O> automaton) { 029 super(automaton); 030 } 031 032 /* 033 * (non-Javadoc) 034 * @see net.automatalib.automata.dot.DefaultDOTHelperAutomaton#getEdgeProperties(net.automatalib.commons.util.Pair, java.util.Map) 035 */ 036 @Override 037 public boolean getEdgeProperties(S src, TransitionEdge<I, T> edge, S tgt, Map<String,String> properties) { 038 if(!super.getEdgeProperties(src, edge, tgt, properties)) 039 return false; 040 String label = String.valueOf(edge.getInput()) + " / "; 041 O output = automaton.getTransitionOutput(edge.getTransition()); 042 if(output != null) 043 label += String.valueOf(output); 044 properties.put("label", label); 045 return true; 046 } 047 048 049 050}