001package Torello.Browser.JsonAST;
002
003import Torello.Browser.BrowserEvent;
004
005/**
006 * This {@code 'enum'} is used to identify of what kind of {@link TCE} instance {@code 'this'}
007 * is.  A {@link TCE} may represet a Chrome Dev-Tools Protocol {@link #Type}, {@link #Command} or
008 *  {@link #Event}.
009 * 
010 * <BR /><BR />An Enumerated Constant Design Pattern was chosen of building actual subclasses of 
011 * {@code TCE} since such a sub-class {@code "Type"} or {@code "Command"} would not have been
012 * able to add any methods or fields to the sub-class.  Instead, class {@code TCE} simply contains
013 * one of these three constants among its constant fields list to identify what kind of instance
014 * it belongs to.
015 */
016public enum WhichTCE
017{
018    /**
019     * This constant may be used to indicate that {@code 'this'} {@link TCE} instance represents a
020     * <B>'Type'</B>.  Type-{@code TCE's} are converted into Static Nested-Classes in this Java 
021     * implementation of the Chrome Dev-Tools Protocol.
022     */
023    Type,
024
025    /**
026     * This constant may be used to indicate that {@code 'this'} {@link TCE} instance represents a
027     * <B>'Command'</B>.  Command-{@code TCE's} are converted into methods in this Java
028     * implementation of the Chrome Dev-Tools Protocol.
029     */
030    Command,
031
032    /**
033     * This constant may be used to indicate that {@code 'this'} {@link TCE} instance represents a
034     * <B>'Type'</B>.  Type-{@code TCE's} are converted into Static Nested-Classes which inherit 
035     * the {@link BrowserEvent} interface in this Java implementation of the Chrome Dev-Tools
036     * Protocol.
037     */
038    Event;
039}