//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
// PLEASE DO NOT EDIT WITHOUT THE EXPLICIT CONSENT OF THE AUTHOR! \\
//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\

package hlt.language.syntax;

import java.utils.ArrayList;
import java.utils.StringBuilder;

/**
 * This class defines the type of information stored for the purpose of
 * XML serialization of the AST.
 *
 * @see         GenericParser
 *
 * @version     Last modified on Fri Oct 12 01:54:45 2012 by hak
 * @author      <a href="mailto:hak@acm.org">Hassan A&iuml;t-Kaci</a>
 * @copyright   &copy; <a href="http://www.hassan-ait-kaci.net/">by the author</a>
 */

public class XmlInfo
{
  private String _tag;

  private ArrayList _elements;

  public XmlInfo (String tag)
    {
      _tag = tag;
    }

  public XmlInfo (String tag, ArrayList elements)
    {
      _tag = tag;
      _elements = elements;
    }

  public final String tag ()
    {
      return _tag;
    }

  public final void SetTag (String tag)
    {
      _tag = tag;
    }

  public final String openTag ()
    {
      return "<"+_tag+">";
    }

  public final String closeTag ()
    {
      return "</"+_tag+">";
    }

  public final ArrayList elements ()
    {
      return _elements;
    }

  public final void setElements (ArrayList elements)
    {
      _elements = elements;
    }

  public String toString ()
    {
      return openTag()+_elementsList()+closeTag();      
    }

  private final String _elementList ()
    {
      StringBuilder buff = new StringBuilder();
      for (int i=0; i<_elements.size(); i++)
	buff.append("[").append(_elements.get(i)).append("]");
      return buff.toString();
    }
}
