NHibernate.Lob.ClobType.GetData C# (CSharp) Method

GetData() protected method

protected GetData ( object value ) : object
value object
return object
		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();
				}
			}
		}