Dodo
DOm DOcument implementation
Loading...
Searching...
No Matches
Wikimedia\Dodo\CharacterData Class Reference
+ Inheritance diagram for Wikimedia\Dodo\CharacterData:

Public Member Functions

string getNodeValue ()
 Return the value for this node.
See also
https://dom.spec.whatwg.org/#dom-node-nodevalue
Returns
?string

 
 setNodeValue (?string $value)
 
string getTextContent ()
 Return the textContent for this node.
See also
https://dom.spec.whatwg.org/#dom-node-textcontent
Returns
?string

 
 setTextContent (?string $value)
 
string substringData (int $offset, int $count)
 DOMString substringData(unsigned long offset, unsigned long count);.
 
 appendData (string $data)
 void appendData(DOMString data);
 
 insertData (int $offset, string $data)
 void insertData(unsigned long offset, DOMString data);
 
 deleteData (int $offset, int $count)
 void deleteData(unsigned long offset, unsigned long count);
 
 replaceData (int $offset, int $count, string $data)
 void replaceData(unsigned long offset, unsigned long count, DOMString data);
 
int getLength ()
 NOTE: see discussion of UTF-16 code units -vs- unicode code points in ::substringData() above.
 
string getData ()
 
 setData (?string $value)
 
int _length ()
 
See also
https://dom.spec.whatwg.org/#concept-node-length
Returns
int The length of this node.

 
bool _empty ()
 
See also
https://dom.spec.whatwg.org/#concept-node-empty
Returns
bool Whether this node is considered empty.

 
int count ()
 This is a non-standard extension, but it allows count() to be used on CharacterData nodes in the same way that .length is used on them in JavaScript – and makes some of our WPT test cases pass.
 
- Public Member Functions inherited from Wikimedia\Dodo\Leaf
bool hasChildNodes ()
 
Node getFirstChild ()
 This should be overridden in ContainerNode and Leaf.
 
Node getLastChild ()
 This should be overridden in ContainerNode and Leaf.
 
Node insertBefore ( $node, $refChild=null)
 Insert $node as a child of $this, and insert it before $refChild in the document order.spec DOM-LSTHINGS TO KNOW FROM THE SPEC:
  1. If $node already exists in this Document, this function moves it from its current position to its new position ('move' means 'remove' followed by 're-insert').
  2. If $refNode is NULL, then $node is added to the end of the list of children of $this. In other words, insertBefore($node, NULL) is equivalent to appendChild($node).
  3. If $node is a DocumentFragment, the children of the DocumentFragment are moved into the child list of $this, and the empty DocumentFragment is returned.
THINGS TO KNOW IN LIFE:Despite its weird syntax (blame the spec), this is a real workhorse, used to implement all of the non-replacing insertion mutations.
Parameters
INode$nodeTo be inserted
?INode$refNodeChild of this node before which to insert $node
Returns
Node Newly inserted Node or empty DocumentFragment
Exceptions
DOMException"HierarchyRequestError" or "NotFoundError"

 
Node replaceChild ( $node, $refChild)
 
Node removeChild ( $node)
 
 _removeChildren ()
 
NodeList getChildNodes ()
 This should be overridden in ContainerNode and Leaf.
 
- Public Member Functions inherited from Wikimedia\Dodo\Node
 __construct (Document $nodeDocument)
 Create a Node whose node document is the given $nodeDocument.
 
int getNodeType ()
 Return the node type enumeration for this node.
 
string getNodeName ()
 Return the nodeName for this node.
 
Document getOwnerDocument ()
 The ownerDocument getter steps are to return null, if this is a document; otherwise this’s node document.
 
Node getParentNode ()
 Nodes might not have a parentNode.
 
Element getParentElement ()
 This value is the same as parentNode, except it puts an extra condition, that the parentNode must be an Element.
 
Wikimedia IDLeDOM Node getRootNode ($options=null)
 Return this' shadow-including root if options['composed'] is true; otherwise return this' root.
 
Node getPreviousSibling ()
 
Node getNextSibling ()
 
 _roothook ()
 <script> elements need to know when they're inserted into the document.
 
 appendChild ( $node)
 
Node _unsafeAppendChild (Node $node)
 Does not check for insertion validity.
 
 normalize ()
 Puts $this and the entire subtree rooted at $this into "normalized" form.
 
int compareDocumentPosition ( $that)
 
bool contains ( $node)
 
bool isSameNode ( $node)
 
bool isEqualNode ( $node)
 Determine whether this node and $other are equal.
 
Node cloneNode (bool $deep=false)
 Clone this Node.
 
string lookupPrefix (?string $ns)
 Return DOMString containing prefix for given namespace URI.
 
string lookupNamespaceURI (?string $prefix)
 Return DOMString containing namespace URI for a given prefix.
 
bool isDefaultNamespace (?string $ns)
 Determine whether this is the default namespace.
 
string getNodePath ()
 Get an XPath for a node.
 
 _resetNodeDocument (Document $doc)
 Set the ownerDocument reference on a subtree rooted at $this.
 
