0024002: Overall code and build procedure refactoring -- automatic
[occt.git] / src / APIHeaderSection / APIHeaderSection_MakeHeader.hxx
1 // Created on: 1993-08-12
2 // Created by: Frederic MAUPAS
3 // Copyright (c) 1993-1999 Matra Datavision
4 // Copyright (c) 1999-2014 OPEN CASCADE SAS
5 //
6 // This file is part of Open CASCADE Technology software library.
7 //
8 // This library is free software; you can redistribute it and/or modify it under
9 // the terms of the GNU Lesser General Public License version 2.1 as published
10 // by the Free Software Foundation, with special exception defined in the file
11 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12 // distribution for complete text of the license and disclaimer of any warranty.
13 //
14 // Alternatively, this file may be used under the terms of Open CASCADE
15 // commercial license or contractual agreement.
16
17 #ifndef _APIHeaderSection_MakeHeader_HeaderFile
18 #define _APIHeaderSection_MakeHeader_HeaderFile
19
20 #include <Standard.hxx>
21 #include <Standard_DefineAlloc.hxx>
22 #include <Standard_Handle.hxx>
23
24 #include <Standard_Boolean.hxx>
25 #include <Standard_Integer.hxx>
26 #include <Standard_CString.hxx>
27 #include <Interface_HArray1OfHAsciiString.hxx>
28 class HeaderSection_FileName;
29 class HeaderSection_FileSchema;
30 class HeaderSection_FileDescription;
31 class StepData_StepModel;
32 class Interface_Protocol;
33 class TCollection_HAsciiString;
34
35
36 //! This class allows to consult and prepare/edit  data stored in
37 //! a Step Model  Header
38 class APIHeaderSection_MakeHeader 
39 {
40 public:
41
42   DEFINE_STANDARD_ALLOC
43
44   
45   //! Prepares a new MakeHeader from scratch
46   Standard_EXPORT APIHeaderSection_MakeHeader(const Standard_Integer shapetype = 0);
47   
48   //! Prepares a MakeHeader from the content of a StepModel
49   //! See IsDone to know if the Header is well defined
50   Standard_EXPORT APIHeaderSection_MakeHeader(const Handle(StepData_StepModel)& model);
51   
52   //! Cancels the former definition and gives a FileName
53   //! To be used when a Model has no well defined Header
54   Standard_EXPORT void Init (const Standard_CString nameval);
55   
56   //! Returns True if all data have been defined (see also
57   //! HasFn, HasFs, HasFd)
58   Standard_EXPORT Standard_Boolean IsDone() const;
59   
60   //! Creates an empty header for a new
61   //! STEP model and allows the header fields to be completed.
62   Standard_EXPORT void Apply (const Handle(StepData_StepModel)& model) const;
63   
64   //! Builds a Header, creates a new StepModel, then applies the
65   //! Header to the StepModel
66   //! The Schema Name is taken from the Protocol (if it inherits
67   //! from StepData, else it is left in blanks)
68   Standard_EXPORT Handle(StepData_StepModel) NewModel (const Handle(Interface_Protocol)& protocol) const;
69   
70   //! Checks whether there is a
71   //! file_name entity. Returns True if there is one.
72   Standard_EXPORT Standard_Boolean HasFn() const;
73   
74   //! Returns the file_name entity.
75   //! Returns an empty entity if the file_name entity is not initialized.
76   Standard_EXPORT Handle(HeaderSection_FileName) FnValue() const;
77   
78   Standard_EXPORT void SetName (const Handle(TCollection_HAsciiString)& aName);
79   
80   //! Returns the name attribute for the file_name entity.
81   Standard_EXPORT Handle(TCollection_HAsciiString) Name() const;
82   
83   Standard_EXPORT void SetTimeStamp (const Handle(TCollection_HAsciiString)& aTimeStamp);
84   
85   //! Returns the value of the time_stamp attribute for the file_name entity.
86   Standard_EXPORT Handle(TCollection_HAsciiString) TimeStamp() const;
87   
88   Standard_EXPORT void SetAuthor (const Handle(Interface_HArray1OfHAsciiString)& aAuthor);
89   
90   Standard_EXPORT void SetAuthorValue (const Standard_Integer num, const Handle(TCollection_HAsciiString)& aAuthor);
91   
92   Standard_EXPORT Handle(Interface_HArray1OfHAsciiString) Author() const;
93   
94   //! Returns the value of the name attribute for the file_name entity.
95   Standard_EXPORT Handle(TCollection_HAsciiString) AuthorValue (const Standard_Integer num) const;
96   
97   //! Returns the number of values for the author attribute in the file_name entity.
98   Standard_EXPORT Standard_Integer NbAuthor() const;
99   
100   Standard_EXPORT void SetOrganization (const Handle(Interface_HArray1OfHAsciiString)& aOrganization);
101   
102   Standard_EXPORT void SetOrganizationValue (const Standard_Integer num, const Handle(TCollection_HAsciiString)& aOrganization);
103   
104   Standard_EXPORT Handle(Interface_HArray1OfHAsciiString) Organization() const;
105   
106   //! Returns the value of attribute
107   //! organization for the file_name entity.
108   Standard_EXPORT Handle(TCollection_HAsciiString) OrganizationValue (const Standard_Integer num) const;
109   
110   //! Returns the number of values for
111   //! the organization attribute in the file_name entity.
112   Standard_EXPORT Standard_Integer NbOrganization() const;
113   
114   Standard_EXPORT void SetPreprocessorVersion (const Handle(TCollection_HAsciiString)& aPreprocessorVersion);
115   
116   //! Returns the name of the preprocessor_version for the file_name entity.
117   Standard_EXPORT Handle(TCollection_HAsciiString) PreprocessorVersion() const;
118   
119   Standard_EXPORT void SetOriginatingSystem (const Handle(TCollection_HAsciiString)& aOriginatingSystem);
120   
121   Standard_EXPORT Handle(TCollection_HAsciiString) OriginatingSystem() const;
122   
123   Standard_EXPORT void SetAuthorisation (const Handle(TCollection_HAsciiString)& aAuthorisation);
124   
125   //! Returns the value of the authorization attribute for the file_name entity.
126   Standard_EXPORT Handle(TCollection_HAsciiString) Authorisation() const;
127   
128   //! Checks whether there is a file_schema entity. Returns True if there is one.
129   Standard_EXPORT Standard_Boolean HasFs() const;
130   
131   //! Returns the file_schema entity. Returns an empty entity if the file_schema entity is not initialized.
132   Standard_EXPORT Handle(HeaderSection_FileSchema) FsValue() const;
133   
134   Standard_EXPORT void SetSchemaIdentifiers (const Handle(Interface_HArray1OfHAsciiString)& aSchemaIdentifiers);
135   
136   Standard_EXPORT void SetSchemaIdentifiersValue (const Standard_Integer num, const Handle(TCollection_HAsciiString)& aSchemaIdentifier);
137   
138   Standard_EXPORT Handle(Interface_HArray1OfHAsciiString) SchemaIdentifiers() const;
139   
140   //! Returns the value of the schema_identifier attribute for the file_schema entity.
141   Standard_EXPORT Handle(TCollection_HAsciiString) SchemaIdentifiersValue (const Standard_Integer num) const;
142   
143   //! Returns the number of values for the schema_identifier attribute in the file_schema entity.
144   Standard_EXPORT Standard_Integer NbSchemaIdentifiers() const;
145   
146   //! Add a subname of schema (if not yet in the list)
147   Standard_EXPORT void AddSchemaIdentifier (const Handle(TCollection_HAsciiString)& aSchemaIdentifier);
148   
149   //! Checks whether there is a file_description entity. Returns True if there is one.
150   Standard_EXPORT Standard_Boolean HasFd() const;
151   
152   //! Returns the file_description
153   //! entity. Returns an empty entity if the file_description entity is not initialized.
154   Standard_EXPORT Handle(HeaderSection_FileDescription) FdValue() const;
155   
156   Standard_EXPORT void SetDescription (const Handle(Interface_HArray1OfHAsciiString)& aDescription);
157   
158   Standard_EXPORT void SetDescriptionValue (const Standard_Integer num, const Handle(TCollection_HAsciiString)& aDescription);
159   
160   Standard_EXPORT Handle(Interface_HArray1OfHAsciiString) Description() const;
161   
162   //! Returns the value of the
163   //! description attribute for the file_description entity.
164   Standard_EXPORT Handle(TCollection_HAsciiString) DescriptionValue (const Standard_Integer num) const;
165   
166   //! Returns the number of values for
167   //! the file_description entity in the STEP file header.
168   Standard_EXPORT Standard_Integer NbDescription() const;
169   
170   Standard_EXPORT void SetImplementationLevel (const Handle(TCollection_HAsciiString)& aImplementationLevel);
171   
172   //! Returns the value of the
173   //! implementation_level attribute for the file_description entity.
174   Standard_EXPORT Handle(TCollection_HAsciiString) ImplementationLevel() const;
175
176
177
178
179 protected:
180
181
182
183
184
185 private:
186
187
188
189   Standard_Boolean done;
190   Handle(HeaderSection_FileName) fn;
191   Handle(HeaderSection_FileSchema) fs;
192   Handle(HeaderSection_FileDescription) fd;
193
194
195 };
196
197
198
199
200
201
202
203 #endif // _APIHeaderSection_MakeHeader_HeaderFile