1 // Copyright (c) 2017-2018 OPEN CASCADE SAS
3 // This file is part of Open CASCADE Technology software library.
5 // This library is free software; you can redistribute it and/or modify it under
6 // the terms of the GNU Lesser General Public License version 2.1 as published
7 // by the Free Software Foundation, with special exception defined in the file
8 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
9 // distribution for complete text of the license and disclaimer of any warranty.
11 // Alternatively, this file may be used under the terms of Open CASCADE
12 // commercial license or contractual agreement.
14 #include <XCAFDoc_NoteComment.hxx>
16 #include <Standard_GUID.hxx>
17 #include <TDF_Label.hxx>
19 IMPLEMENT_STANDARD_RTTIEXT(XCAFDoc_NoteComment, XCAFDoc_Note)
21 // =======================================================================
24 // =======================================================================
26 XCAFDoc_NoteComment::GetID()
28 static Standard_GUID s_ID("FDEA4C52-0F54-484c-B590-579E18F7B5D4");
32 // =======================================================================
35 // =======================================================================
36 Handle(XCAFDoc_NoteComment)
37 XCAFDoc_NoteComment::Get(const TDF_Label& theLabel)
39 Handle(XCAFDoc_NoteComment) aThis;
40 theLabel.FindAttribute(XCAFDoc_NoteComment::GetID(), aThis);
44 // =======================================================================
47 // =======================================================================
48 Handle(XCAFDoc_NoteComment)
49 XCAFDoc_NoteComment::Set(const TDF_Label& theLabel,
50 const TCollection_ExtendedString& theUserName,
51 const TCollection_ExtendedString& theTimeStamp,
52 const TCollection_ExtendedString& theComment)
54 Handle(XCAFDoc_NoteComment) aNoteComment;
55 if (!theLabel.IsNull() && !theLabel.FindAttribute(XCAFDoc_NoteComment::GetID(), aNoteComment))
57 aNoteComment = new XCAFDoc_NoteComment();
58 aNoteComment->XCAFDoc_Note::Set(theUserName, theTimeStamp);
59 aNoteComment->Set(theComment);
60 theLabel.AddAttribute(aNoteComment);
65 // =======================================================================
66 // function : XCAFDoc_NoteComment
68 // =======================================================================
69 XCAFDoc_NoteComment::XCAFDoc_NoteComment()
73 // =======================================================================
76 // =======================================================================
78 XCAFDoc_NoteComment::Set(const TCollection_ExtendedString& theComment)
82 myComment = theComment;
85 // =======================================================================
88 // =======================================================================
90 XCAFDoc_NoteComment::ID() const
95 // =======================================================================
96 // function : NewEmpty
98 // =======================================================================
100 XCAFDoc_NoteComment::NewEmpty() const
102 return new XCAFDoc_NoteComment();
105 // =======================================================================
106 // function : Restore
108 // =======================================================================
110 XCAFDoc_NoteComment::Restore(const Handle(TDF_Attribute)& theAttr)
112 XCAFDoc_Note::Restore(theAttr);
114 Handle(XCAFDoc_NoteComment) aMine = Handle(XCAFDoc_NoteComment)::DownCast(theAttr);
116 myComment = aMine->myComment;
119 // =======================================================================
122 // =======================================================================
124 XCAFDoc_NoteComment::Paste(const Handle(TDF_Attribute)& theAttrInto,
125 const Handle(TDF_RelocationTable)& theRT) const
127 XCAFDoc_Note::Paste(theAttrInto, theRT);
129 Handle(XCAFDoc_NoteComment) aMine = Handle(XCAFDoc_NoteComment)::DownCast(theAttrInto);
131 aMine->Set(myComment);
134 // =======================================================================
137 // =======================================================================
139 XCAFDoc_NoteComment::Dump(Standard_OStream& theOS) const
141 XCAFDoc_Note::Dump(theOS);
143 << "Comment : " << (!myComment.IsEmpty() ? myComment : "<empty>")