0028643: Coding rules - eliminate GCC compiler warnings -Wmisleading-indentation
[occt.git] / src / APIHeaderSection / APIHeaderSection_EditHeader.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 <APIHeaderSection_EditHeader.hxx>
16 #include <APIHeaderSection_MakeHeader.hxx>
17 #include <IFSelect_EditForm.hxx>
18 #include <Interface_InterfaceModel.hxx>
19 #include <Interface_TypedValue.hxx>
20 #include <Standard_Transient.hxx>
21 #include <Standard_Type.hxx>
22 #include <StepData_StepModel.hxx>
23 #include <TCollection_AsciiString.hxx>
24 #include <TCollection_HAsciiString.hxx>
25
26 IMPLEMENT_STANDARD_RTTIEXT(APIHeaderSection_EditHeader,IFSelect_Editor)
27
28 static Standard_Boolean IsTimeStamp
29   (const Handle(TCollection_HAsciiString)& val)
30 {
31   if (val.IsNull()) return Standard_False;
32   if (val->Length() != 19) return Standard_False;
33 //  On y va
34   char dizmois = val->Value(6);
35   char dizjour = val->Value(9);
36   char dizheur = val->Value(12);
37   for (Standard_Integer i = 1; i <= 19; i ++)
38   {
39     char uncar = val->Value(i);
40     switch (i) {
41     case  1 : if (uncar != '1' && uncar != '2') return Standard_False;
42       break;
43     case  2 :
44     case  3 :
45     case  4 : if (uncar < '0' || uncar > '9') return Standard_False;
46       break;
47     case  5 : if (uncar != '-') return Standard_False;
48     case  6 : if (uncar != '0' && uncar != '1') return Standard_False;
49       break;
50     case  7 : if (uncar < '0' || uncar > '9') return Standard_False;
51       if (dizmois == '1' && (uncar < '0' || uncar > '2')) return Standard_False;
52       break;
53     case  8 : if (uncar != '-') return Standard_False;
54     case  9 : if (uncar < '0' || uncar > '3') return Standard_False;
55       break;
56     case 10 : if (uncar < '0' || uncar > '9') return Standard_False;
57       if (dizjour == '3' && (uncar != '0' && uncar != '1')) return Standard_False;
58       break;
59     case 11 : if (uncar != 'T') return Standard_False;
60     case 12 : if (uncar < '0' || uncar > '2') return Standard_False;
61       break;
62     case 13 : if (uncar < '0' || uncar > '9') return Standard_False;
63       if (dizheur == '2' && (uncar < '0' || uncar > '3')) return Standard_False;
64       break;
65     case 14 : if (uncar != ':') return Standard_False;
66     case 15 : if (uncar < '0' || uncar > '5') return Standard_False;
67       break;
68     case 16 : if (uncar < '0' || uncar > '9') return Standard_False;
69       break;
70     case 17 : if (uncar != ':') return Standard_False;
71     case 18 : if (uncar < '0' || uncar > '5') return Standard_False;
72       break;
73     case 19 : if (uncar < '0' || uncar > '9') return Standard_False;
74       break;
75     default :
76       break;
77     }
78   }
79   return Standard_True;
80 }
81
82
83     APIHeaderSection_EditHeader::APIHeaderSection_EditHeader  ()
84     : IFSelect_Editor (10)
85 {
86 //  Definition
87   Handle(Interface_TypedValue) fn_name = new Interface_TypedValue("fn_name");
88   SetValue (1,fn_name,"name");
89   Handle(Interface_TypedValue) fn_time = new Interface_TypedValue("fn_time_stamp");
90   fn_time->SetSatisfies (IsTimeStamp,"IsTimeStamp");
91   SetValue (2,fn_time,"time");
92   Handle(Interface_TypedValue) fn_author = new Interface_TypedValue("fn_author");
93   SetValue (3,fn_author,"author");  // 1 seul (1er de liste)
94   Handle(Interface_TypedValue) fn_org = new Interface_TypedValue("fn_organization");
95   SetValue (4,fn_org,"org");  // 1 seul (1er de liste)
96   Handle(Interface_TypedValue) fn_preproc = new Interface_TypedValue("fn_preprocessor_version");
97   SetValue (5,fn_preproc,"preproc");
98   Handle(Interface_TypedValue) fn_orig = new Interface_TypedValue("fn_originating_system");
99   SetValue (6,fn_orig,"orig");
100   Handle(Interface_TypedValue) fn_autorize = new Interface_TypedValue("fn_authorization");
101   SetValue (7,fn_autorize,"autorize");
102
103   Handle(Interface_TypedValue) fs_schema = new Interface_TypedValue("fs_schema_identifiers");
104   SetValue (8,fs_schema,"schema");  // 1 seul (1er de liste)
105
106   Handle(Interface_TypedValue) fd_descr = new Interface_TypedValue("fd_description");
107   SetValue (9,fd_descr,"descr");  // 1 seul (1er de liste)
108
109   Handle(Interface_TypedValue) fd_level = new Interface_TypedValue("fd_implementation_level");
110   SetValue (10,fd_level,"level");
111
112 }
113
114     TCollection_AsciiString  APIHeaderSection_EditHeader::Label () const
115       {  return TCollection_AsciiString ("Step Header");  }
116
117     Standard_Boolean  APIHeaderSection_EditHeader::Recognize
118   (const Handle(IFSelect_EditForm)& /*form*/) const
119 {  return Standard_True;  }  // ??
120
121     Handle(TCollection_HAsciiString)  APIHeaderSection_EditHeader::StringValue
122   (const Handle(IFSelect_EditForm)& /*form*/, const Standard_Integer num) const
123 {
124 //  Default Values
125   return TypedValue(num)->HStringValue();
126 }
127
128     Standard_Boolean  APIHeaderSection_EditHeader::Load
129   (const Handle(IFSelect_EditForm)& form,
130    const Handle(Standard_Transient)& /*ent*/,
131    const Handle(Interface_InterfaceModel)& model) const
132 {
133   Handle(StepData_StepModel) modl =
134     Handle(StepData_StepModel)::DownCast(model);
135   if (modl.IsNull()) return Standard_False;
136
137   APIHeaderSection_MakeHeader mkh (modl);
138
139   form->LoadValue (1 ,mkh.Name ());
140   form->LoadValue (2 ,mkh.TimeStamp ());
141   form->LoadValue (3 ,mkh.AuthorValue (1));
142   form->LoadValue (4 ,mkh.OrganizationValue (1));
143   form->LoadValue (5 ,mkh.PreprocessorVersion ());
144   form->LoadValue (6 ,mkh.OriginatingSystem ());
145   form->LoadValue (7 ,mkh.Authorisation ());
146
147   form->LoadValue (8 ,mkh.SchemaIdentifiersValue (1));
148
149   form->LoadValue (9 ,mkh.DescriptionValue (1));
150   form->LoadValue (10,mkh.ImplementationLevel ());
151
152   return Standard_True;
153 }
154
155     Standard_Boolean  APIHeaderSection_EditHeader::Apply
156   (const Handle(IFSelect_EditForm)& form,
157    const Handle(Standard_Transient)& /*ent*/,
158    const Handle(Interface_InterfaceModel)& model) const
159 {
160   Handle(StepData_StepModel) modl =
161     Handle(StepData_StepModel)::DownCast(model);
162   if (modl.IsNull()) return Standard_False;
163
164   APIHeaderSection_MakeHeader mkh (modl);
165
166   if (form->IsModified(1))  mkh.SetName (form->EditedValue(1));
167   if (form->IsModified(2))  mkh.SetTimeStamp (form->EditedValue(2));
168   if (form->IsModified(3))  mkh.SetAuthorValue (1,form->EditedValue(3));
169   if (form->IsModified(4))  mkh.SetOrganizationValue (1,form->EditedValue(4));
170   if (form->IsModified(5))  mkh.SetPreprocessorVersion (form->EditedValue(5));
171   if (form->IsModified(6))  mkh.SetOriginatingSystem (form->EditedValue(6));
172   if (form->IsModified(7))  mkh.SetAuthorisation (form->EditedValue(7));
173
174   if (form->IsModified(8))  mkh.SetSchemaIdentifiersValue (1,form->EditedValue(8));
175
176   if (form->IsModified(9))  mkh.SetDescriptionValue (1,form->EditedValue(9));
177   if (form->IsModified(10)) mkh.SetImplementationLevel (form->EditedValue(10));
178
179   mkh.Apply( Handle(StepData_StepModel)::DownCast(model) );
180
181   return Standard_True;
182 }