protected override object GetData(object value)
{
Clob clob = value as Clob;
if (clob == null) return null;
if (compression == null)
{
if (clob.Equals(Clob.Empty)) return "";
StringClob sc = clob as StringClob;
if (sc != null) return sc.Text;
using (StringWriter sw = new StringWriter())
{
clob.WriteTo(sw);
return sw.ToString();
}
}
else
{
CompressedClob cb = clob as CompressedClob;
if (cb != null && cb.Compression.Equals(compression)) return cb.Data;
using (MemoryStream data = new MemoryStream())
{
using (Stream cs = compression.GetCompressor(data))
using (StreamWriter sw = new StreamWriter(cs, encoding))
clob.WriteTo(sw);
return data.ToArray();
}
}
}