bool getIsConnected ()
 Determine whether this Node is rooted (belongs to the tree rooted at the node document).
 
int _getSiblingIndex ()
 The index of this Node in its parent's childNodes list.
 
int _lastModTime ()
 Return the lastModTime value for this node.
 
 _modify ()
 Increment the owner document's modclock [and use the new value to update the lastModTime value for this node and all of its ancestors.
 
 _htmlSerialize (array &$result, array $options)
 Convert the children of a node to an HTML string.
 
 _xmlSerialize (?string $namespace, NamespacePrefixMap $prefixMap, int &$prefixIndex, array $options, array &$markup)
 XML serialize the given node.
 
mixed getExtensionData (string $key, $defaultValue=null)
 Get "extension data" associate with this node, using the given $key.
 
 setExtensionData (string $key, $value)
 Set "extension data" associate with this node, using the given $key.
 
- Public Member Functions inherited from Wikimedia::IDLeDOM::EventTarget
void addEventListener (string $type, $callback, $options=null)
 
void removeEventListener (string $type, $callback, $options=null)
 
bool dispatchEvent ( $event)
 
- Public Member Functions inherited from Wikimedia::IDLeDOM::Node
string getBaseURI ()
 
- Public Member Functions inherited from Wikimedia::IDLeDOM::ChildNode
void before (... $nodes)
 
void after (... $nodes)
 
void replaceWith (... $nodes)
 
void remove ()
 
- Public Member Functions inherited from Wikimedia::IDLeDOM::NonDocumentTypeChildNode
Element null getPreviousElementSibling ()
 
Element null getNextElementSibling ()
 

Protected Member Functions

mixed _getMissingProp (string $name)
 HACK! For compatibilty with W3C test suite, which assumes that an access to 'attributes' will return null.
 
 _setMissingProp (string $prop, $value)
 Implement _setMissingProp to allow $_charLength to be a dynamic property.
 
 __construct (Document $nodeDocument, string $data)
 Create a CharacterData with data (in UTF-8 encoding).
 
- Protected Member Functions inherited from Wikimedia\Dodo\Node
bool _subclassIsEqualNode (Node $node)
 Delegated subclass method called by Node::isEqualNode()
 
Node _subclassCloneNodeShallow ()
 Delegated subclass method called by Node::cloneNode()
 

Protected Attributes

string $_data
 

Additional Inherited Members

- Public Attributes inherited from Wikimedia\Dodo\Node
Document $_nodeDocument
 The document this node is associated to.
 
Node null $_parentNode
 should be considered read-only
 
Node $_nextSibling
 The sibling list is stored as a circular linked list: the node "before" the first sibling is the last sibling, and the node "after" the last sibling is the first sibling.
 
Node $_previousSibling
 
int $_documentIndex = null
 DEVELOPERS NOTE: An index is assigned when a node is added to a Document (becomes rooted).
 
int $_cachedSiblingIndex = null
 DEVELOPERS NOTE: An index is assigned on INSERTION.
 

Constructor & Destructor Documentation

◆ __construct()

Wikimedia\Dodo\CharacterData::__construct ( Document $nodeDocument,
string $data )
protected

Create a CharacterData with data (in UTF-8 encoding).

Parameters
Document$nodeDocumentthe owner document
string$datacontents, in UTF-8 encoding

Reimplemented in Wikimedia\Dodo\Text.

Member Function Documentation

◆ _empty()

bool Wikimedia\Dodo\CharacterData::_empty ( )

See also
https://dom.spec.whatwg.org/#concept-node-empty
Returns
bool Whether this node is considered empty.

Reimplemented from Wikimedia\Dodo\Node.

◆ _getMissingProp()

mixed Wikimedia\Dodo\CharacterData::_getMissingProp ( string $name)
protected

HACK! For compatibilty with W3C test suite, which assumes that an access to 'attributes' will return null.

Parameters
string$name
Returns
mixed

Reimplemented from Wikimedia\Dodo\Node.

◆ _length()

int Wikimedia\Dodo\CharacterData::_length ( )

See also
https://dom.spec.whatwg.org/#concept-node-length
Returns
int The length of this node.

Reimplemented from Wikimedia\Dodo\Node.

◆ _setMissingProp()

Wikimedia\Dodo\CharacterData::_setMissingProp ( string $prop,
$value )
protected

Implement _setMissingProp to allow $_charLength to be a dynamic property.

Very few instances of CharacterData will need to allocate this property.

Parameters
string$propthe name of the property requested
mixed$valuethe value to set

Reimplemented from Wikimedia\Dodo\Node.

◆ appendData()

Wikimedia\Dodo\CharacterData::appendData ( string $data)

void appendData(DOMString data);

The appendData(data) method must append data to the context object's data.

PORT NOTES: Again, for the number of arguments, we can just use the function prototype to check.

Parameters
string$data

Implements Wikimedia::IDLeDOM::CharacterData.

◆ count()

int Wikimedia\Dodo\CharacterData::count ( )

