// write start of declaration (inheritance)
os << "//! Representation of STEP entity " << Name()->ToCString() << std::endl;
os << "class " << CPPname->ToCString() << " : public " << InheritName->ToCString();
- os << std::endl << "{" << std::endl;
+ os << std::endl << "{" << std::endl << std::endl;
os << "public :" << std::endl << std::endl;
// write constructor
// write Init methods
if ( myInherit->Length() > 1 || myFields->Length() > 0 ) {
os << " //! Initialize all fields (own and inherited)" << std::endl;
- os << " Standard_EXPORT void Init(";
- MakeInit ( os, 27, Standard_True, 0 );
+ os << " Standard_EXPORT void Init(";
+ MakeInit ( os, 28, Standard_True, 0 );
os << ");" << std::endl;
os << std::endl;
}
os << std::endl;
}
- os << "DEFINE_STANDARD_RTTIEXT(" << CPPname->ToCString() << ", " << InheritName->ToCString() << ")" << std::endl;
+ os << " DEFINE_STANDARD_RTTIEXT(" << CPPname->ToCString() << ", " << InheritName->ToCString() << ")" << std::endl;
os << std::endl;
// write fields section
if ( myInherit->Length() >1 || myFields->Length() >0 )
{
- os << "private:" << std::endl;
+ os << "private:" << std::endl << std::endl;
for (Standard_Integer i = 2; i <= myInherit->Length(); i++)
{
Handle(Express_Entity) it = myInherit->Value(i);
}
// write end
- os << "};" << std::endl;
+ os << "};" << std::endl << std::endl;
os << "#endif // _" << CPPname->ToCString() << "_HeaderFile_" << std::endl;
os.close();
os << "IMPLEMENT_STANDARD_RTTIEXT(" << CPPname->ToCString() << ", " << InheritName->ToCString() << ")" << std::endl;
// write constructor
- Express::WriteMethodStamp ( os, CPPname );
+ Express::WriteMethodStamp(os, CPPname);
os << CPPname->ToCString() << "::" << CPPname->ToCString() << " ()" << std::endl;
os << "{" << std::endl;
- for (Standard_Integer i=1; i <= myFields->Length(); i++ )
+ for (Standard_Integer i = 1; i <= myFields->Length(); i++)
{
- Handle(Express_Field) field = myFields->Value ( i );
- if ( field->IsOptional() ) os << " def" << field->Name()->ToCString() << " = Standard_False;" << std::endl;
+ Handle(Express_Field) field = myFields->Value(i);
+ if (field->IsOptional()) os << " def" << field->Name()->ToCString() << " = Standard_False;" << std::endl;
}
os << "}" << std::endl;
// write method Init()
- if ( myInherit->Length() >1 || myFields->Length() >0 )
+ if (myInherit->Length() > 1 || myFields->Length() > 0)
{
- Express::WriteMethodStamp ( os, new TCollection_HAsciiString ( "Init" ) );
+ Express::WriteMethodStamp(os, new TCollection_HAsciiString("Init"));
os << "void " << CPPname->ToCString() << "::Init (";
- MakeInit ( os, 13 + CPPname->Length(), Standard_True, 1 );
+ MakeInit(os, 13 + CPPname->Length(), Standard_True, 1);
os << ")\n{";
- MakeInit ( os, -2, Standard_True, 3 );
+ MakeInit(os, -2, Standard_True, 3);
os << "\n}" << std::endl;
}
// write "methods" section
- for (Standard_Integer i=2; i <= myInherit->Length(); i++ )
+ for (Standard_Integer i = 2; i <= myInherit->Length(); i++)
{
Handle(Express_Entity) it = myInherit->Value(i);
- WriteGetMethod ( os, CPPname, it->Name(), it->CPPName(), Standard_True, Standard_False );
- WriteSetMethod ( os, CPPname, it->Name(), it->CPPName(), Standard_True, Standard_False );
+ WriteGetMethod(os, CPPname, it->Name(), it->CPPName(), Standard_True, Standard_False);
+ WriteSetMethod(os, CPPname, it->Name(), it->CPPName(), Standard_True, Standard_False);
}
- for (Standard_Integer i=1; i <= myFields->Length(); i++ )
+ for (Standard_Integer i = 1; i <= myFields->Length(); i++)
{
- Handle(Express_Field) field = myFields->Value ( i );
+ Handle(Express_Field) field = myFields->Value(i);
Handle(Express_Type) type = field->Type();
- WriteGetMethod ( os, CPPname, field->Name(), type->CPPName(), type->IsHandle(), type->IsSimple() );
- WriteSetMethod ( os, CPPname, field->Name(), type->CPPName(), type->IsHandle(), type->IsSimple() );
+ WriteGetMethod(os, CPPname, field->Name(), type->CPPName(), type->IsHandle(), type->IsSimple());
+ WriteSetMethod(os, CPPname, field->Name(), type->CPPName(), type->IsHandle(), type->IsSimple());
if (!field->IsOptional())
{
continue;
}
- Handle(TCollection_HAsciiString) method = new TCollection_HAsciiString ( "Has" );
- method->AssignCat ( field->Name() );
- Express::WriteMethodStamp ( os, method );
+ Handle(TCollection_HAsciiString) method = new TCollection_HAsciiString("Has");
+ method->AssignCat(field->Name());
+ Express::WriteMethodStamp(os, method);
os << "Standard_Boolean " << CPPname->ToCString() << "::" << method->ToCString() << " () const" << std::endl;
os << "{" << std::endl << " return def" << field->Name()->ToCString() << ";\n}" << std::endl;
}
-
+
// close
os.close();
- if(AbstractFlag()) return Standard_True;
+ if (AbstractFlag()) return Standard_True;
//===============================
// Step 3: generating HXX for Reader/Writer class
-
+
// Open HXX file
- Handle(TCollection_HAsciiString) RWCPPName = new TCollection_HAsciiString ( "RW" );
- RWCPPName->AssignCat ( GetPackageName() );
- RWCPPName->AssignCat ( "_RW" );
- RWCPPName->AssignCat ( Name() );
+ Handle(TCollection_HAsciiString) RWCPPName = new TCollection_HAsciiString("RW");
+ RWCPPName->AssignCat(GetPackageName());
+ RWCPPName->AssignCat("_RW");
+ RWCPPName->AssignCat(Name());
pack = "RW";
pack += GetPackageName()->String();
- OSD_Path rwpath ( pack );
- OSD_Directory rwdir ( rwpath );
- rwdir.Build ( prot );
+ OSD_Path rwpath(pack);
+ OSD_Directory rwdir(rwpath);
+ rwdir.Build(prot);
pack += "/";
pack += RWCPPName->String();
-
- os.open ( pack.Cat ( ".hxx" ).ToCString() );
+
+ os.open(pack.Cat(".hxx").ToCString());
// write header
- Express::WriteFileStamp ( os );
+ Express::WriteFileStamp(os);
os << "#ifndef _" << RWCPPName->ToCString() << "_HeaderFile_" << std::endl;
os << "#define _" << RWCPPName->ToCString() << "_HeaderFile_" << std::endl;
// write start of declaration (inheritance)
os << "//! Read & Write tool for " << Name()->ToCString() << std::endl;
os << "class " << RWCPPName->ToCString() << std::endl;
- os << "{" << std::endl;
+ os << "{" << std::endl << std::endl;
os << "public:" << std::endl;
os << std::endl << " DEFINE_STANDARD_ALLOC" << std::endl << std::endl;
os << " Standard_EXPORT " << RWCPPName->ToCString() << "();" << std::endl << std::endl;
// read step
- os << " Standard_EXPORT void ReadStep(const Handle(StepData_StepReaderData)& data," <<
- " const Standard_Integer num, Handle(Interface_Check)& ach, const Handle(" <<
- CPPName()->ToCString() << ")& ent) const;" << std::endl << std::endl;
+ os << " Standard_EXPORT void ReadStep(const Handle(StepData_StepReaderData)& data," << std::endl;
+ os << " const Standard_Integer num," << std::endl;
+ os << " Handle(Interface_Check)& ach," << std::endl;
+ os << " const Handle(" << CPPName()->ToCString() << ")& ent) const;"
+ << std::endl << std::endl;
// write step
- os << " Standard_EXPORT void WriteStep(StepData_StepWriter& SW, const Handle(" <<
- CPPName()->ToCString() << ")& ent) const;" << std::endl << std::endl;
+ os << " Standard_EXPORT void WriteStep(StepData_StepWriter& SW," << std::endl;
+ os << " const Handle(" << CPPName()->ToCString() << ")& ent) const;"
+ << std::endl << std::endl;
// share
- os << " Standard_EXPORT void Share(const Handle(" <<
- CPPName()->ToCString() << ")& ent, Interface_EntityIterator& iter) const;" << std::endl << std::endl;
+ os << " Standard_EXPORT void Share(const Handle(" << CPPName()->ToCString() << ")& ent," << std::endl;
+ os << " Interface_EntityIterator& iter) const;" << std::endl << std::endl;
// write end
- os << "};" << std::endl;
+ os << "};" << std::endl << std::endl;
os << "#endif // _" << RWCPPName->ToCString() << "_HeaderFile_" << std::endl;
os.close();
// write method ReadStep
Express::WriteMethodStamp(os, new TCollection_HAsciiString("ReadStep"));
- os << "void " << RWCPPName->ToCString() << "::ReadStep (const Handle(StepData_StepReaderData)& data," << std::endl;
- WriteSpaces ( os, 17 + RWCPPName->Length() );
- os << "const Standard_Integer num," << std::endl;
- WriteSpaces ( os, 17 + RWCPPName->Length() );
- os << "Handle(Interface_Check)& ach," << std::endl;
- WriteSpaces ( os, 17 + RWCPPName->Length() );
- os << "const Handle(" << CPPname->ToCString() << ")& ent) const" << std::endl;
+ if (RWCPPName->Length() < 40)
+ {
+ os << "void " << RWCPPName->ToCString() << "::ReadStep (const Handle(StepData_StepReaderData)& data," << std::endl;
+ WriteSpaces(os, 17 + RWCPPName->Length());
+ os << "const Standard_Integer num," << std::endl;
+ WriteSpaces(os, 17 + RWCPPName->Length());
+ os << "Handle(Interface_Check)& ach," << std::endl;
+ WriteSpaces(os, 17 + RWCPPName->Length());
+ os << "const Handle(" << CPPname->ToCString() << ")& ent) const" << std::endl;
+ }
+ else
+ {
+ os << "void " << RWCPPName->ToCString() << "::ReadStep(" << std::endl;
+ os << " const Handle(StepData_StepReaderData)& data," << std::endl;
+ os << " const Standard_Integer num," << std::endl;
+ os << " Handle(Interface_Check)& ach," << std::endl;
+ os << " const Handle(" << CPPname->ToCString() << ")& ent) const" << std::endl;
+ }
os << "{" << std::endl;
Standard_Integer nbFld = NbFields ( Standard_True );
os << " // Check number of parameters" << std::endl;
- os << " if ( ! data->CheckNbParams(num," << nbFld << ",ach,\"" <<
- Express::ToStepName(Name())->ToCString() << "\") ) return;" << std::endl;
+ os << " if (!data->CheckNbParams(num, " << nbFld << ", ach, \"" <<
+ Express::ToStepName(Name())->ToCString() << "\"))" << std::endl;
+ os << " {" << std::endl;
+ os << " return;" << std::endl;
+ os << " }" << std::endl;
WriteRWReadCode(os, 1, Standard_True); // write code for reading inherited and own fields
os << std::endl;
os << " // Initialize entity" << std::endl;
// write method WriteStep
Express::WriteMethodStamp ( os, new TCollection_HAsciiString ( "WriteStep" ) );
- os << "void " << RWCPPName->ToCString() << "::WriteStep (StepData_StepWriter& SW," << std::endl;
- WriteSpaces ( os, 18 + RWCPPName->Length() );
- os << "const Handle(" << CPPname->ToCString() << ")& ent) const" << std::endl;
+ if (RWCPPName->Length() < 40)
+ {
+ os << "void " << RWCPPName->ToCString() << "::WriteStep (StepData_StepWriter& SW," << std::endl;
+ WriteSpaces(os, 18 + RWCPPName->Length());
+ os << "const Handle(" << CPPname->ToCString() << ")& ent) const" << std::endl;
+ }
+ else
+ {
+ os << "void " << RWCPPName->ToCString() << "::WriteStep(" << std::endl;
+ os << " StepData_StepWriter& SW," << std::endl;
+ os << " const Handle(" << CPPname->ToCString() << ")& ent) const" << std::endl;
+ }
os << "{" << std::endl;
WriteRWWriteCode(os, 0, Standard_True); // write code for writing inherited and own fields
// write method Share
Express::WriteMethodStamp ( os, new TCollection_HAsciiString ( "Share" ) );
- os << "void " << RWCPPName->ToCString() << "::Share (const Handle(" << CPPname->ToCString() << ")& ent," << std::endl;
- WriteSpaces ( os, 14 + RWCPPName->Length() );
- os << "Interface_EntityIterator& iter) const" << std::endl;
+ if (RWCPPName->Length() < 40)
+ {
+ os << "void " << RWCPPName->ToCString() << "::Share (const Handle(" << CPPname->ToCString() << ")& ent," << std::endl;
+ WriteSpaces(os, 14 + RWCPPName->Length());
+ os << "Interface_EntityIterator& iter) const" << std::endl;
+ }
+ else
+ {
+ os << "void " << RWCPPName->ToCString() << "::Share(" << std::endl;
+ os << " const Handle(" << CPPname->ToCString() << ")& ent," << std::endl;
+ os << " Interface_EntityIterator& iter) const" << std::endl;
+ }
os << "{" << std::endl;
WriteRWShareCode ( os, 1, Standard_True ); // write code for filling graph of references
os << "}" << std::endl;
if (optional)
{
os << shift << "Standard_Boolean has" << varname << " = Standard_True;" << std::endl;
- os << shift << "if ( data->IsParamDefined (" << param << "," << index << ") ) {" << std::endl;
+ os << shift << "if (data->IsParamDefined(" << param << ", " << index << "))" << std::endl;
+ os << shift << "{" << std::endl;
shift += " ";
level++;
}
Handle(Express_NamedType) named = Handle(Express_NamedType)::DownCast(type);
if (named->Item()->IsKind(STANDARD_TYPE(Express_Entity)))
{
- os << shift << "data->ReadEntity (" << param << ", " << index << ", \"" << STEPName <<
- "\", ach, STANDARD_TYPE(" << named->CPPName()->ToCString() << "), a" <<
- varname << ");" << std::endl;
+ os << shift << "data->ReadEntity(" << param << ", " << index << ", \"" << STEPName << "\", ach," << std::endl;
+ os << shift << " STANDARD_TYPE(" << named->CPPName()->ToCString() << "), a" << varname << ");" << std::endl;
}
else if (named->Item()->IsKind(STANDARD_TYPE(Express_Select)))
{
- os << shift << "data->ReadEntity (" << param << ", " << index << ", \"" << STEPName <<
+ os << shift << "data->ReadEntity(" << param << ", " << index << ", \"" << STEPName <<
"\", ach, a" << varname << ");" << std::endl;
}
else if (named->Item()->IsKind(STANDARD_TYPE(Express_Enum)))
{
- os << shift << "if (data->ParamType (" << param << ", " <<
- index << ") == Interface_ParamEnum) {" << std::endl;
+ os << shift << "if (data->ParamType(" << param << ", " <<
+ index << ") == Interface_ParamEnum)" << std::endl;
+ os << shift << "{" << std::endl;
os << shift << " Standard_CString text = data->ParamCValue(" <<
param << ", " << index << ");" << std::endl;
Handle(Express_Enum) en = Handle(Express_Enum)::DownCast(named->Item());
varname << " = " << enpack.ToCString() << "_" << prefix->ToCString() <<
names->Value(i)->ToCString() << ";" << std::endl;
}
- os << shift << " else ach->AddFail(\"Parameter #" << index << " (" <<
- STEPName << ") has not allowed value\");" << std::endl;
+ os << shift << " else" << std::endl;
+ os << shift << " {" << std::endl;
+ os << shift << " ach->AddFail(\"Parameter #" << index << " (" << STEPName
+ << ") has not allowed value\");" << std::endl;
+ os << shift << " }" << std::endl;
+ os << shift << "}" << std::endl;
+ os << shift << "else" << std::endl;
+ os << shift << "{" << std::endl;
+ os << shift << " ach->AddFail(\"Parameter #" << index << " (" << STEPName
+ << ") is not enumeration\");" << std::endl;
os << shift << "}" << std::endl;
- os << shift << "else ach->AddFail(\"Parameter #" << index << " (" <<
- STEPName << ") is not enumeration\");" << std::endl;
//os << "!!! READING/WRITING ENUM NOT IMPLEMENTED !!!" << std::endl;
//std::cout << "Warning: Reading/Writing ENUMERATION not yet implemented (" <<
//STEPName << ", " << varname << ", " << type->CPPName()->ToCString() << ")" << std::endl;
{
Handle(Express_ComplexType) complex = Handle(Express_ComplexType)::DownCast(type);
os << shift << "Standard_Integer sub" << index << " = 0;" << std::endl;
- os << shift << "if ( data->ReadSubList (" << param << ", " << index << ", \"" <<
- STEPName << "\", ach, sub" << index << ") ) {" << std::endl;
+ os << shift << "if (data->ReadSubList(" << param << ", " << index << ", \"" <<
+ STEPName << "\", ach, sub" << index << "))" << std::endl;
+ os << shift << "{" << std::endl;
os << shift << " Standard_Integer nb" << lev << " = data->NbParams(sub" << index << ");" << std::endl;
TCollection_AsciiString iter = lev;
iter.Prepend("i");
os << shift << " Standard_Integer nbj" << lev <<
" = data->NbParams(data->ParamNumber(sub" << index << ",1));" << std::endl;
os << shift << " a" << varname << " = new " << type->CPPName()->ToCString() <<
- " (1, nb" << lev << ", 1, nbj" << lev << ");" << std::endl;
- os << shift << " for ( Standard_Integer " << iter << "=1; " << iter << " <= nb" << lev <<
- "; " << iter << "++ ) {" << std::endl;
+ "(1, nb" << lev << ", 1, nbj" << lev << ");" << std::endl;
+ os << shift << " for (Standard_Integer " << iter << " = 1; " << iter << " <= nb"
+ << lev << "; " << iter << "++)" << std::endl;
+ os << shift << " {" << std::endl;
os << shift << " Standard_Integer subj" << index << " = 0;" << std::endl;
os << shift << " if ( data->ReadSubList (sub" << index << ", " << iter << ", \"sub-part(" <<
STEPName << ")\", ach, subj" << index << ") ) {" << std::endl;
os << shift << " Standard_Integer num" << level + 2 << " = subj" << index << ";" << std::endl;
- os << shift << " for ( Standard_Integer " << jter << "=1; " << jter << " <= nbj" << lev <<
- "; " << jter << "++ ) {" << std::endl;
+ os << shift << " for (Standard_Integer " << jter << " = 1; " << jter << " <= nbj" << lev <<
+ "; " << jter << "++)" << std::endl;
+ os << shift << " {" << std::endl;
Handle(TCollection_HAsciiString) subName = typeToSTEPName(complex2->Type());
WriteRWReadField(os, jter.ToCString(), subName->ToCString(), var.ToCString(),
complex2->Type(), level + 2, Standard_False);
else
{ // simple array
os << shift << " a" << varname << " = new " << type->CPPName()->ToCString() <<
- " (1, nb" << lev << ");" << std::endl;
+ "(1, nb" << lev << ");" << std::endl;
os << shift << " Standard_Integer num" << level << " = sub" << index << ";" << std::endl;
- os << shift << " for ( Standard_Integer " << iter << "=1; " << iter << " <= nb" << lev <<
- "; " << iter << "++ ) {" << std::endl;
+ os << shift << " for (Standard_Integer " << iter << " = 1; " << iter << " <= nb" << lev <<
+ "; " << iter << "++)" << std::endl;
+ os << shift << " {" << std::endl;
Handle(TCollection_HAsciiString) subName = typeToSTEPName(complex->Type());
WriteRWReadField(os, iter.ToCString(), subName->ToCString(), var.ToCString(),
complex->Type(), level, Standard_False);
}
else if (type->IsKind(STANDARD_TYPE(Express_String)))
{
- os << shift << "data->ReadString (" << param << ", " << index << ", \"" << STEPName <<
- "\", ach, a" << varname << ");" << std::endl;
+ if (strlen(STEPName) + strlen(varname) < 70)
+ {
+ os << shift << "data->ReadString(" << param << ", " << index << ", \"" << STEPName <<
+ "\", ach, a" << varname << ");" << std::endl;
+ }
+ else
+ {
+ os << shift << "data->ReadString(" << param << ", " << index << ", \"" << STEPName << "\", ach," << std::endl;
+ os << shift << " a" << varname << ");" << std::endl;
+ }
}
else if (type->IsKind(STANDARD_TYPE(Express_Logical)))
{
- os << shift << "data->ReadLogical (" << param << ", " << index << ", \"" << STEPName <<
+ os << shift << "data->ReadLogical(" << param << ", " << index << ", \"" << STEPName <<
"\", ach, a" << varname << ");" << std::endl;
}
else if (type->IsKind(STANDARD_TYPE(Express_Boolean)))
{
- os << shift << "data->ReadBoolean (" << param << ", " << index << ", \"" << STEPName <<
+ os << shift << "data->ReadBoolean(" << param << ", " << index << ", \"" << STEPName <<
"\", ach, a" << varname << ");" << std::endl;
}
else if (type->IsKind(STANDARD_TYPE(Express_Number)) || type->IsKind(STANDARD_TYPE(Express_Integer)))
{
- os << shift << "data->ReadInteger (" << param << ", " << index << ", \"" << STEPName <<
+ os << shift << "data->ReadInteger(" << param << ", " << index << ", \"" << STEPName <<
"\", ach, a" << varname << ");" << std::endl;
}
else if (type->IsKind(STANDARD_TYPE(Express_Real)))
{
- os << shift << "data->ReadReal (" << param << ", " << index << ", \"" << STEPName <<
+ os << shift << "data->ReadReal(" << param << ", " << index << ", \"" << STEPName <<
"\", ach, a" << varname << ");" << std::endl;
}
{
shift.Remove(1, 2);
os << shift << "}" << std::endl;
- os << shift << "else {" << std::endl;
+ os << shift << "else" << std::endl;
+ os << shift << "{" << std::endl;
os << shift << " has" << varname << " = Standard_False;" << std::endl;
os << shift << " a" << varname;
if (type->IsHandle())
TCollection_AsciiString var(lev);
var.Prepend("Var");
os << shift << "SW.OpenSub();" << std::endl;
- os << shift << "for (Standard_Integer i" << index << "=1; i" << index << " <= ";
+ os << shift << "for (Standard_Integer i" << index << " = 1; i" << index << " <= ";
if (type->IsKind(STANDARD_TYPE(Express_ComplexType)))
{ // array 2
Handle(Express_ComplexType) complex2 = Handle(Express_ComplexType)::DownCast(type);
type = complex2->Type();
- os << varname << "->RowLength(); i" << index << "++ ) {" << std::endl;
+ os << varname << "->RowLength(); i" << index << "++)" << std::endl;
+ os << shift << "{" << std::endl;
os << shift << " SW.NewLine(Standard_False);" << std::endl;
os << shift << " SW.OpenSub();" << std::endl;
- os << shift << " for (Standard_Integer j" << index << "=1; j" << index << " <= " <<
- varname << "->ColLength(); j" << index << "++ ) {" << std::endl;
+ os << shift << " for (Standard_Integer j" << index << " = 1; j" << index << " <= " <<
+ varname << "->ColLength(); j" << index << "++)" << std::endl;
+ os << shift << " {" << std::endl;
os << shift << " " << (type->IsHandle() ? " Handle(" : " ") << type->CPPName()->ToCString() <<
(type->IsHandle() ? ") " : " ") << var.ToCString() << " = " <<
varname << "->Value(i" << index << ",j" << index << ");" << std::endl;
}
else
{ // simple array
- os << varname << "->Length(); i" << index << "++ ) {" << std::endl;
+ os << varname << "->Length(); i" << index << "++)" << std::endl;
+ os << shift << "{" << std::endl;
os << shift << (type->IsHandle() ? " Handle(" : " ") << type->CPPName()->ToCString() <<
(type->IsHandle() ? ") " : " ") << var.ToCString() << " = " <<
varname << "->Value(i" << index << ");" << std::endl;
}
else if (type->IsKind(STANDARD_TYPE(Express_Boolean)))
{
- os << shift << "SW.SendBoolean (" << varname << ");" << std::endl;
+ os << shift << "SW.SendBoolean(" << varname << ");" << std::endl;
}
else if (type->IsKind(STANDARD_TYPE(Express_Logical)))
{
- os << shift << "SW.SendLogical (" << varname << ");" << std::endl;
+ os << shift << "SW.SendLogical(" << varname << ");" << std::endl;
}
else
{
Handle(TCollection_HAsciiString) prefix = Express::EnumPrefix(en->Name());
Handle(TColStd_HSequenceOfHAsciiString) names = en->Names();
TCollection_AsciiString enpack = en->GetPackageName()->String();
- os << shift << "switch (" << varname << ") {" << std::endl;
+ os << shift << "switch (" << varname << ")" << std::endl;
+ os << shift << "{" << std::endl;
for (Standard_Integer i = 1; i <= names->Length(); i++)
{
Handle(TCollection_HAsciiString) ename = Express::ToStepName(names->Value(i));
ename->UpperCase();
os << shift << " case " << enpack.ToCString() << "_" << prefix->ToCString() <<
- names->Value(i)->ToCString() << ": SW.SendEnum (\"." <<
+ names->Value(i)->ToCString() << ": SW.SendEnum(\"." <<
ename->ToCString() << ".\"); break;" << std::endl;
}
os << shift << "}" << std::endl;
}
else
{
- os << shift << "SW.Send (" << varname;
+ os << shift << "SW.Send(" << varname;
if (!named.IsNull() && named->Item()->IsKind(STANDARD_TYPE(Express_Select)))
{
os << ".Value()";
os << " // " << ( own == 1 ? "Own" : "Inherited" ) << " fields of " << Name()->ToCString() << std::endl;
}
- for (Standard_Integer i=1; i <= myFields->Length(); i++ )
+ for (Standard_Integer i = 1; i <= myFields->Length(); i++)
{
Handle(Express_Field) field = myFields->Value(i);
TCollection_AsciiString varName ( field->Name()->String() );
if (field->IsOptional())
{
- os << " if ( ent->";
+ os << " if (ent->";
if (!own)
{
os << CPPName()->ToCString() << "::";
{
os << Name()->ToCString() << "()->";
}
- os << "Has" << field->Name()->ToCString() << "() ) {" << std::endl;
+ os << "Has" << field->Name()->ToCString() << "())" << std::endl;
+ os << " {" << std::endl;
}
WriteRWWriteField(os, varName.ToCString(), field->Type(), num, (field->IsOptional() ? 1 : 0));
if (field->IsOptional())
{
- os << " }\n else SW.SendUndef();" << std::endl;
+ os << " }" << std::endl;
+ os << " else" << std::endl;
+ os << " {" << std::endl;
+ os << " SW.SendUndef();" << std::endl;
+ os << " }" << std::endl;
}
num++;
}
{
return Standard_False;
}
- os << shift << "for (Standard_Integer i" << index << "=1; i" << index << " <= " <<
- varname << "->Length(); i" << index << "++ ) {" << std::endl;
+ os << shift << "for (Standard_Integer i" << index << " = 1; i" << index << " <= " <<
+ varname << "->Length(); i" << index << "++)" << std::endl;
+ os << shift << "{" << std::endl;
os << shift << (type->IsHandle() ? " Handle(" : " ") << type->CPPName()->ToCString() <<
(type->IsHandle() ? ") " : " ") << var.ToCString() << " = " <<
varname << "->Value(i" << index << ");" << std::endl;
Handle(Express_NamedType) named = Handle(Express_NamedType)::DownCast(type);
if (named->Item()->IsKind(STANDARD_TYPE(Express_Entity)))
{
- os << shift << "iter.AddItem (" << varname << ");" << std::endl;
+ os << shift << "iter.AddItem(" << varname << ");" << std::endl;
return Standard_True;
}
if (named->Item()->IsKind(STANDARD_TYPE(Express_Select)))
{
- os << shift << "iter.AddItem (" << varname << ".Value());" << std::endl;
+ os << shift << "iter.AddItem(" << varname << ".Value());" << std::endl;
return Standard_True;
}
}
os << " // " << ( own == 1 ? "Own" : "Inherited" ) << " fields of " << Name()->ToCString() << std::endl;
}
- for (Standard_Integer i=1; i <= myFields->Length(); i++ )
+ for (Standard_Integer i = 1; i <= myFields->Length(); i++)
{
Handle(Express_Field) field = myFields->Value(i);
- TCollection_AsciiString varName ( field->Name()->String() );
+ TCollection_AsciiString varName(field->Name()->String());
if (!own)
{
varName.Prepend(CPPName()->Cat("::")->String());
}
- else if ( own ==-1 )
+ else if (own == -1)
{ // inherited base class implemented as field
- varName.Prepend ( Name()->Cat ( "()->" )->String() );
+ varName.Prepend(Name()->Cat("()->")->String());
}
- varName.Prepend ( "ent->" );
- varName.AssignCat ( "()" );
-
+ varName.Prepend("ent->");
+ varName.AssignCat("()");
+
std::ostringstream oos;
if (!WriteRWShareField(oos, varName.ToCString(), field->Type(), num, (field->IsOptional() ? 1 : 0)))
{
os << std::endl;
if (field->IsOptional())
{
- os << " if ( ent->";
- if ( ! own ) os << CPPName()->ToCString() << "::";
- else if ( own ==-1 ) os << Name()->ToCString() << "()->";
- os << "Has" << field->Name()->ToCString() << "() ) {" << std::endl;
+ os << " if (ent->";
+ if (!own) os << CPPName()->ToCString() << "::";
+ else if (own == -1) os << Name()->ToCString() << "()->";
+ os << "Has" << field->Name()->ToCString() << "())" << std::endl;
+ os << " {" << std::endl;
}
os << oos.str();
Standard_Character delim = (mode == 0 ? ',' : (mode == 3 ? '\n' : ','));
if (sh < 0)
{
- os << delim << "\n" << space;
+ if (i == 1 && myInherit->Length() == 0 && mode == 3)
+ {
+ os << delim << space;
+
+ }
+ else
+ {
+ os << delim << "\n" << space;
+ }
}
else
{
if (field->IsOptional())
{
os << "def" << field->Name()->ToCString() << " = has" << varName->ToCString() << ";" << std::endl;
- os << " if (def" << field->Name()->ToCString() << ") {\n ";
- }
- os << "my" << field->Name()->ToCString() << " = the" << varName->ToCString() << ";";
- if (field->IsOptional())
- {
- os << "\n }\n else my" << field->Name()->ToCString();
+ os << " if (def" << field->Name()->ToCString() << ")" << std::endl;
+ os << " {" << std::endl;
+ os << " my" << field->Name()->ToCString() << " = the" << varName->ToCString() << ";";
+ os << "\n }" << std::endl;
+ os << " else" << std::endl;
+ os << " {" << std::endl;
+ os << " my" << field->Name()->ToCString();
if (field->Type()->IsHandle())
{
os << ".Nullify();";
{
os << " = " << field->Type()->CPPName()->ToCString() << "();";
}
+ os << "\n }";
+ }
+ else
+ {
+ os << "my" << field->Name()->ToCString() << " = the" << varName->ToCString() << ";";
}
}
if (sh > 0)