1 // Created on: 2007-05-29
2 // Created by: Vlad Romashko
3 // Copyright (c) 2007-2014 OPEN CASCADE SAS
5 // This file is part of Open CASCADE Technology software library.
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
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.
13 // Alternatively, this file may be used under the terms of Open CASCADE
14 // commercial license or contractual agreement.
16 #include <TDataStd_ExtStringList.ixx>
17 #include <TDataStd_ListIteratorOfListOfExtendedString.hxx>
19 //=======================================================================
22 //=======================================================================
23 const Standard_GUID& TDataStd_ExtStringList::GetID()
25 static Standard_GUID TDataStd_ExtStringListID ("D13FBE0A-E084-4912-A99D-7713C59C0AC4");
26 return TDataStd_ExtStringListID;
29 //=======================================================================
30 //function : TDataStd_ExtStringList
31 //purpose : Empty Constructor
32 //=======================================================================
33 TDataStd_ExtStringList::TDataStd_ExtStringList()
38 //=======================================================================
41 //=======================================================================
42 Handle(TDataStd_ExtStringList) TDataStd_ExtStringList::Set(const TDF_Label& label)
44 Handle(TDataStd_ExtStringList) A;
45 if (!label.FindAttribute (TDataStd_ExtStringList::GetID(), A))
47 A = new TDataStd_ExtStringList;
48 label.AddAttribute(A);
53 //=======================================================================
56 //=======================================================================
57 Standard_Boolean TDataStd_ExtStringList::IsEmpty() const
59 return myList.IsEmpty();
62 //=======================================================================
65 //=======================================================================
66 Standard_Integer TDataStd_ExtStringList::Extent() const
68 return myList.Extent();
71 //=======================================================================
74 //=======================================================================
75 void TDataStd_ExtStringList::Prepend(const TCollection_ExtendedString& value)
78 myList.Prepend(value);
81 //=======================================================================
84 //=======================================================================
85 void TDataStd_ExtStringList::Append(const TCollection_ExtendedString& value)
91 //=======================================================================
92 //function : InsertBefore
94 //=======================================================================
95 Standard_Boolean TDataStd_ExtStringList::InsertBefore(const TCollection_ExtendedString& value,
96 const TCollection_ExtendedString& before_value)
98 TDataStd_ListIteratorOfListOfExtendedString itr(myList);
99 for (; itr.More(); itr.Next())
101 if (itr.Value() == before_value)
104 myList.InsertBefore(value, itr);
105 return Standard_True;
108 return Standard_False;
111 //=======================================================================
112 //function : InsertAfter
114 //=======================================================================
115 Standard_Boolean TDataStd_ExtStringList::InsertAfter(const TCollection_ExtendedString& value,
116 const TCollection_ExtendedString& after_value)
118 TDataStd_ListIteratorOfListOfExtendedString itr(myList);
119 for (; itr.More(); itr.Next())
121 if (itr.Value() == after_value)
124 myList.InsertAfter(value, itr);
125 return Standard_True;
128 return Standard_False;
131 //=======================================================================
134 //=======================================================================
135 Standard_Boolean TDataStd_ExtStringList::Remove(const TCollection_ExtendedString& value)
137 TDataStd_ListIteratorOfListOfExtendedString itr(myList);
138 for (; itr.More(); itr.Next())
140 if (itr.Value() == value)
144 return Standard_True;
147 return Standard_False;
150 //=======================================================================
153 //=======================================================================
154 void TDataStd_ExtStringList::Clear()
160 //=======================================================================
163 //=======================================================================
164 const TCollection_ExtendedString& TDataStd_ExtStringList::First() const
166 return myList.First();
169 //=======================================================================
172 //=======================================================================
173 const TCollection_ExtendedString& TDataStd_ExtStringList::Last() const
175 return myList.Last();
178 //=======================================================================
181 //=======================================================================
182 const TDataStd_ListOfExtendedString& TDataStd_ExtStringList::List() const
187 //=======================================================================
190 //=======================================================================
191 const Standard_GUID& TDataStd_ExtStringList::ID () const
196 //=======================================================================
197 //function : NewEmpty
199 //=======================================================================
200 Handle(TDF_Attribute) TDataStd_ExtStringList::NewEmpty () const
202 return new TDataStd_ExtStringList();
205 //=======================================================================
208 //=======================================================================
209 void TDataStd_ExtStringList::Restore(const Handle(TDF_Attribute)& With)
212 Handle(TDataStd_ExtStringList) aList = Handle(TDataStd_ExtStringList)::DownCast(With);
213 TDataStd_ListIteratorOfListOfExtendedString itr(aList->List());
214 for (; itr.More(); itr.Next())
216 myList.Append(itr.Value());
220 //=======================================================================
223 //=======================================================================
224 void TDataStd_ExtStringList::Paste (const Handle(TDF_Attribute)& Into,
225 const Handle(TDF_RelocationTable)& ) const
227 Handle(TDataStd_ExtStringList) aList = Handle(TDataStd_ExtStringList)::DownCast(Into);
229 TDataStd_ListIteratorOfListOfExtendedString itr(myList);
230 for (; itr.More(); itr.Next())
232 aList->Append(itr.Value());
236 //=======================================================================
239 //=======================================================================
240 Standard_OStream& TDataStd_ExtStringList::Dump (Standard_OStream& anOS) const
242 anOS << "ExtStringList";