0025616: Avoid Classes using "new" to allocate Instances but not defining a copy...
[occt.git] / src / LDOM / LDOM_CharacterData.cxx
CommitLineData
b311480e 1// Created on: 2001-09-12
2// Created by: Alexander GRIGORIEV
973c2be1 3// Copyright (c) 2001-2014 OPEN CASCADE SAS
b311480e 4//
973c2be1 5// This file is part of Open CASCADE Technology software library.
b311480e 6//
d5f74e42 7// This library is free software; you can redistribute it and/or modify it under
8// the terms of the GNU Lesser General Public License version 2.1 as published
973c2be1 9// by the Free Software Foundation, with special exception defined in the file
10// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
11// distribution for complete text of the license and disclaimer of any warranty.
b311480e 12//
973c2be1 13// Alternatively, this file may be used under the terms of Open CASCADE
14// commercial license or contractual agreement.
7fd59977 15
16#include <LDOM_CharacterData.hxx>
17#include <LDOM_BasicText.hxx>
18#include <Standard_ProgramError.hxx>
19
20//=======================================================================
21//function : LDOM_CharacterData
22//purpose :
23//=======================================================================
24
25LDOM_CharacterData::LDOM_CharacterData (const LDOM_BasicText& aText,
26 const Handle(LDOM_MemManager)& aDoc)
27 : LDOM_Node (aText, aDoc), myLength (-1) {}
28
29//=======================================================================
30//function : operator =
31//purpose : Nullify
32//=======================================================================
33
34LDOM_CharacterData& LDOM_CharacterData::operator = (const LDOM_NullPtr* theNull)
35{
36 LDOM_Node::operator = (theNull);
37 myLength = -1;
38 return * this;
39}
40
41//=======================================================================
42//function : operator =
43//purpose : Assignment
44//=======================================================================
45
46LDOM_CharacterData& LDOM_CharacterData::operator =
47 (const LDOM_CharacterData& theOther)
48{
49 LDOM_Node::operator = (theOther);
50 myLength = theOther.myLength;
51 return * this;
52}
53
54//=======================================================================
55//function : setData
56//purpose : replace the data
57//=======================================================================
58
59void LDOM_CharacterData::setData (const LDOMString& theValue)
60{
61 LDOM_BasicText& aText = (LDOM_BasicText&) Origin ();
62 if (&aText == NULL)
63 Standard_ProgramError::Raise("LDOM_CharacterData::setData: called on void");
64 aText.SetData (theValue, myDocument);
65 myLength = -1;
66}
67
68//=======================================================================
69//function : getLength
70//purpose : query the data length
71//=======================================================================
72
73Standard_Integer LDOM_CharacterData::getLength () const
74{
75 if (myLength < 0)
7dc9e047 76 (Standard_Integer&)myLength = (Standard_Integer)strlen (getNodeValue().GetString());
7fd59977 77 return myLength;
78}