Пример #1
0
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();
}
Пример #2
0
	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;
	}