/*
* JFLAP - Formal Languages and Automata Package
*
*
* Susan H. Rodger
* Computer Science Department
* Duke University
* August 27, 2009
* Copyright (c) 2002-2009
* All rights reserved.
* JFLAP is open source software. Please see the LICENSE for terms.
*
*/
package gui.sim;
import automata.Configuration;
import automata.fsa.FSAConfiguration;
import automata.pda.PDAConfiguration;
import automata.turing.TMConfiguration;
/**
* This is a configuration icon factory. Given a configuration, it returns the
* appropriate icon.
*
* @author Thomas Finley
*/
public class ConfigurationIconFactory {
/**
* Returns an instance of an appropriate subclass of the configuration icon
* for this sort of configuration.
*
* @param configuration
* the configuration to return the icon for
* @return some instance of a subclass of ConfigurationIcon
,
* or null
if this factory is not set up to handle
* this sort of configuration
*/
public static ConfigurationIcon iconForConfiguration(
Configuration configuration) {
if (configuration instanceof FSAConfiguration)
return new FSAConfigurationIcon(configuration);
else if (configuration instanceof PDAConfiguration)
return new PDAConfigurationIcon(configuration);
else if (configuration instanceof TMConfiguration)
return new TMConfigurationIcon(configuration);
else if(configuration instanceof automata.mealy.MealyConfiguration)
return new MealyConfigurationIcon(configuration);
return null;
}
}