# Class ContentModel

java.lang.Object
javax.swing.text.html.parser.ContentModel

All Implemented Interfaces:
  `Serializable`

public final class ContentModel extends Object implements Serializable
A representation of a content model. A content model is basically a restricted BNF expression. It is restricted in the sense that it must be deterministic. This means that you don't have to represent it as a finite state automaton.

See Annex H on page 556 of the SGML handbook for more information.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `Object`
  `content`
  The content.
  `ContentModel`
  `next`
  The next content model (in a ',', '|' or '&' expression).
  `int`
  `type`
  Type.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ContentModel()`
  Creates `ContentModel`
  `ContentModel(int type, Object content, ContentModel next)`
  Create a content model of a particular type.
  `ContentModel(int type, ContentModel content)`
  Create a content model of a particular type.
  `ContentModel(Element content)`
  Create a content model for an element.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `empty()`
  Return true if the content model could match an empty input stream.
  `Element`
  `first()`
  Return the element that must be next.
  `boolean`
  `first(Object token)`
  Return true if the token could potentially be the first token in the input stream.
  `void`
  `getElements(Vector<Element> elemVec)`
  Update elemVec with the list of elements that are part of the this contentModel.
  `String`
  `toString()`
  Convert to a string.

  ### Methods declared in class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected Object`
  `clone()`
  Creates and returns a copy of this object.
  `boolean`
  `equals(Object obj)`
  Indicates whether some other object is "equal to" this one.
  `protected void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization is deprecated and subject to removal in a future release.
  `final Class<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `int`
  `hashCode()`
  Returns a hash code value for this object.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `final void`
  `wait()`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
  `final void`
  `wait(long timeoutMillis)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  `final void`
  `wait(long timeoutMillis, int nanos)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

- ## Field Details

  - ### type

    public int type
    Type. Either '*', '?', '+', ',', '|', '&'.

  - ### content

    public Object content
    The content. Either an Element or a ContentModel.

  - ### next

    public ContentModel next
    The next content model (in a ',', '|' or '&' expression).

- ## Constructor Details

  - ### ContentModel

    public ContentModel()
    Creates `ContentModel`

  - ### ContentModel

    public ContentModel(Element content)
    Create a content model for an element.
    Parameters:
      `content` - the element

  - ### ContentModel

    public ContentModel(int type, ContentModel content)
    Create a content model of a particular type.
    Parameters:
      `type` - the type
      `content` - the content

  - ### ContentModel

    public ContentModel(int type, Object content, ContentModel next)
    Create a content model of a particular type.
    Parameters:
      `type` - the type
      `content` - the content
      `next` - the next content model

- ## Method Details

  - ### empty

    public boolean empty()
    Return true if the content model could match an empty input stream.
    Returns:
      `true` if the content model could match an empty input stream

  - ### getElements

    public void getElements(Vector<Element> elemVec)
    Update elemVec with the list of elements that are part of the this contentModel.
    Parameters:
      `elemVec` - the list of elements

  - ### first

    public boolean first(Object token)
    Return true if the token could potentially be the first token in the input stream.
    Parameters:
      `token` - the token
    Returns:
      `true` if the token could potentially be the first token in the input stream

  - ### first

    public Element first()
    Return the element that must be next.
    Returns:
      the element that must be next

  - ### toString

    public String toString()
    Convert to a string.
    Overrides:
      `toString` in class `Object`
    Returns:
      the string representation of this `ContentModel`