From 5e27ff560d08b371692d575e7a2bac68c11027cb Mon Sep 17 00:00:00 2001 From: "Unknown (aruna1)" <dev-null@apache.org> Date: Thu, 10 Aug 2000 01:16:33 +0000 Subject: [PATCH] Range API parameter modifications git-svn-id: https://svn.apache.org/repos/asf/xerces/c/trunk@172348 13f79535-47bb-0310-9956-ffa450edef68 --- src/dom/DOM_Range.cpp | 38 ++++++++++++------------- src/dom/DOM_Range.hpp | 38 ++++++++++++------------- src/dom/RangeImpl.cpp | 64 ++++++++++++++++++++----------------------- src/dom/RangeImpl.hpp | 50 ++++++++++++++++----------------- 4 files changed, 91 insertions(+), 99 deletions(-) diff --git a/src/dom/DOM_Range.cpp b/src/dom/DOM_Range.cpp index d65b35889..0cde6eb38 100644 --- a/src/dom/DOM_Range.cpp +++ b/src/dom/DOM_Range.cpp @@ -126,55 +126,55 @@ bool DOM_Range::operator == (const DOM_NullPtr * other) const //getter functions -DOM_Node& DOM_Range::getStartContainer() +DOM_Node DOM_Range::getStartContainer() const { return ((RangeImpl *)fImpl)->getStartContainer(); } -unsigned int DOM_Range::getStartOffset() +unsigned int DOM_Range::getStartOffset() const { return ((RangeImpl *)fImpl)->getStartOffset(); } -DOM_Node& DOM_Range::getEndContainer() +DOM_Node DOM_Range::getEndContainer() const { return ((RangeImpl *)fImpl)->getEndContainer(); } -unsigned int DOM_Range::getEndOffset() +unsigned int DOM_Range::getEndOffset() const { return ((RangeImpl *)fImpl)->getEndOffset(); } -const DOM_Node& DOM_Range::getCommonAncestorContainer() +const DOM_Node DOM_Range::getCommonAncestorContainer() const { return ((RangeImpl *)fImpl)->getCommonAncestorContainer(); } //setter functions -void DOM_Range::setStart(DOM_Node parent, unsigned int offset) +void DOM_Range::setStart(const DOM_Node& parent, unsigned int offset) { this->fImpl->setStart(parent, offset); } -void DOM_Range::setEnd(DOM_Node parent, unsigned int offset) +void DOM_Range::setEnd(const DOM_Node& parent, unsigned int offset) { this->fImpl->setEnd(parent, offset); } -void DOM_Range::setStartBefore(DOM_Node refNode) +void DOM_Range::setStartBefore(const DOM_Node& refNode) { this->fImpl->setStartBefore(refNode); } -void DOM_Range::setStartAfter(DOM_Node refNode) +void DOM_Range::setStartAfter(const DOM_Node& refNode) { this->fImpl->setStartAfter(refNode); } -void DOM_Range::setEndBefore(DOM_Node refNode) +void DOM_Range::setEndBefore(const DOM_Node& refNode) { this->fImpl->setEndBefore(refNode); } -void DOM_Range::setEndAfter(DOM_Node refNode) +void DOM_Range::setEndAfter(const DOM_Node& refNode) { this->fImpl->setEndAfter(refNode); } @@ -185,22 +185,22 @@ void DOM_Range::collapse(bool toStart) this->fImpl->collapse(toStart); } -bool DOM_Range::getCollapsed() +bool DOM_Range::getCollapsed() const { return ((RangeImpl *)fImpl)->getCollapsed(); } -void DOM_Range::selectNode(DOM_Node node) +void DOM_Range::selectNode(const DOM_Node& node) { ((RangeImpl *)fImpl)->selectNode(node); } -void DOM_Range::selectNodeContents(DOM_Node node) +void DOM_Range::selectNodeContents(const DOM_Node& node) { ((RangeImpl *)fImpl)->selectNodeContents(node); } //Functions related to comparing ange Boundrary-Points -short DOM_Range::compareBoundaryPoints(CompareHow how, const DOM_Range& range) +short DOM_Range::compareBoundaryPoints(CompareHow how, const DOM_Range& range) const { return ((RangeImpl *)fImpl)->compareBoundaryPoints(how, range.fImpl); } @@ -215,7 +215,7 @@ DOM_DocumentFragment DOM_Range::extractContents() return ((RangeImpl *)fImpl)->extractContents(); } -DOM_DocumentFragment DOM_Range::cloneContents() +DOM_DocumentFragment DOM_Range::cloneContents() const { return ((RangeImpl *)fImpl)->cloneContents(); } @@ -226,17 +226,17 @@ void DOM_Range::insertNode(DOM_Node& node) } //Misc functions -void DOM_Range::surroundContents(DOM_Node node) +void DOM_Range::surroundContents(DOM_Node& node) { ((RangeImpl *)fImpl)->surroundContents(node); } -DOM_Range DOM_Range::cloneRange() +DOM_Range DOM_Range::cloneRange() const { return DOM_Range( ((RangeImpl *)fImpl)->cloneRange() ); } -DOMString DOM_Range::toString() +DOMString DOM_Range::toString() const { return ((RangeImpl *)fImpl)->toString(); } diff --git a/src/dom/DOM_Range.hpp b/src/dom/DOM_Range.hpp index a64a367b1..94524d03b 100644 --- a/src/dom/DOM_Range.hpp +++ b/src/dom/DOM_Range.hpp @@ -93,37 +93,37 @@ public: bool operator == (const DOM_NullPtr * other) const; //getter functions - DOM_Node& getStartContainer(); - unsigned int getStartOffset(); - DOM_Node& getEndContainer(); - unsigned int getEndOffset(); - bool getCollapsed(); - const DOM_Node& getCommonAncestorContainer(); + DOM_Node getStartContainer() const; + unsigned int getStartOffset() const; + DOM_Node getEndContainer() const; + unsigned int getEndOffset() const; + bool getCollapsed() const; + const DOM_Node getCommonAncestorContainer() const; //setter functions - void setStart(DOM_Node parent, unsigned int offset); - void setEnd(DOM_Node parent, unsigned int offset); + void setStart(const DOM_Node &parent, unsigned int offset); + void setEnd(const DOM_Node &parent, unsigned int offset); - void setStartBefore(DOM_Node refNode); - void setStartAfter(DOM_Node refNode); - void setEndBefore(DOM_Node refNode); - void setEndAfter(DOM_Node refNode); + void setStartBefore(const DOM_Node &refNode); + void setStartAfter(const DOM_Node &refNode); + void setEndBefore(const DOM_Node &refNode); + void setEndAfter(const DOM_Node &refNode); //misc functions void collapse(bool toStart); - void selectNode(DOM_Node node); - void selectNodeContents(DOM_Node node); + void selectNode(const DOM_Node &node); + void selectNodeContents(const DOM_Node &node); //Functions related to comparing range Boundrary-Points - short compareBoundaryPoints(CompareHow how, const DOM_Range& range); + short compareBoundaryPoints(CompareHow how, const DOM_Range& range) const; void deleteContents(); DOM_DocumentFragment extractContents(); - DOM_DocumentFragment cloneContents(); + DOM_DocumentFragment cloneContents() const; void insertNode(DOM_Node& node); //Misc functions - void surroundContents(DOM_Node node); - DOM_Range cloneRange(); - DOMString toString(); + void surroundContents(DOM_Node &node); + DOM_Range cloneRange() const; + DOMString toString() const; void detach(); diff --git a/src/dom/RangeImpl.cpp b/src/dom/RangeImpl.cpp index 54e11868d..707c19b79 100644 --- a/src/dom/RangeImpl.cpp +++ b/src/dom/RangeImpl.cpp @@ -84,7 +84,6 @@ RangeImpl::RangeImpl(DOM_Document doc) fEndOffset(0), fDetached(false), fCollapsed(true), - fCommonAncestorContainer(0), fRemoveChild(0) { } @@ -98,7 +97,6 @@ RangeImpl::RangeImpl(const RangeImpl& other) fEndOffset = other.fEndOffset; fDetached = other.fDetached; fCollapsed = other.fCollapsed; - fCommonAncestorContainer = other.fCommonAncestorContainer; fRemoveChild = other.fRemoveChild; } @@ -126,29 +124,29 @@ void RangeImpl::unreferenced() //------------------------------- -DOM_Node& RangeImpl::getStartContainer() +DOM_Node RangeImpl::getStartContainer() const { return fStartContainer; } -unsigned int RangeImpl::getStartOffset() +unsigned int RangeImpl::getStartOffset() const { return fStartOffset; } -DOM_Node& RangeImpl::getEndContainer() +DOM_Node RangeImpl::getEndContainer() const { return fEndContainer; } -unsigned int RangeImpl::getEndOffset() +unsigned int RangeImpl::getEndOffset() const { return fEndOffset; } -bool RangeImpl::getCollapsed() +bool RangeImpl::getCollapsed() const { if (fDetached) { @@ -185,12 +183,7 @@ void RangeImpl::setEndOffset(unsigned int offset) fEndOffset = offset; } -void RangeImpl::setCommonAncestorContainer(const DOM_Node& node) -{ - fCommonAncestorContainer = node; -} - -void RangeImpl::setStart(DOM_Node& refNode, unsigned int offset) +void RangeImpl::setStart(const DOM_Node& refNode, unsigned int offset) { checkIndex(refNode, offset); @@ -210,7 +203,7 @@ void RangeImpl::setStart(DOM_Node& refNode, unsigned int offset) fCollapsed = false; } -void RangeImpl::setEnd(DOM_Node& refNode, unsigned int offset) +void RangeImpl::setEnd(const DOM_Node& refNode, unsigned int offset) { checkIndex(refNode, offset); @@ -230,7 +223,7 @@ void RangeImpl::setEnd(DOM_Node& refNode, unsigned int offset) fCollapsed = false; } -void RangeImpl::setStartBefore(DOM_Node& refNode) +void RangeImpl::setStartBefore(const DOM_Node& refNode) { validateNode(refNode); @@ -257,7 +250,7 @@ void RangeImpl::setStartBefore(DOM_Node& refNode) fCollapsed = false; } -void RangeImpl::setStartAfter(DOM_Node& refNode) +void RangeImpl::setStartAfter(const DOM_Node& refNode) { validateNode(refNode); @@ -282,7 +275,7 @@ void RangeImpl::setStartAfter(DOM_Node& refNode) fCollapsed = false; } -void RangeImpl::setEndBefore(DOM_Node& refNode) +void RangeImpl::setEndBefore(const DOM_Node& refNode) { validateNode(refNode); @@ -308,7 +301,7 @@ void RangeImpl::setEndBefore(DOM_Node& refNode) fCollapsed = false; } -void RangeImpl::setEndAfter(DOM_Node& refNode) +void RangeImpl::setEndAfter(const DOM_Node& refNode) { validateNode(refNode); @@ -346,8 +339,7 @@ void RangeImpl::detach() fEndContainer = 0; fEndOffset = 0; fCollapsed = true; - fCommonAncestorContainer = 0; - + fRemoveChild = 0; } @@ -368,7 +360,7 @@ void RangeImpl::collapse(bool toStart) fCollapsed = true; } -void RangeImpl::selectNode(DOM_Node& refNode) +void RangeImpl::selectNode(const DOM_Node& refNode) { validateNode(refNode); short type = refNode.getNodeType(); @@ -410,7 +402,7 @@ void RangeImpl::selectNode(DOM_Node& refNode) } } -void RangeImpl::selectNodeContents(DOM_Node& node) +void RangeImpl::selectNodeContents(const DOM_Node& node) { validateNode(node); short type = node.getNodeType(); @@ -494,7 +486,7 @@ void RangeImpl::surroundContents(DOM_Node& newParent) } -short RangeImpl::compareBoundaryPoints(DOM_Range::CompareHow how, RangeImpl* srcRange) +short RangeImpl::compareBoundaryPoints(DOM_Range::CompareHow how, RangeImpl* srcRange) const { if (fDocument != srcRange->fDocument) { throw DOM_DOMException( @@ -763,9 +755,10 @@ DOM_DocumentFragment RangeImpl::extractContents() return traverseContents(EXTRACT_CONTENTS); } -DOM_DocumentFragment RangeImpl::cloneContents() +DOM_DocumentFragment RangeImpl::cloneContents() const { - return traverseContents(CLONE_CONTENTS); + // cast off const. + return ((RangeImpl *)this)->traverseContents(CLONE_CONTENTS); } @@ -843,7 +836,7 @@ void RangeImpl::insertNode(DOM_Node& newNode) } -RangeImpl* RangeImpl::cloneRange() +RangeImpl* RangeImpl::cloneRange() const { if( fDetached) { throw DOM_DOMException( @@ -857,7 +850,7 @@ RangeImpl* RangeImpl::cloneRange() return range; } -DOMString RangeImpl::toString() +DOMString RangeImpl::toString() const { if( fDetached) { throw DOM_DOMException( @@ -914,9 +907,9 @@ DOM_Document RangeImpl::getDocument() return fDocument; } -const DOM_Node& RangeImpl::getCommonAncestorContainer() +const DOM_Node RangeImpl::getCommonAncestorContainer() const { - return fCommonAncestorContainer = commonAncestorOf(fStartContainer, fEndContainer); + return commonAncestorOf(fStartContainer, fEndContainer); } @@ -924,7 +917,7 @@ const DOM_Node& RangeImpl::getCommonAncestorContainer() //private functions //--------------------- -bool RangeImpl::isValidAncestorType(DOM_Node& node) +bool RangeImpl::isValidAncestorType(const DOM_Node& node) const { for (DOM_Node aNode = node; aNode!=null; aNode = aNode.getParentNode()) { short type = aNode.getNodeType(); @@ -943,7 +936,7 @@ bool RangeImpl::isAncestorOf(const DOM_Node& a, const DOM_Node& b) { return false; } -unsigned short RangeImpl::indexOf(const DOM_Node& child, const DOM_Node& parent) +unsigned short RangeImpl::indexOf(const DOM_Node& child, const DOM_Node& parent) const { unsigned short i = 0; if (child.getParentNode() != parent) return -1; @@ -953,7 +946,7 @@ unsigned short RangeImpl::indexOf(const DOM_Node& child, const DOM_Node& parent) return i; } -void RangeImpl::validateNode(DOM_Node& node) +void RangeImpl::validateNode(const DOM_Node& node) const { if( fDetached) { throw DOM_DOMException( @@ -967,7 +960,7 @@ void RangeImpl::validateNode(DOM_Node& node) } -DOM_Node RangeImpl::commonAncestorOf(DOM_Node& pointA, DOM_Node& pointB) +const DOM_Node RangeImpl::commonAncestorOf(const DOM_Node& pointA, const DOM_Node& pointB) const { if (fDetached) throw DOM_DOMException(DOM_DOMException::INVALID_STATE_ERR, null); @@ -1013,7 +1006,7 @@ DOM_Node RangeImpl::commonAncestorOf(DOM_Node& pointA, DOM_Node& pointB) return DOM_Node(commonAncestor); } -void RangeImpl::checkIndex(DOM_Node& node, unsigned int offset) +void RangeImpl::checkIndex(const DOM_Node& node, unsigned int offset) const { validateNode(node); @@ -1043,7 +1036,8 @@ void RangeImpl::checkIndex(DOM_Node& node, unsigned int offset) } -DOM_Node RangeImpl::nextNode(const DOM_Node& node, bool visitChildren) { +DOM_Node RangeImpl::nextNode(const DOM_Node& node, bool visitChildren) const +{ if (node == null) return null; diff --git a/src/dom/RangeImpl.hpp b/src/dom/RangeImpl.hpp index 2ef146ca1..b26ef2aa8 100644 --- a/src/dom/RangeImpl.hpp +++ b/src/dom/RangeImpl.hpp @@ -86,42 +86,42 @@ public: //getter functions - DOM_Node& getStartContainer(); - unsigned int getStartOffset(); - DOM_Node& getEndContainer(); - unsigned int getEndOffset(); + DOM_Node getStartContainer() const; + unsigned int getStartOffset() const; + DOM_Node getEndContainer() const; + unsigned int getEndOffset() const; void collapse(bool toStart); - bool getCollapsed(); + bool getCollapsed() const; - void setStartBefore(DOM_Node& node); - void setStartAfter(DOM_Node& node); - void setEndBefore(DOM_Node& node); - void setEndAfter(DOM_Node& node); + void setStartBefore(const DOM_Node& node); + void setStartAfter(const DOM_Node& node); + void setEndBefore(const DOM_Node& node); + void setEndAfter(const DOM_Node& node); - void setStart(DOM_Node& node, unsigned int offset); - void setEnd(DOM_Node& node, unsigned int offset); + void setStart(const DOM_Node& node, unsigned int offset); + void setEnd(const DOM_Node& node, unsigned int offset); - void selectNode(DOM_Node& node); - void selectNodeContents(DOM_Node& node); + void selectNode(const DOM_Node& node); + void selectNodeContents(const DOM_Node& node); - short compareBoundaryPoints(DOM_Range::CompareHow how, RangeImpl* range); + short compareBoundaryPoints(DOM_Range::CompareHow how, RangeImpl* range) const; void detach(); void deleteContents(); - RangeImpl* cloneRange(); - DOMString toString(); + RangeImpl* cloneRange() const; + DOMString toString() const; DOM_Document getDocument(); void surroundContents(DOM_Node& node); DOM_DocumentFragment extractContents(); - DOM_DocumentFragment cloneContents(); + DOM_DocumentFragment cloneContents() const; void insertNode(DOM_Node& newNode); - const DOM_Node& getCommonAncestorContainer(); + const DOM_Node getCommonAncestorContainer() const; // functions to inform all existing valid ranges about a change void updateSplitInfo(TextImpl* oldNode, TextImpl* startNode); @@ -147,18 +147,17 @@ private: void setStartOffset(unsigned int offset) ; void setEndContainer(const DOM_Node& node); void setEndOffset(unsigned int offset) ; - void setCommonAncestorContainer(const DOM_Node& node) ; //misc functions - void validateNode(DOM_Node& node); - bool isValidAncestorType(DOM_Node& node); - void checkIndex(DOM_Node& node, unsigned int offset); + void validateNode(const DOM_Node& node) const; + bool isValidAncestorType(const DOM_Node& node) const; + void checkIndex(const DOM_Node& node, unsigned int offset) const; static bool isAncestorOf(const DOM_Node& a, const DOM_Node& b); - unsigned short indexOf(const DOM_Node& child, const DOM_Node& parent); + unsigned short indexOf(const DOM_Node& child, const DOM_Node& parent) const; - DOM_Node commonAncestorOf(DOM_Node& pointA, DOM_Node& pointB); - DOM_Node nextNode(const DOM_Node& node, bool visitChildren); + const DOM_Node commonAncestorOf(const DOM_Node& pointA, const DOM_Node& pointB) const; + DOM_Node nextNode(const DOM_Node& node, bool visitChildren) const; DOM_DocumentFragment traverseContents(TraversalType type); void checkReadOnly(DOM_Node& start, DOM_Node& end, unsigned int starOffset, unsigned int endOffset); @@ -172,7 +171,6 @@ private: DOM_Node fEndContainer; unsigned int fEndOffset; bool fCollapsed; - DOM_Node fCommonAncestorContainer; DOM_Document fDocument; bool fDetached; -- GitLab