This is a non-standard extension, but it allows count() to be used on CharacterData nodes in the same way that .length is used on them in JavaScript – and makes some of our WPT test cases pass.

Returns
int

◆ deleteData()

Wikimedia\Dodo\CharacterData::deleteData ( int $offset,
int $count )

void deleteData(unsigned long offset, unsigned long count);

The deleteData(offset, count) method must run these steps:

If offset is greater than the context object's
length <u>in code points</u>, throw an INDEX_SIZE_ERR
exception and terminate these steps.

If offset+count is greater than the context
object's length <u>in code points</u> let count be
length-offset.

Starting from offset <s>UTF-16 code units</s> <u>code points</u>
remove count <s>UTF-16 code units</s> <u>code points</u> from
the context object's data.

NOTE: see discussion of UTF-16 code units -vs- unicode code points in ::substringData() above. Be careful!

Parameters
int$offset
int$count

Implements Wikimedia::IDLeDOM::CharacterData.

◆ getData()

string Wikimedia\Dodo\CharacterData::getData ( )

◆ getLength()

int Wikimedia\Dodo\CharacterData::getLength ( )

NOTE: see discussion of UTF-16 code units -vs- unicode code points in ::substringData() above.

Be careful!

Implements Wikimedia::IDLeDOM::CharacterData.

◆ getNodeValue()

string Wikimedia\Dodo\CharacterData::getNodeValue ( )
final

Return the value for this node.

See also
https://dom.spec.whatwg.org/#dom-node-nodevalue
Returns
?string

Reimplemented from Wikimedia\Dodo\Node.

◆ getTextContent()

string Wikimedia\Dodo\CharacterData::getTextContent ( )
final

Return the textContent for this node.

See also
https://dom.spec.whatwg.org/#dom-node-textcontent
Returns
?string

Reimplemented from Wikimedia\Dodo\Node.

◆ insertData()

Wikimedia\Dodo\CharacterData::insertData ( int $offset,
string $data )

void insertData(unsigned long offset, DOMString data);

The insertData(offset, data) method must run these steps:

If offset is greater than the context object's
length <u>in code points</u>, throw an INDEX_SIZE_ERR
exception and terminate these steps.

Insert data into the context object's data after
offset <s>UTF-16 code units</s> <u>code points</u>.

NOTE: see discussion of UTF-16 code units -vs- unicode code points in ::substringData() above. Be careful!

Parameters
int$offset
string$data

Implements Wikimedia::IDLeDOM::CharacterData.

◆ replaceData()

Wikimedia\Dodo\CharacterData::replaceData ( int $offset,
int $count,
string $data )

void replaceData(unsigned long offset, unsigned long count, DOMString data);

The replaceData(offset, count, data) method must act as if the deleteData() method is invoked with offset and count as arguments followed by the insertData() method with offset and data as arguments and re-throw any exceptions these methods might have thrown.

NOTE: see discussion of UTF-16 code units -vs- unicode code points in ::substringData() above.

Parameters
int$offset
int$count
string$data

Implements Wikimedia::IDLeDOM::CharacterData.

◆ setData()

Wikimedia\Dodo\CharacterData::setData ( ?string $value)

◆ setNodeValue()

Wikimedia\Dodo\CharacterData::setNodeValue ( ?string $value)
final

Reimplemented from Wikimedia\Dodo\Node.

◆ setTextContent()

Wikimedia\Dodo\CharacterData::setTextContent ( ?string $value)
final

Reimplemented from Wikimedia\Dodo\Node.

◆ substringData()

string Wikimedia\Dodo\CharacterData::substringData ( int $offset,
int $count )

DOMString substringData(unsigned long offset, unsigned long count);.

The substringData(offset, count) method must run these steps:

If offset is greater than the context object's
length, throw an INDEX_SIZE_ERR exception and
terminate these steps.

If offset+count is greater than the context
object's length, return a DOMString whose value is
the <s>UTF-16 code units</s> <u>code points</u> from the
offset-th <s>UTF-16 code unit</s> <u>code point</u>
to the end of data.

Return a DOMString whose value is the <s>UTF-16 code
units</s> <u>code points</u> from the offset-th
<s>UTF-16 code unit</s> <u>code point</u> to the
(offset+count)-th <s>UTF-16 code unit</s> <u>code point</u>
in data.

PORT NOTES: In Domino.js, checking was done to ensure $offset and $count were integers and not-undefined. Here we just use type hints.

The DOM spec requires that the offset and count be in UTF-16 units and the PHP \DOMText etc classes originally did this (and the PHP docs still say that's how things should work). In PHP 5 the implementation was changed to measure things in codepoints, so that surrogates are no longer counted. This is very sensible, so we've chosen to be compatible w/ current PHP behavior, and this incompatible with DOM spec and with PHP documentation (which doesn't match the current PHP implementation). Be careful!

Parameters
int$offset
int$count
Returns
string

Implements Wikimedia::IDLeDOM::CharacterData.

Member Data Documentation

◆ $_data

string Wikimedia\Dodo\CharacterData::$_data
protected

The documentation for this class was generated from the following file: