0031939: Coding - correction of spelling errors in comments [part 4]
[occt.git] / src / IGESBasic / IGESBasic_GeneralModule.cxx
1 // Copyright (c) 1999-2014 OPEN CASCADE SAS
2 //
3 // This file is part of Open CASCADE Technology software library.
4 //
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.
10 //
11 // Alternatively, this file may be used under the terms of Open CASCADE
12 // commercial license or contractual agreement.
13
14
15 #include <IGESBasic_AssocGroupType.hxx>
16 #include <IGESBasic_ExternalReferenceFile.hxx>
17 #include <IGESBasic_ExternalRefFile.hxx>
18 #include <IGESBasic_ExternalRefFileIndex.hxx>
19 #include <IGESBasic_ExternalRefFileName.hxx>
20 #include <IGESBasic_ExternalRefLibName.hxx>
21 #include <IGESBasic_ExternalRefName.hxx>
22 #include <IGESBasic_GeneralModule.hxx>
23 #include <IGESBasic_Group.hxx>
24 #include <IGESBasic_GroupWithoutBackP.hxx>
25 #include <IGESBasic_Hierarchy.hxx>
26 #include <IGESBasic_Name.hxx>
27 #include <IGESBasic_OrderedGroup.hxx>
28 #include <IGESBasic_OrderedGroupWithoutBackP.hxx>
29 #include <IGESBasic_SingleParent.hxx>
30 #include <IGESBasic_SingularSubfigure.hxx>
31 #include <IGESBasic_SubfigureDef.hxx>
32 #include <IGESBasic_ToolAssocGroupType.hxx>
33 #include <IGESBasic_ToolExternalReferenceFile.hxx>
34 #include <IGESBasic_ToolExternalRefFile.hxx>
35 #include <IGESBasic_ToolExternalRefFileIndex.hxx>
36 #include <IGESBasic_ToolExternalRefFileName.hxx>
37 #include <IGESBasic_ToolExternalRefLibName.hxx>
38 #include <IGESBasic_ToolExternalRefName.hxx>
39 #include <IGESBasic_ToolGroup.hxx>
40 #include <IGESBasic_ToolGroupWithoutBackP.hxx>
41 #include <IGESBasic_ToolHierarchy.hxx>
42 #include <IGESBasic_ToolName.hxx>
43 #include <IGESBasic_ToolOrderedGroup.hxx>
44 #include <IGESBasic_ToolOrderedGroupWithoutBackP.hxx>
45 #include <IGESBasic_ToolSingleParent.hxx>
46 #include <IGESBasic_ToolSingularSubfigure.hxx>
47 #include <IGESBasic_ToolSubfigureDef.hxx>
48 #include <IGESData_DirChecker.hxx>
49 #include <IGESData_IGESEntity.hxx>
50 #include <Interface_Category.hxx>
51 #include <Interface_Check.hxx>
52 #include <Interface_CopyTool.hxx>
53 #include <Interface_EntityIterator.hxx>
54 #include <Interface_Macros.hxx>
55 #include <Interface_ShareTool.hxx>
56 #include <Standard_Transient.hxx>
57 #include <Standard_Type.hxx>
58
59 IMPLEMENT_STANDARD_RTTIEXT(IGESBasic_GeneralModule,IGESData_GeneralModule)
60
61 //  Each Module is attached to a Protocol : it must interpret Case Numbers
62 //  (arguments <CN> of various methods) in accordance to values returned by
63 //  the method TypeNumber from this Protocol
64 IGESBasic_GeneralModule::IGESBasic_GeneralModule ()    {  }
65
66
67     void  IGESBasic_GeneralModule::OwnSharedCase
68   (const Standard_Integer CN, const Handle(IGESData_IGESEntity)& ent,
69    Interface_EntityIterator& iter) const 
70 {
71   switch (CN) {
72     case  1 : {
73       DeclareAndCast(IGESBasic_AssocGroupType,anent,ent);
74       if (anent.IsNull()) return;
75       IGESBasic_ToolAssocGroupType tool;
76       tool.OwnShared(anent,iter);
77     }
78       break;
79     case  2 : {
80       DeclareAndCast(IGESBasic_ExternalRefFile,anent,ent);
81       if (anent.IsNull()) return;
82       IGESBasic_ToolExternalRefFile tool;
83       tool.OwnShared(anent,iter);
84     }
85       break;
86     case  3 : {
87       DeclareAndCast(IGESBasic_ExternalRefFileIndex,anent,ent);
88       if (anent.IsNull()) return;
89       IGESBasic_ToolExternalRefFileIndex tool;
90       tool.OwnShared(anent,iter);
91     }
92       break;
93     case  4 : {
94       DeclareAndCast(IGESBasic_ExternalRefFileName,anent,ent);
95       if (anent.IsNull()) return;
96       IGESBasic_ToolExternalRefFileName tool;
97       tool.OwnShared(anent,iter);
98     }
99       break;
100     case  5 : {
101       DeclareAndCast(IGESBasic_ExternalRefLibName,anent,ent);
102       if (anent.IsNull()) return;
103       IGESBasic_ToolExternalRefLibName tool;
104       tool.OwnShared(anent,iter);
105     }
106       break;
107     case  6 : {
108       DeclareAndCast(IGESBasic_ExternalRefName,anent,ent);
109       if (anent.IsNull()) return;
110       IGESBasic_ToolExternalRefName tool;
111       tool.OwnShared(anent,iter);
112     }
113       break;
114     case  7 : {
115       DeclareAndCast(IGESBasic_ExternalReferenceFile,anent,ent);
116       if (anent.IsNull()) return;
117       IGESBasic_ToolExternalReferenceFile tool;
118       tool.OwnShared(anent,iter);
119     }
120       break;
121     case  8 : {
122       DeclareAndCast(IGESBasic_Group,anent,ent);
123       if (anent.IsNull()) return;
124       IGESBasic_ToolGroup tool;
125       tool.OwnShared(anent,iter);
126     }
127       break;
128     case  9 : {
129       DeclareAndCast(IGESBasic_GroupWithoutBackP,anent,ent);
130       if (anent.IsNull()) return;
131       IGESBasic_ToolGroupWithoutBackP tool;
132       tool.OwnShared(anent,iter);
133     }
134       break;
135     case 10 : {
136       DeclareAndCast(IGESBasic_Hierarchy,anent,ent);
137       if (anent.IsNull()) return;
138       IGESBasic_ToolHierarchy tool;
139       tool.OwnShared(anent,iter);
140     }
141       break;
142     case 11 : {
143       DeclareAndCast(IGESBasic_Name,anent,ent);
144       if (anent.IsNull()) return;
145       IGESBasic_ToolName tool;
146       tool.OwnShared(anent,iter);
147     }
148       break;
149     case 12 : {
150       DeclareAndCast(IGESBasic_OrderedGroup,anent,ent);
151       if (anent.IsNull()) return;
152       IGESBasic_ToolOrderedGroup tool;
153       tool.OwnShared(anent,iter);
154     }
155       break;
156     case 13 : {
157       DeclareAndCast(IGESBasic_OrderedGroupWithoutBackP,anent,ent);
158       if (anent.IsNull()) return;
159       IGESBasic_ToolOrderedGroupWithoutBackP tool;
160       tool.OwnShared(anent,iter);
161     }
162       break;
163     case 14 : {
164       DeclareAndCast(IGESBasic_SingleParent,anent,ent);
165       if (anent.IsNull()) return;
166       IGESBasic_ToolSingleParent tool;
167       tool.OwnShared(anent,iter);
168     }
169       break;
170     case 15 : {
171       DeclareAndCast(IGESBasic_SingularSubfigure,anent,ent);
172       if (anent.IsNull()) return;
173       IGESBasic_ToolSingularSubfigure tool;
174       tool.OwnShared(anent,iter);
175     }
176       break;
177     case 16 : {
178       DeclareAndCast(IGESBasic_SubfigureDef,anent,ent);
179       if (anent.IsNull()) return;
180       IGESBasic_ToolSubfigureDef tool;
181       tool.OwnShared(anent,iter);
182     }
183       break;
184     default : break;
185   }
186 }
187
188
189     IGESData_DirChecker  IGESBasic_GeneralModule::DirChecker
190   (const Standard_Integer CN, const Handle(IGESData_IGESEntity)& ent) const 
191 {
192   switch (CN) {
193     case  1 : {
194       DeclareAndCast(IGESBasic_AssocGroupType,anent,ent);
195       if (anent.IsNull()) break;
196       IGESBasic_ToolAssocGroupType tool;
197       return tool.DirChecker(anent);
198     }
199     case  2 : {
200       DeclareAndCast(IGESBasic_ExternalRefFile,anent,ent);
201       if (anent.IsNull()) break;
202       IGESBasic_ToolExternalRefFile tool;
203       return tool.DirChecker(anent);
204     }
205     case  3 : {
206       DeclareAndCast(IGESBasic_ExternalRefFileIndex,anent,ent);
207       if (anent.IsNull()) break;
208       IGESBasic_ToolExternalRefFileIndex tool;
209       return tool.DirChecker(anent);
210     }
211     case  4 : {
212       DeclareAndCast(IGESBasic_ExternalRefFileName,anent,ent);
213       if (anent.IsNull()) break;
214       IGESBasic_ToolExternalRefFileName tool;
215       return tool.DirChecker(anent);
216     }
217     case  5 : {
218       DeclareAndCast(IGESBasic_ExternalRefLibName,anent,ent);
219       if (anent.IsNull()) break;
220       IGESBasic_ToolExternalRefLibName tool;
221       return tool.DirChecker(anent);
222     }
223     case  6 : {
224       DeclareAndCast(IGESBasic_ExternalRefName,anent,ent);
225       if (anent.IsNull()) break;
226       IGESBasic_ToolExternalRefName tool;
227       return tool.DirChecker(anent);
228     }
229     case  7 : {
230       DeclareAndCast(IGESBasic_ExternalReferenceFile,anent,ent);
231       if (anent.IsNull()) break;
232       IGESBasic_ToolExternalReferenceFile tool;
233       return tool.DirChecker(anent);
234     }
235     case  8 : {
236       DeclareAndCast(IGESBasic_Group,anent,ent);
237       if (anent.IsNull()) break;
238       IGESBasic_ToolGroup tool;
239       return tool.DirChecker(anent);
240     }
241     case  9 : {
242       DeclareAndCast(IGESBasic_GroupWithoutBackP,anent,ent);
243       if (anent.IsNull()) break;
244       IGESBasic_ToolGroupWithoutBackP tool;
245       return tool.DirChecker(anent);
246     }
247     case 10 : {
248       DeclareAndCast(IGESBasic_Hierarchy,anent,ent);
249       if (anent.IsNull()) break;
250       IGESBasic_ToolHierarchy tool;
251       return tool.DirChecker(anent);
252     }
253     case 11 : {
254       DeclareAndCast(IGESBasic_Name,anent,ent);
255       if (anent.IsNull()) break;
256       IGESBasic_ToolName tool;
257       return tool.DirChecker(anent);
258     }
259     case 12 : {
260       DeclareAndCast(IGESBasic_OrderedGroup,anent,ent);
261       if (anent.IsNull()) break;
262       IGESBasic_ToolOrderedGroup tool;
263       return tool.DirChecker(anent);
264     }
265     case 13 : {
266       DeclareAndCast(IGESBasic_OrderedGroupWithoutBackP,anent,ent);
267       if (anent.IsNull()) break;
268       IGESBasic_ToolOrderedGroupWithoutBackP tool;
269       return tool.DirChecker(anent);
270     }
271     case 14 : {
272       DeclareAndCast(IGESBasic_SingleParent,anent,ent);
273       if (anent.IsNull()) break;
274       IGESBasic_ToolSingleParent tool;
275       return tool.DirChecker(anent);
276     }
277     case 15 : {
278       DeclareAndCast(IGESBasic_SingularSubfigure,anent,ent);
279       if (anent.IsNull()) break;
280       IGESBasic_ToolSingularSubfigure tool;
281       return tool.DirChecker(anent);
282     }
283     case 16 : {
284       DeclareAndCast(IGESBasic_SubfigureDef,anent,ent);
285       if (anent.IsNull()) break;
286       IGESBasic_ToolSubfigureDef tool;
287       return tool.DirChecker(anent);
288     }
289     default : break;
290   }
291   return IGESData_DirChecker();    // by default, no specific criterium
292 }
293
294
295     void  IGESBasic_GeneralModule::OwnCheckCase
296   (const Standard_Integer CN, const Handle(IGESData_IGESEntity)& ent,
297    const Interface_ShareTool& shares, Handle(Interface_Check)& ach) const 
298 {
299   switch (CN) {
300     case  1 : {
301       DeclareAndCast(IGESBasic_AssocGroupType,anent,ent);
302       if (anent.IsNull()) return;
303       IGESBasic_ToolAssocGroupType tool;
304       tool.OwnCheck(anent,shares,ach);
305     }
306       break;
307     case  2 : {
308       DeclareAndCast(IGESBasic_ExternalRefFile,anent,ent);
309       if (anent.IsNull()) return;
310       IGESBasic_ToolExternalRefFile tool;
311       tool.OwnCheck(anent,shares,ach);
312     }
313       break;
314     case  3 : {
315       DeclareAndCast(IGESBasic_ExternalRefFileIndex,anent,ent);
316       if (anent.IsNull()) return;
317       IGESBasic_ToolExternalRefFileIndex tool;
318       tool.OwnCheck(anent,shares,ach);
319     }
320       break;
321     case  4 : {
322       DeclareAndCast(IGESBasic_ExternalRefFileName,anent,ent);
323       if (anent.IsNull()) return;
324       IGESBasic_ToolExternalRefFileName tool;
325       tool.OwnCheck(anent,shares,ach);
326     }
327       break;
328     case  5 : {
329       DeclareAndCast(IGESBasic_ExternalRefLibName,anent,ent);
330       if (anent.IsNull()) return;
331       IGESBasic_ToolExternalRefLibName tool;
332       tool.OwnCheck(anent,shares,ach);
333     }
334       break;
335     case  6 : {
336       DeclareAndCast(IGESBasic_ExternalRefName,anent,ent);
337       if (anent.IsNull()) return;
338       IGESBasic_ToolExternalRefName tool;
339       tool.OwnCheck(anent,shares,ach);
340     }
341       break;
342     case  7 : {
343       DeclareAndCast(IGESBasic_ExternalReferenceFile,anent,ent);
344       if (anent.IsNull()) return;
345       IGESBasic_ToolExternalReferenceFile tool;
346       tool.OwnCheck(anent,shares,ach);
347     }
348       break;
349     case  8 : {
350       DeclareAndCast(IGESBasic_Group,anent,ent);
351       if (anent.IsNull()) return;
352       IGESBasic_ToolGroup tool;
353       tool.OwnCheck(anent,shares,ach);
354     }
355       break;
356     case  9 : {
357       DeclareAndCast(IGESBasic_GroupWithoutBackP,anent,ent);
358       if (anent.IsNull()) return;
359       IGESBasic_ToolGroupWithoutBackP tool;
360       tool.OwnCheck(anent,shares,ach);
361     }
362       break;
363     case 10 : {
364       DeclareAndCast(IGESBasic_Hierarchy,anent,ent);
365       if (anent.IsNull()) return;
366       IGESBasic_ToolHierarchy tool;
367       tool.OwnCheck(anent,shares,ach);
368     }
369       break;
370     case 11 : {
371       DeclareAndCast(IGESBasic_Name,anent,ent);
372       if (anent.IsNull()) return;
373       IGESBasic_ToolName tool;
374       tool.OwnCheck(anent,shares,ach);
375     }
376       break;
377     case 12 : {
378       DeclareAndCast(IGESBasic_OrderedGroup,anent,ent);
379       if (anent.IsNull()) return;
380       IGESBasic_ToolOrderedGroup tool;
381       tool.OwnCheck(anent,shares,ach);
382     }
383       break;
384     case 13 : {
385       DeclareAndCast(IGESBasic_OrderedGroupWithoutBackP,anent,ent);
386       if (anent.IsNull()) return;
387       IGESBasic_ToolOrderedGroupWithoutBackP tool;
388       tool.OwnCheck(anent,shares,ach);
389     }
390       break;
391     case 14 : {
392       DeclareAndCast(IGESBasic_SingleParent,anent,ent);
393       if (anent.IsNull()) return;
394       IGESBasic_ToolSingleParent tool;
395       tool.OwnCheck(anent,shares,ach);
396     }
397       break;
398     case 15 : {
399       DeclareAndCast(IGESBasic_SingularSubfigure,anent,ent);
400       if (anent.IsNull()) return;
401       IGESBasic_ToolSingularSubfigure tool;
402       tool.OwnCheck(anent,shares,ach);
403     }
404       break;
405     case 16 : {
406       DeclareAndCast(IGESBasic_SubfigureDef,anent,ent);
407       if (anent.IsNull()) return;
408       IGESBasic_ToolSubfigureDef tool;
409       tool.OwnCheck(anent,shares,ach);
410     }
411       break;
412     default : break;
413   }
414 }
415
416
417     Standard_Boolean  IGESBasic_GeneralModule::NewVoid
418   (const Standard_Integer CN, Handle(Standard_Transient)& ent) const 
419 {
420   switch (CN) {
421     case  1 : ent = new IGESBasic_AssocGroupType;       break;
422     case  2 : ent = new IGESBasic_ExternalRefFile;      break;
423     case  3 : ent = new IGESBasic_ExternalRefFileIndex; break;
424     case  4 : ent = new IGESBasic_ExternalRefFileName;  break;
425     case  5 : ent = new IGESBasic_ExternalRefLibName;   break;
426     case  6 : ent = new IGESBasic_ExternalRefName;      break;
427     case  7 : ent = new IGESBasic_ExternalReferenceFile;        break;
428     case  8 : ent = new IGESBasic_Group;                break;
429     case  9 : ent = new IGESBasic_GroupWithoutBackP;    break;
430     case 10 : ent = new IGESBasic_Hierarchy;            break;
431     case 11 : ent = new IGESBasic_Name;                 break;
432     case 12 : ent = new IGESBasic_OrderedGroup;         break;
433     case 13 : ent = new IGESBasic_OrderedGroupWithoutBackP;     break;
434     case 14 : ent = new IGESBasic_SingleParent;         break;
435     case 15 : ent = new IGESBasic_SingularSubfigure;    break;
436     case 16 : ent = new IGESBasic_SubfigureDef;         break;
437     default : return Standard_False;    // by default, Failure on Recognize
438   }
439   return Standard_True;
440 }
441
442
443     void  IGESBasic_GeneralModule::OwnCopyCase
444   (const Standard_Integer CN,
445    const Handle(IGESData_IGESEntity)& entfrom,
446    const Handle(IGESData_IGESEntity)& entto,
447    Interface_CopyTool& TC) const 
448 {
449   switch (CN) {
450     case  1 : {
451       DeclareAndCast(IGESBasic_AssocGroupType,enfr,entfrom);
452       DeclareAndCast(IGESBasic_AssocGroupType,ento,entto);
453       IGESBasic_ToolAssocGroupType tool;
454       tool.OwnCopy(enfr,ento,TC);
455     }
456       break;
457     case  2 : {
458       DeclareAndCast(IGESBasic_ExternalRefFile,enfr,entfrom);
459       DeclareAndCast(IGESBasic_ExternalRefFile,ento,entto);
460       IGESBasic_ToolExternalRefFile tool;
461       tool.OwnCopy(enfr,ento,TC);
462     }
463       break;
464     case  3 : {
465       DeclareAndCast(IGESBasic_ExternalRefFileIndex,enfr,entfrom);
466       DeclareAndCast(IGESBasic_ExternalRefFileIndex,ento,entto);
467       IGESBasic_ToolExternalRefFileIndex tool;
468       tool.OwnCopy(enfr,ento,TC);
469     }
470       break;
471     case  4 : {
472       DeclareAndCast(IGESBasic_ExternalRefFileName,enfr,entfrom);
473       DeclareAndCast(IGESBasic_ExternalRefFileName,ento,entto);
474       IGESBasic_ToolExternalRefFileName tool;
475       tool.OwnCopy(enfr,ento,TC);
476     }
477       break;
478     case  5 : {
479       DeclareAndCast(IGESBasic_ExternalRefLibName,enfr,entfrom);
480       DeclareAndCast(IGESBasic_ExternalRefLibName,ento,entto);
481       IGESBasic_ToolExternalRefLibName tool;
482       tool.OwnCopy(enfr,ento,TC);
483     }
484       break;
485     case  6 : {
486       DeclareAndCast(IGESBasic_ExternalRefName,enfr,entfrom);
487       DeclareAndCast(IGESBasic_ExternalRefName,ento,entto);
488       IGESBasic_ToolExternalRefName tool;
489       tool.OwnCopy(enfr,ento,TC);
490     }
491       break;
492     case  7 : {
493       DeclareAndCast(IGESBasic_ExternalReferenceFile,enfr,entfrom);
494       DeclareAndCast(IGESBasic_ExternalReferenceFile,ento,entto);
495       IGESBasic_ToolExternalReferenceFile tool;
496       tool.OwnCopy(enfr,ento,TC);
497     }
498       break;
499     case  8 : {
500       DeclareAndCast(IGESBasic_Group,enfr,entfrom);
501       DeclareAndCast(IGESBasic_Group,ento,entto);
502       IGESBasic_ToolGroup tool;
503       tool.OwnCopy(enfr,ento,TC);
504     }
505       break;
506     case  9 : {
507       DeclareAndCast(IGESBasic_GroupWithoutBackP,enfr,entfrom);
508       DeclareAndCast(IGESBasic_GroupWithoutBackP,ento,entto);
509       IGESBasic_ToolGroupWithoutBackP tool;
510       tool.OwnCopy(enfr,ento,TC);
511     }
512       break;
513     case 10 : {
514       DeclareAndCast(IGESBasic_Hierarchy,enfr,entfrom);
515       DeclareAndCast(IGESBasic_Hierarchy,ento,entto);
516       IGESBasic_ToolHierarchy tool;
517       tool.OwnCopy(enfr,ento,TC);
518     }
519       break;
520     case 11 : {
521       DeclareAndCast(IGESBasic_Name,enfr,entfrom);
522       DeclareAndCast(IGESBasic_Name,ento,entto);
523       IGESBasic_ToolName tool;
524       tool.OwnCopy(enfr,ento,TC);
525     }
526       break;
527     case 12 : {
528       DeclareAndCast(IGESBasic_OrderedGroup,enfr,entfrom);
529       DeclareAndCast(IGESBasic_OrderedGroup,ento,entto);
530       IGESBasic_ToolOrderedGroup tool;
531       tool.OwnCopy(enfr,ento,TC);
532     }
533       break;
534     case 13 : {
535       DeclareAndCast(IGESBasic_OrderedGroupWithoutBackP,enfr,entfrom);
536       DeclareAndCast(IGESBasic_OrderedGroupWithoutBackP,ento,entto);
537       IGESBasic_ToolOrderedGroupWithoutBackP tool;
538       tool.OwnCopy(enfr,ento,TC);
539     }
540       break;
541     case 14 : {
542       DeclareAndCast(IGESBasic_SingleParent,enfr,entfrom);
543       DeclareAndCast(IGESBasic_SingleParent,ento,entto);
544       IGESBasic_ToolSingleParent tool;
545       tool.OwnCopy(enfr,ento,TC);
546     }
547       break;
548     case 15 : {
549       DeclareAndCast(IGESBasic_SingularSubfigure,enfr,entfrom);
550       DeclareAndCast(IGESBasic_SingularSubfigure,ento,entto);
551       IGESBasic_ToolSingularSubfigure tool;
552       tool.OwnCopy(enfr,ento,TC);
553     }
554       break;
555     case 16 : {
556       DeclareAndCast(IGESBasic_SubfigureDef,enfr,entfrom);
557       DeclareAndCast(IGESBasic_SubfigureDef,ento,entto);
558       IGESBasic_ToolSubfigureDef tool;
559       tool.OwnCopy(enfr,ento,TC);
560     }
561       break;
562     default : break;
563   }
564 }
565
566     Standard_Integer  IGESBasic_GeneralModule::CategoryNumber
567   (const Standard_Integer CN, const Handle(Standard_Transient)& ,
568    const Interface_ShareTool& ) const
569 {
570   if (CN == 10 || CN == 11) return Interface_Category::Number("Auxiliary");
571   if (CN >=  2 && CN <=  6) return Interface_Category::Number("Description");
572   return Interface_Category::Number("Structure");
573 }