001package Torello.Browser;
002
003import Torello.Java.JSON.BaseType;
004
005/**
006 * All events fired by the headless-browser extend this abstract class.
007 */
008public abstract class BrowserEvent extends BaseType
009    implements java.io.Serializable
010{
011    /** <EMBED CLASS=external-html DATA-FILE-ID=SVUID> */
012    protected static final long serialVersionUID = 1;
013
014    /**
015     * It was decided by somebody other than I that there are to be two API's of the browser 
016     * Remote-Debug-Port interface.  The two API's were decided to be the {@code JavaScript}
017     * API, and the {@code Browser} API.  These two do not have a lot of distinction or meaning.
018     * 
019     * <BR /><BR />Each API has several categories of methods, and these are called 
020     * {@cod Domain's}.
021     */
022    public final String domain;
023
024    /**
025     * The event has a name, and this name happens to be the exact same name as the
026     * event-{@code class} itself.
027     */
028    public final String name;
029
030    /** This is the number of fields in this class.  It is like a reflection-field. */
031    public final int numFields;
032
033    /** Constructor for this {@code abstract-class} */
034    protected BrowserEvent(String domain, String name, int numFields)
035    {
036        this.domain     = domain;
037        this.name       = name;
038        this.numFields  = numFields;
039    }
040}