String EngineExport::getFullyQualifiedExportName() const { if( getExportScope() ) { String parentQualifiedName = getExportScope()->getFullyQualifiedExportName(); if( parentQualifiedName.isEmpty() ) return getExportName(); return String::ToString( "%s::%s", parentQualifiedName.c_str(), getExportName() ); } return getExportName(); }
bool GenericDataTypeStruct::exportCode( GenericDataExportData& targetData, GenericDataTypeMode mode ) const { static const char* s_pBaseFormat = "\n" "\tstruct %s%s\n" "\t{\n" "%s" "\t};\n"; static const char* s_pBaseTypeFormat = " : public %s"; static const char* s_pFieldFormat = "\t\t%s %s;\n"; string fieldsCode; for (uint i = 0u; i < m_fields.getCount(); ++i) { const GenericDataStructField& field = m_fields[ i ]; if ( !isBitSet( field.mode, mode ) || field.isInherited ) { continue; } targetData.containsArray |= (field.pType->getType() == GenericDataTypeType_Array); targetData.containsString |= (field.pType->getName() == "string"); if (field.pType->getType() == GenericDataTypeType_Reference) { const GenericDataTypeReference* pRefType = (const GenericDataTypeReference*)field.pType; if ( !targetData.references.contains( pRefType ) ) { targetData.references.add( pRefType ); } } fieldsCode += formatString( s_pFieldFormat, field.pType->getExportName().cStr(), field.name.cStr() ); } string baseTypeCode; if ( m_pBaseType != nullptr ) { baseTypeCode = formatString( s_pBaseTypeFormat, m_pBaseType->getExportName().cStr() ); } targetData.code += formatString( s_pBaseFormat, getExportName().cStr(), baseTypeCode.cStr(), fieldsCode.cStr() ); return true; }