in src/foundation/PropertyValueInternalStatics.cpp [702:843]
foundation::string_t CPropertyValueInternalStatics::ToString(IPropertyValue *pPropertyValue)
{
foundation_assert(pPropertyValue);
foundation::PropertyType type;
pPropertyValue->get_Type(&type);
if(type == PropertyType_Empty)
{
return U("(null)");
}
else if(type == PropertyType_UInt8)
{
BYTE value;
pPropertyValue->GetUInt8(&value);
return toString(value);
}
else if(type == PropertyType_Int16)
{
INT16 value;
pPropertyValue->GetInt16(&value);
return toString(value);
}
else if(type == PropertyType_UInt16)
{
UINT16 value;
pPropertyValue->GetUInt16(&value);
return toString(value);
}
else if(type == PropertyType_Int32)
{
INT32 value;
pPropertyValue->GetInt32(&value);
return toString(value);
}
else if(type == PropertyType_UInt32)
{
UINT32 value;
pPropertyValue->GetUInt32(&value);
return toString(value);
}
else if(type == PropertyType_Int64)
{
INT64 value;
pPropertyValue->GetInt64(&value);
return toString(value);
}
else if(type == PropertyType_UInt64)
{
UINT64 value;
pPropertyValue->GetUInt64(&value);
return toString(value);
}
else if(type == PropertyType_Single)
{
FLOAT value;
pPropertyValue->GetSingle(&value);
return toString(value);
}
else if(type == PropertyType_Double)
{
DOUBLE value;
pPropertyValue->GetDouble(&value);
return toString(value);
}
else if(type == PropertyType_Boolean)
{
boolean value;
pPropertyValue->GetBoolean(&value);
return toString(value ? true:false);
}
else if(type == PropertyType_String)
{
foundation::HStringPtr hstr;
pPropertyValue->GetString(hstr.GetAddressOf());
return toString(hstr);
}
else if (type == PropertyType_DateTime)
{
foundation::DateTime dateTime;
pPropertyValue->GetDateTime(&dateTime);
return ToString(dateTime);
}
else if (type == PropertyType_Guid)
{
IID iid;
pPropertyValue->GetGuid(&iid);
return _TO_PAL_STR(::ToString(iid).c_str());
}
else if(type == PropertyType_Int32Array)
{
return toString<foundation::Int32ArrayWrapper,INT32,&IPropertyValue::GetInt32Array>(pPropertyValue);
}
else if(type == PropertyType_UInt8Array)
{
return toString<foundation::UInt8ArrayWrapper,BYTE,&IPropertyValue::GetUInt8Array>(pPropertyValue);
}
else if(type == PropertyType_Int16Array)
{
return toString<foundation::Int16ArrayWrapper,INT16,&IPropertyValue::GetInt16Array>(pPropertyValue);
}
else if(type == PropertyType_UInt16Array)
{
return toString<foundation::UInt16ArrayWrapper,UINT16,&IPropertyValue::GetUInt16Array>(pPropertyValue);
}
else if(type == PropertyType_Int32Array)
{
return toString<foundation::Int32ArrayWrapper,INT32,&IPropertyValue::GetInt32Array>(pPropertyValue);
}
else if(type == PropertyType_UInt32Array)
{
return toString<foundation::UInt32ArrayWrapper,UINT32,&IPropertyValue::GetUInt32Array>(pPropertyValue);
}
else if(type == PropertyType_Int64Array)
{
return toString<foundation::Int64ArrayWrapper,INT64,&IPropertyValue::GetInt64Array>(pPropertyValue);
}
else if(type == PropertyType_UInt64Array)
{
return toString<foundation::UInt64ArrayWrapper,UINT64,&IPropertyValue::GetUInt64Array>(pPropertyValue);
}
else if(type == PropertyType_SingleArray)
{
return toString<foundation::SingleArrayWrapper,FLOAT,&IPropertyValue::GetSingleArray>(pPropertyValue);
}
else if(type == PropertyType_DoubleArray)
{
return toString<foundation::DoubleArrayWrapper,DOUBLE,&IPropertyValue::GetDoubleArray>(pPropertyValue);
}
else if(type == PropertyType_BooleanArray)
{
return toString<foundation::ArrayWrapper<boolean>,boolean,&IPropertyValue::GetBooleanArray>(pPropertyValue);
}
else if(type == PropertyType_StringArray)
{
return toString<foundation::HStringArrayWrapper,HSTRING,&IPropertyValue::GetStringArray>(pPropertyValue);
}
else
{
return U("[???]");
}
}