package de.unisiegen.gtitool.core.entities; import de.unisiegen.gtitool.core.storage.Modifyable; import de.unisiegen.gtitool.core.storage.Storable; /** * The {@link Production} entity. * * @author Christian Fehler * @version $Id$ */ public interface Production extends Entity < Production >, Storable, Modifyable { /** * Returns true if this {@link Production} contains this * {@link NonterminalSymbol}, else false. * * @param symbol The {@link NonterminalSymbol}. * @return true if this {@link Production} contains this * {@link NonterminalSymbol}, else false. */ public boolean contains ( NonterminalSymbol symbol ); /** * Returns true if this {@link Production} contains this * {@link TerminalSymbol}, else false. * * @param symbol The {@link TerminalSymbol}. * @return true if this {@link Production} contains this * {@link TerminalSymbol}, else false. */ public boolean contains ( TerminalSymbol symbol ); /** * Returns the {@link NonterminalSymbol} for this {@link Production} * * @return the {@link NonterminalSymbol} for this {@link Production} */ public NonterminalSymbol getNonterminalSymbol (); /** * Returns the {@link ProductionWord} of this {@link Production} * * @return the {@link ProductionWord} of this {@link Production} */ public ProductionWord getProductionWord (); /** * Returns true if this {@link Production} is a error {@link Production}, * otherwise false. * * @return True if this {@link Production} is a error {@link Production}, * otherwise false. */ public boolean isError (); /** * Returns true if this {@link Production} is a highlighted {@link Production} * , otherwise false. * * @return True if this {@link Production} is a highlighted {@link Production} * , otherwise false. */ public boolean isHighlighted (); /** * Sets the error value. * * @param error The error value to set. */ public void setError ( boolean error ); /** * Sets the highlighted value. * * @param highlighted The highlighted value to set. */ public void setHighlighted ( boolean highlighted ); /** * Set the {@link NonterminalSymbol} for this {@link Production}. * * @param nonterminalSymbol the {@link NonterminalSymbol}. */ public void setNonterminalSymbol ( NonterminalSymbol nonterminalSymbol ); /** * Set the {@link ProductionWord} for this {@link Production}. * * @param productionWord the {@link ProductionWord}. */ public void setProductionWord ( ProductionWord productionWord ); }