1 // Created on: 2007-05-29
2 // Created by: Vlad Romashko
3 // Copyright (c) 2007-2014 OPEN CASCADE SAS
4 //
5 // This file is part of Open CASCADE Technology software library.
6 //
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.
12 //
13 // Alternatively, this file may be used under the terms of Open CASCADE
14 // commercial license or contractual agreement.
15 
16 #ifndef _TDataStd_ExtStringList_HeaderFile
17 #define _TDataStd_ExtStringList_HeaderFile
18 
19 #include <Standard.hxx>
20 #include <Standard_Type.hxx>
21 
22 #include <TDataStd_ListOfExtendedString.hxx>
23 #include <TDF_Attribute.hxx>
24 #include <Standard_Boolean.hxx>
25 #include <Standard_Integer.hxx>
26 #include <Standard_OStream.hxx>
27 #include <Standard_GUID.hxx>
28 
29 class Standard_GUID;
30 class TDF_Label;
31 class TCollection_ExtendedString;
32 class TDF_Attribute;
33 class TDF_RelocationTable;
34 
35 
36 class TDataStd_ExtStringList;
37 DEFINE_STANDARD_HANDLE(TDataStd_ExtStringList, TDF_Attribute)
38 
39 //! Contains a list of ExtendedString.
40 class TDataStd_ExtStringList : public TDF_Attribute
41 {
42 
43 public:
44 
45 
46   //! Static methods
47   //! ==============
48   //! Returns the ID of the list of strings attribute.
49   Standard_EXPORT static const Standard_GUID& GetID();
50 
51   //! Finds or creates a list of string values attribute with explicit user defined <guid>.
52   Standard_EXPORT static Handle(TDataStd_ExtStringList) Set (const TDF_Label& label);
53 
54   //! Finds or creates a list of string values attribute.
55   Standard_EXPORT static Handle(TDataStd_ExtStringList) Set (const TDF_Label& label, const Standard_GUID& theGuid);
56 
57   Standard_EXPORT TDataStd_ExtStringList();
58 
59   Standard_EXPORT Standard_Boolean IsEmpty() const;
60 
61   Standard_EXPORT Standard_Integer Extent() const;
62 
63   Standard_EXPORT void Prepend (const TCollection_ExtendedString& value);
64 
65   Standard_EXPORT void Append (const TCollection_ExtendedString& value);
66 
67   //! Sets the explicit GUID (user defined) for the attribute.
68   Standard_EXPORT void SetID( const Standard_GUID&  theGuid) Standard_OVERRIDE;
69 
70   //! Sets default GUID for the attribute.
71   Standard_EXPORT void SetID() Standard_OVERRIDE;
72 
73   //! Inserts the <value> before the first meet of <before_value>.
74   Standard_EXPORT Standard_Boolean InsertBefore (const TCollection_ExtendedString& value, const TCollection_ExtendedString& before_value);
75 
76   //! Inserts the <value> before the <index> position.
77   //! The indices start with 1 .. Extent().
78   Standard_EXPORT Standard_Boolean InsertBefore (const Standard_Integer index, const TCollection_ExtendedString& before_value);
79 
80   //! Inserts the <value> after the first meet of <after_value>.
81   Standard_EXPORT Standard_Boolean InsertAfter (const TCollection_ExtendedString& value, const TCollection_ExtendedString& after_value);
82 
83   //! Inserts the <value> after the <index> position.
84   //! The indices start with 1 .. Extent().
85   Standard_EXPORT Standard_Boolean InsertAfter (const Standard_Integer index, const TCollection_ExtendedString& after_value);
86 
87   //! Removes the first meet of the <value>.
88   Standard_EXPORT Standard_Boolean Remove (const TCollection_ExtendedString& value);
89 
90   //! Removes a value at <index> position.
91   Standard_EXPORT Standard_Boolean Remove (const Standard_Integer index);
92 
93   Standard_EXPORT void Clear();
94 
95   Standard_EXPORT const TCollection_ExtendedString& First() const;
96 
97   Standard_EXPORT const TCollection_ExtendedString& Last() const;
98 
99   Standard_EXPORT const TDataStd_ListOfExtendedString& List() const;
100 
101   Standard_EXPORT const Standard_GUID& ID() const Standard_OVERRIDE;
102 
103   Standard_EXPORT void Restore (const Handle(TDF_Attribute)& With) Standard_OVERRIDE;
104 
105   Standard_EXPORT Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
106 
107   Standard_EXPORT void Paste (const Handle(TDF_Attribute)& Into, const Handle(TDF_RelocationTable)& RT) const Standard_OVERRIDE;
108 
109   Standard_EXPORT virtual Standard_OStream& Dump (Standard_OStream& anOS) const Standard_OVERRIDE;
110 
111   //! Dumps the content of me into the stream
112   Standard_EXPORT virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const Standard_OVERRIDE;
113 
114 
115 
116 
117   DEFINE_STANDARD_RTTIEXT(TDataStd_ExtStringList,TDF_Attribute)
118 
119 protected:
120 
121 
122 
123 
124 private:
125 
126 
127   TDataStd_ListOfExtendedString myList;
128   Standard_GUID myID;
129 
130 };
131 
132 
133 
134 
135 
136 
137 
138 #endif // _TDataStd_ExtStringList_HeaderFile
139