foundation::string_t CPropertyValueInternalStatics::ToString()

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("[???]");
    }
}