Class CommentsBlock

java.lang.Object
All Implemented Interfaces:
X3DChildNode, X3DNode

public class CommentsBlock
extends X3DConcreteStatement
implements X3DChildNode
Utility class to enable adding one or more comment strings as a child node, treated as an X3D statement.

See Also:
X3D Scene Authoring Hints
  • Field Details

    • NAME

      protected static final java.lang.String NAME
      String constant NAME provides name of this element.
      See Also:
      Constant Field Values
    • COMPONENT

      public static final java.lang.String COMPONENT
      String constant COMPONENT defines X3D component for comments: Core.
      See Also:
      Constant Field Values
    • LEVEL

      public static final int LEVEL
      Integer constant LEVEL provides default X3D Core component level for comments: 1.
      See Also:
      Constant Field Values
  • Constructor Details

    • CommentsBlock

      public CommentsBlock()
      Constructor for CommentsBlock.
    • CommentsBlock

      public CommentsBlock​(java.lang.String newComment)
      Constructor for CommentsBlock to initialize with initial comment string. No need to include <!-- XML comment delimiters --> around new comments.
      Parameters:
      newComment - initial comment, with no comment delimiters needed
    • CommentsBlock

      public CommentsBlock​(java.lang.String[] newComments)
      Constructor for CommentsBlock to initialize with initial comments array. No need to include <!-- XML comment delimiters --> around new comments.
      Parameters:
      newComments - [] initial comments, with no comment delimiters needed
    • CommentsBlock

      public CommentsBlock​(java.util.ArrayList<java.lang.String> newCommentsList)
      Constructor for CommentsBlock to initialize with initial comments list. No need to include <!-- XML comment delimiters --> around new comments.
      Parameters:
      newCommentsList - initial comments, with no comment delimiters needed
  • Method Details

    • getElementName

      public final java.lang.String getElementName()
      Provides name of this element: CommentsBlock.
      Specified by:
      getElementName in class X3DConcreteElement
      Returns:
      name of this element
    • getComponent

      public final java.lang.String getComponent()
      Defines X3D component for comments: Core.
      Specified by:
      getComponent in class X3DConcreteElement
      Returns:
      X3D component for comments
    • getComponentLevel

      public final int getComponentLevel()
      Provides default X3D component level for comments: 1.
      Specified by:
      getComponentLevel in class X3DConcreteElement
      Returns:
      default X3D component level for comments
    • addComments

      public CommentsBlock addComments​(java.lang.String newComment)
      Add single comment to this CommentsBlock. No need to include <!-- XML comment delimiters --> around new comments.
      Specified by:
      addComments in class X3DConcreteElement
      Parameters:
      newComment - initial value, with no comment delimiters needed
      Returns:
      CommentsBlock - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
    • addComments

      public CommentsBlock addComments​(java.lang.String[] newComments)
      Add comments as String[] array to this CommentsBlock. No need to include <!-- XML comment delimiters --> around new comments.
      Specified by:
      addComments in class X3DConcreteElement
      Parameters:
      newComments - array of comments, with no comment delimiters needed
      Returns:
      CommentsBlock - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
    • addComments

      public CommentsBlock addComments​(java.util.ArrayList<java.lang.String> newCommentsList)
      Add comments array as ArrayList of String values to this CommentsBlock. No need to include <!-- XML comment delimiters --> around new comments.
      Parameters:
      newCommentsList - list of comments, with no comment delimiters needed
      Returns:
      CommentsBlock - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
    • addComments

      public CommentsBlock addComments​(CommentsBlock newCommentsBlock)
      Add CommentsBlock to this CommentsBlock. No need to include <!-- XML comment delimiters --> around new comments.
      Specified by:
      addComments in class X3DConcreteElement
      Parameters:
      newCommentsBlock - block of comments to add, with no comment delimiters needed
      Returns:
      CommentsBlock - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
    • toStrings

      public java.lang.String[] toStrings()
      Provide CommentsBlock as string array. No need to include <!-- XML comment delimiters --> around new comments.
      Returns:
      all comments
    • toStringList

      public java.util.ArrayList<java.lang.String> toStringList()
      Provide CommentsBlock as ArrayList of string(s). No need to include <!-- XML comment delimiters --> around new comments.
      Returns:
      all comments
    • initialize

      public final void initialize()
      Initialize this CommentsBlock instance.
      Overrides:
      initialize in class X3DConcreteStatement
    • clear

      public CommentsBlock clear()
      Clear all comments from this CommentsBlock.
      Returns:
      CommentsBlock - namely this same object to allow sequential method pipelining (i.e. consecutive method invocations on the same object).
    • cleanXmlCommentDelimiters

      public static java.lang.String cleanXmlCommentDelimiters​(java.lang.String newComment)
      Utility method to adjust XML comment delimiters <!-- and -->, also replace invalid "--" characters with "- -". Typically only used internally when exporting via toStringX3D() methods to avoid (illegal) nested XML comments.
      Parameters:
      newComment - is comment to be cleaned
      Returns:
      cleaned-up string with no problematic XML comment characters embedded
    • toStringX3D

      public java.lang.String toStringX3D​(int indentLevel)
      Recursive method to provide X3D string serialization of this model subgraph, utilizing XML encoding and conforming to X3D Canonical Form.
      Specified by:
      toStringX3D in class X3DConcreteElement
      Parameters:
      indentLevel - number of levels of indentation for this element
      Returns:
      X3D string
      See Also:
      X3DObject.FILE_EXTENSION_X3D, X3DObject.FILE_EXTENSION_XML, X3DObject.toStringXML(), X3DObject.toFileXML(String), X3DObject.toFileX3D(String), X3D XML Encoding, X3D Compressed Binary Encoding: X3D Canonical Form, X3D Canonicalization (C14N) Tool
    • toStringClassicVRML

      public java.lang.String toStringClassicVRML​(int indentLevel)
      Recursive method to provide ClassicVRML string serialization.
      Specified by:
      toStringClassicVRML in class X3DConcreteElement
      Parameters:
      indentLevel - number of levels of indentation for this element
      Returns:
      ClassicVRML string
      See Also:
      X3DObject.FILE_EXTENSION_CLASSICVRML, X3D Resources: Virtual Reality Modeling Language (VRML) 97, Extensible 3D (X3D) encodings Part 2: Classic VRML encoding, Extensible 3D (X3D) encodings Part 2: Classic VRML encoding, Annex A: Grammar
    • toStringVRML97

      public java.lang.String toStringVRML97​(int indentLevel)
      Recursive method to provide VRML97 string serialization.
      Specified by:
      toStringVRML97 in class X3DConcreteElement
      Parameters:
      indentLevel - number of levels of indentation for this element
      Returns:
      VRML97 string
      See Also:
      X3DObject.FILE_EXTENSION_VRML97, X3D Resources: Virtual Reality Modeling Language (VRML) 97, Virtual Reality Modeling Language (VRML) 97 specification, VRML 97 v2.1 Amendment
    • findElementByNameValue

      public X3DConcreteElement findElementByNameValue​(java.lang.String nameValue)
      Recursive method to provide object reference to node or statement by name attribute, if found as part of this element or in a contained element. Elements with name fields include meta, Metadata* nodes, field/fieldValue, ProtoDeclare/ExternProtoDeclare/ProtoInstance, CAD and HAnim nodes.

      Warning: first start with findAncestorSceneObject() to check entire scene graph, or findAncestorX3DObject() to check entire model document.

      Warning: more than one element may be found that has the same name, this method does not handle that case.
      Specified by:
      findElementByNameValue in class X3DConcreteElement
      Parameters:
      nameValue - is value of the name field being searched for in this element and child elements(if any)
      Returns:
      object reference to found element, null otherwise
      See Also:
      findNodeByDEF(String), X3DConcreteElement.hasAncestorSceneObject(), X3DConcreteElement.findAncestorX3DObject()
    • findElementByNameValue

      public X3DConcreteElement findElementByNameValue​(java.lang.String nameValue, java.lang.String elementName)
      Recursive method to provide object reference to node or statement by name attribute, if found as part of this element or in a contained element. Elements with name fields include meta, Metadata* nodes, field/fieldValue, ProtoDeclare/ExternProtoDeclare/ProtoInstance, CAD and HAnim nodes.

      Warning: first start with findAncestorSceneObject() to check entire scene graph, or findAncestorX3DObject() to check entire model document.

      Warning: more than one element may be found that has the same name, this method does not handle that case.
      Specified by:
      findElementByNameValue in class X3DConcreteElement
      Parameters:
      nameValue - is value of the name field being searched for in this element and child elements(if any)
      elementName - identifies the element of interest (meta MetadataString ProtoDeclare CADassembly ProtoInstance HAnimHumanoid etc.)
      Returns:
      object reference to found element, null otherwise
      See Also:
      findNodeByDEF(String), X3DConcreteElement.hasAncestorSceneObject(), X3DConcreteElement.findAncestorX3DObject()
    • hasElementByNameValue

      public boolean hasElementByNameValue​(java.lang.String nameValue, java.lang.String elementName)
      Recursive method to determine whether node or statement with given name attribute is found, meaning both objects are attached to same scene graph.
      Parameters:
      nameValue - is value of the name field being searched for in this element and child elements(if any)
      elementName - identifies the element of interest (meta MetadataString ProtoDeclare CADassembly ProtoInstance HAnimHumanoid etc.)
      Returns:
      whether node is found
      See Also:
      findElementByNameValue(String, String)
    • findNodeByDEF

      public X3DConcreteNode findNodeByDEF​(java.lang.String DEFvalue)
      Recursive method to provide object reference to node by DEF, if found as this node or in a contained node.

      Warning: first start with findAncestorSceneObject() to check entire scene graph, or findAncestorX3DObject() to check entire model document.

      Warning: more than one element may be found that has the same DEF, this method does not handle that case.
      Specified by:
      findNodeByDEF in class X3DConcreteElement
      Parameters:
      DEFvalue - is value of the name field being searched for in this element and child elements(if any)
      Returns:
      object reference to found node, null otherwise
      See Also:
      findElementByNameValue(String), X3DConcreteElement.hasAncestorSceneObject(), X3DConcreteElement.findAncestorX3DObject()
    • hasNodeByDEF

      public boolean hasNodeByDEF​(java.lang.String DEFvalue)
      Recursive method to determine whether node with DEFvalue is found, meaning both objects are attached to same scene graph.
      Parameters:
      DEFvalue - is value of the name field being searched for in this element and child elements(if any)
      Returns:
      whether node is found
      See Also:
      findNodeByDEF(String)
    • validate

      public java.lang.String validate()
      Recursive method to validate this element plus all contained nodes and statements, using both datatype-specification value checks and regular expression (regex) checking of corresponding string values.
      Specified by:
      validate in class X3DConcreteElement
      Returns:
      validation results (if any)
    • getMetadata

      @Deprecated public X3DMetadataObject getMetadata()
      Deprecated.
      DO NOT USE: operation ignored since no such field exists for this element. This method has no effect, a stub method is necessary to implement X3DChildNode interface.
      Specified by:
      getMetadata in interface X3DChildNode
      Specified by:
      getMetadata in interface X3DNode
      Returns:
      null, this method is deprecated and has no effect
      See Also:
      X3D Scene Authoring Hints: Metadata Nodes
    • setMetadata

      @Deprecated public CommentsBlock setMetadata​(X3DMetadataObject newValue)
      Deprecated.
      DO NOT USE: operation ignored since no such field exists for this element. This method has no effect, a stub method is necessary to implement X3DChildNode interface.
      Specified by:
      setMetadata in interface X3DChildNode
      Specified by:
      setMetadata in interface X3DNode
      Parameters:
      newValue - ignored
      Returns:
      unmodified object, this method is deprecated and has no effect
      See Also:
      X3D Scene Authoring Hints: Metadata Nodes
    • setDEF

      @Deprecated public CommentsBlock setDEF​(java.lang.String newValue)
      Deprecated.
      DO NOT USE: operation ignored since no such field exists for this element. This method has no effect, a stub method is necessary to implement X3DChildNode interface.
      Parameters:
      newValue - ignored
      Returns:
      unmodified object, this method is deprecated and has no effect
    • setUSE

      @Deprecated public CommentsBlock setUSE​(java.lang.String newValue)
      Deprecated.
      DO NOT USE: operation ignored since no such field exists for this element. This method has no effect, a stub method is necessary to implement X3DChildNode interface.
      Parameters:
      newValue - ignored
      Returns:
      unmodified object, this method is deprecated and has no effect
    • setCssClass

      @Deprecated public CommentsBlock setCssClass​(java.lang.String newValue)
      Deprecated.
    • getFieldType

      @Deprecated public java.lang.String getFieldType​(java.lang.String fieldName)
      Deprecated.
      DO NOT USE: operation ignored since no such field exists for this element. This method has no effect, it is only provided since a stub method is necessary to implement X3DChildNode interface.
      Specified by:
      getFieldType in class X3DConcreteElement
      Parameters:
      fieldName - ignored
      Returns:
      ConfigurationProperties#ERROR_UNKNOWN_FIELD_TYPE, this method is deprecated and has no effect
      See Also:
      ConfigurationProperties.ERROR_UNKNOWN_FIELD_TYPE
    • getAccessType

      @Deprecated public java.lang.String getAccessType​(java.lang.String fieldName)
      Deprecated.
      DO NOT USE: operation ignored since no such field exists for this element. This method has no effect, it is only provided since a stub method is necessary to implement X3DChildNode interface.
      Specified by:
      getAccessType in class X3DConcreteElement
      Parameters:
      fieldName - ignored
      Returns:
      ConfigurationProperties#ERROR_UNKNOWN_FIELD_ACCESSTYPE, this method is deprecated and has no effect
      See Also:
      ConfigurationProperties.ERROR_UNKNOWN_FIELD_ACCESSTYPE