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

package ilog.language.design.backend;

/**
 * @version     Last modified on Sat Nov 30 22:05:45 2002 by hak
 * @author      <a href="mailto:hak@ilog.fr">Hassan A&iuml;t-Kaci</a>
 * @copyright   &copy; 2002 <a href="http://www.ilog.fr/">ILOG, S.A.</a>
 */

import ilog.language.design.types.Type;

/**
 * This class defines methods that format runtime values according to their types
 * to enable them to be legibly displayed.
 */
public interface DisplayFormManager
{
  public String displayVoid ();

  public String typedDisplayForm (int n, Type type);
  public String typedDisplayForm (double x);
  public String typedDisplayForm (Object o, Type type);

  // Quoted display form : "a\tb" is displayed as: "a\tb"

  public String quotedDisplayForm (int n, Type type);
  public String quotedDisplayForm (double x);
  public String quotedDisplayForm (Object o, Type type);

  // Unquoted display form : "a\tb" is displayed as: a        b

  public String unquotedDisplayForm (int n, Type type);
  public String unquotedDisplayForm (double x);
  public String unquotedDisplayForm (Object o, Type type);

  public DisplayFormManager clearTags ();
}
