Xerces-C++  3.2.3
DOMRange.hpp
Go to the documentation of this file.
1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements. See the NOTICE file distributed with
4  * this work for additional information regarding copyright ownership.
5  * The ASF licenses this file to You under the Apache License, Version 2.0
6  * (the "License"); you may not use this file except in compliance with
7  * the License. You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
18 /*
19  * $Id$
20  */
21 
22 #if !defined(XERCESC_INCLUDE_GUARD_DOMRANGE_HPP)
23 #define XERCESC_INCLUDE_GUARD_DOMRANGE_HPP
24 
26 
28 
29 class DOMNode;
31 
37 protected:
38  // -----------------------------------------------------------------------
39  // Hidden constructors
40  // -----------------------------------------------------------------------
43  DOMRange() {}
44  DOMRange(const DOMRange &) {}
46 
47 private:
48  // -----------------------------------------------------------------------
49  // Unimplemented constructors and operators
50  // -----------------------------------------------------------------------
53  DOMRange & operator = (const DOMRange &);
55 
56 public:
57  // -----------------------------------------------------------------------
58  // All constructors are hidden, just the destructor is available
59  // -----------------------------------------------------------------------
66  virtual ~DOMRange() {};
68 
69  // -----------------------------------------------------------------------
70  // Class Types
71  // -----------------------------------------------------------------------
99  enum CompareHow {
100  START_TO_START = 0,
101  START_TO_END = 1,
102  END_TO_END = 2,
103  END_TO_START = 3
104  };
105 
107 
108  // -----------------------------------------------------------------------
109  // Virtual DOMRange interface
110  // -----------------------------------------------------------------------
113  // -----------------------------------------------------------------------
114  // Getter methods
115  // -----------------------------------------------------------------------
124  virtual DOMNode* getStartContainer() const = 0;
125 
134  virtual XMLSize_t getStartOffset() const = 0;
135 
144  virtual DOMNode* getEndContainer() const = 0;
145 
154  virtual XMLSize_t getEndOffset() const = 0;
155 
164  virtual bool getCollapsed() const = 0;
165 
175  virtual const DOMNode* getCommonAncestorContainer() const = 0;
176 
177  // -----------------------------------------------------------------------
178  // Setter methods
179  // -----------------------------------------------------------------------
202  virtual void setStart(const DOMNode *refNode, XMLSize_t offset) = 0;
203 
226  virtual void setEnd(const DOMNode *refNode, XMLSize_t offset) = 0;
227 
244  virtual void setStartBefore(const DOMNode *refNode) = 0;
245 
262  virtual void setStartAfter(const DOMNode *refNode) = 0;
263 
280  virtual void setEndBefore(const DOMNode *refNode) = 0;
281 
298  virtual void setEndAfter(const DOMNode *refNode) = 0;
299 
300  // -----------------------------------------------------------------------
301  // Misc methods
302  // -----------------------------------------------------------------------
313  virtual void collapse(bool toStart) = 0;
314 
331  virtual void selectNode(const DOMNode *refNode) = 0;
332 
347  virtual void selectNodeContents(const DOMNode *refNode) = 0;
348 
366  virtual short compareBoundaryPoints(CompareHow how, const DOMRange* sourceRange) const = 0;
367 
381  virtual void deleteContents() = 0;
382 
399 
412  virtual DOMDocumentFragment* cloneContents() const = 0;
413 
442  virtual void insertNode(DOMNode *newNode) = 0;
443 
469  virtual void surroundContents(DOMNode *newParent) = 0;
470 
481  virtual DOMRange* cloneRange() const = 0;
482 
493  virtual const XMLCh* toString() const = 0;
494 
507  virtual void detach() = 0;
508 
510 
511  // -----------------------------------------------------------------------
512  // Non-standard Extension
513  // -----------------------------------------------------------------------
523  virtual void release() = 0;
525 };
526 
527 
529 
530 #endif
DOMRange::DOMRange
DOMRange()
Definition: DOMRange.hpp:43
XERCES_CPP_NAMESPACE_BEGIN
#define XERCES_CPP_NAMESPACE_BEGIN
Definition: XercesDefs.hpp:112
CDOM_EXPORT
#define CDOM_EXPORT
Definition: XercesDefs.hpp:166
XMLCh
char16_t XMLCh
Definition: Xerces_autoconf_config.hpp:120
DOMRange::cloneContents
virtual DOMDocumentFragment * cloneContents() const =0
Duplicates the contents of a Range.
XERCES_CPP_NAMESPACE_END
#define XERCES_CPP_NAMESPACE_END
Definition: XercesDefs.hpp:113
DOMRange::setEndBefore
virtual void setEndBefore(const DOMNode *refNode)=0
Sets the end position to be before a node.
DOMRange::surroundContents
virtual void surroundContents(DOMNode *newParent)=0
Reparents the contents of the Range to the given node and inserts the node at the position of the sta...
DOMRange::collapse
virtual void collapse(bool toStart)=0
Collapse a Range onto one of its boundary-points.
DOMRange::compareBoundaryPoints
virtual short compareBoundaryPoints(CompareHow how, const DOMRange *sourceRange) const =0
Compare the boundary-points of two Ranges in a document.
DOMRange::deleteContents
virtual void deleteContents()=0
Removes the contents of a Range from the containing document or document fragment without returning a...
XMLSize_t
size_t XMLSize_t
Definition: Xerces_autoconf_config.hpp:112
DOMDocumentFragment
DOMDocumentFragment is a "lightweight" or "minimal" DOMDocument object.
Definition: DOMDocumentFragment.hpp:71
DOMRange::insertNode
virtual void insertNode(DOMNode *newNode)=0
Inserts a node into the DOMDocument or DOMDocumentFragment at the start of the Range.
DOMRange::getStartOffset
virtual XMLSize_t getStartOffset() const =0
Offset within the starting node of the Range.
DOMRange::getCommonAncestorContainer
virtual const DOMNode * getCommonAncestorContainer() const =0
The deepest common ancestor container of the Range's two boundary-points.
DOMRange::release
virtual void release()=0
Called to indicate that this Range is no longer in use and that the implementation may relinquish any...
DOMRange::toString
virtual const XMLCh * toString() const =0
Returns the contents of a Range as a string.
DOMRange::selectNode
virtual void selectNode(const DOMNode *refNode)=0
Select a node and its contents.
DOMRange::getStartContainer
virtual DOMNode * getStartContainer() const =0
DOMNode within which the Range begins.
DOMRange::setStartBefore
virtual void setStartBefore(const DOMNode *refNode)=0
Sets the start position to be before a node.
XercesDefs.hpp
DOMRange::detach
virtual void detach()=0
Called to indicate that the Range is no longer in use and that the implementation may relinquish any ...
DOMRange::setStartAfter
virtual void setStartAfter(const DOMNode *refNode)=0
Sets the start position to be after a node.
DOMRange::getCollapsed
virtual bool getCollapsed() const =0
TRUE if the Range is collapsed.
DOMRange::setStart
virtual void setStart(const DOMNode *refNode, XMLSize_t offset)=0
Sets the attributes describing the start of the Range.
DOMRange::cloneRange
virtual DOMRange * cloneRange() const =0
Produces a new Range whose boundary-points are equal to the boundary-points of the Range.
DOMRange::CompareHow
CompareHow
Constants CompareHow.
Definition: DOMRange.hpp:99
DOMRange::extractContents
virtual DOMDocumentFragment * extractContents()=0
Moves the contents of a Range from the containing document or document fragment to a new DOMDocumentF...
DOMRange::getEndOffset
virtual XMLSize_t getEndOffset() const =0
Offset within the ending node of the Range.
DOMRange::selectNodeContents
virtual void selectNodeContents(const DOMNode *refNode)=0
Select the contents within a node.
DOMRange::getEndContainer
virtual DOMNode * getEndContainer() const =0
DOMNode within which the Range ends.
DOMRange::~DOMRange
virtual ~DOMRange()
Destructor.
Definition: DOMRange.hpp:66
DOMRange::DOMRange
DOMRange(const DOMRange &)
Definition: DOMRange.hpp:44
DOMRange
Definition: DOMRange.hpp:36
DOMRange::setEndAfter
virtual void setEndAfter(const DOMNode *refNode)=0
Sets the end of a Range to be after a node.
DOMRange::setEnd
virtual void setEnd(const DOMNode *refNode, XMLSize_t offset)=0
Sets the attributes describing the end of a Range.
DOMNode
The DOMNode interface is the primary datatype for the entire Document Object Model.
Definition: DOMNode.hpp:139