001/*
002 *                    BioJava development code
003 *
004 * This code may be freely distributed and modified under the
005 * terms of the GNU Lesser General Public Licence.  This should
006 * be distributed with the code.  If you do not have a copy,
007 * see:
008 *
009 *      http://www.gnu.org/copyleft/lesser.html
010 *
011 * Copyright for this code is held jointly by the individual
012 * authors.  These should be listed in @author doc comments.
013 *
014 * For more information on the BioJava project and its aims,
015 * or to join the biojava-l mailing list, visit the home page
016 * at:
017 *
018 *      http://www.biojava.org/
019 *
020 */
021
022package org.biojava.bio.program.tagvalue;
023
024/**
025 * Communication interface between Parser and a TagValueListener that allows
026 * listeners to request that a parser/listener pair be pushed onto the stack to
027 * handle the current tag.
028 *
029 * @author Mathew Pocock
030 * @since 1.2
031 */
032public interface TagValueContext {
033  /**
034   * <p>
035   * Push a parser and listener pair onto the parser stack.
036   * </p>
037   *
038   * <p>
039   * This will result in the parser using subParser to process all values of the
040   * current tag.
041   * </p>
042   */
043  void pushParser(TagValueParser subParser, TagValueListener subListener);
044}