Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

98 lines (74 sloc) 1.832 kB
using System;
namespace FluentCassandra.Types
{
public class BooleanType : CassandraObject
{
private static readonly BooleanTypeConverter Converter = new BooleanTypeConverter();
#region Implimentation
protected override object GetValueInternal(Type type)
{
return Converter.ConvertTo(_value, type);
}
public override void SetValue(object obj)
{
_value = Converter.ConvertFrom(obj);
}
public override byte[] ToBigEndian()
{
return Converter.ToBigEndian(_value);
}
public override void SetValueFromBigEndian(byte[] value)
{
_value = Converter.FromBigEndian(value);
}
protected override TypeCode TypeCode
{
get { return TypeCode.Boolean; }
}
public override string ToString()
{
return _value.ToString();
}
#endregion
public override object GetValue() { return _value; }
private bool _value;
#region Equality
public override bool Equals(object obj)
{
if (obj is BooleanType)
return _value == ((BooleanType)obj)._value;
return _value == Converter.ConvertFrom(obj);
}
public override int GetHashCode()
{
return _value.GetHashCode();
}
#endregion
#region Conversion
public static implicit operator bool(BooleanType type)
{
return type._value;
}
public static implicit operator BooleanType(bool o)
{
return new BooleanType {
_value = o
};
}
public static implicit operator BooleanType(byte[] o) { return ConvertFrom(o); }
public static implicit operator byte[](BooleanType o) { return ConvertTo<byte[]>(o); }
private static T ConvertTo<T>(BooleanType type)
{
if (type == null)
return default(T);
return type.GetValue<T>();
}
private static BooleanType ConvertFrom(object o)
{
var type = new BooleanType();
type.SetValue(o);
return type;
}
#endregion
}
}
Jump to Line
Something went wrong with that request. Please try again.