parent
d0f7784101
commit
32b8dd70d6
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="utf-8" ?>
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
|
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
|
||||||
<class name="OpenSim.Framework.AssetBase, OpenSim.Framework" table="Assets" lazy="false">
|
<class name="OpenSim.Framework.AssetBase, OpenSim.Framework" table="Assets" lazy="false">
|
||||||
<id name="ID" column="UUID" type="String" length="40" >
|
<id name="FullID" column="UUID" type="OpenSim.Data.NHibernate.LLUUIDString">
|
||||||
<generator class="assigned" />
|
<generator class="assigned" />
|
||||||
</id>
|
</id>
|
||||||
<property name="Type" type="SByte" />
|
<property name="Type" type="SByte" />
|
||||||
|
|
|
@ -0,0 +1,78 @@
|
||||||
|
using System;
|
||||||
|
using System.Data;
|
||||||
|
using NHibernate.SqlTypes;
|
||||||
|
using NHibernate.UserTypes;
|
||||||
|
using libsecondlife;
|
||||||
|
|
||||||
|
namespace OpenSim.Data.NHibernate
|
||||||
|
{
|
||||||
|
[Serializable]
|
||||||
|
public class LLUUIDString : IUserType
|
||||||
|
{
|
||||||
|
public object Assemble(object cached, object owner)
|
||||||
|
{
|
||||||
|
return cached;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool IUserType.Equals(object uuid1, object uuid2)
|
||||||
|
{
|
||||||
|
return uuid1.Equals(uuid2);
|
||||||
|
}
|
||||||
|
|
||||||
|
public object DeepCopy(object uuid)
|
||||||
|
{
|
||||||
|
return uuid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public object Disassemble(object uuid)
|
||||||
|
{
|
||||||
|
return uuid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int GetHashCode(object uuid)
|
||||||
|
{
|
||||||
|
return (uuid == null) ? 0 : uuid.GetHashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool IsMutable
|
||||||
|
{
|
||||||
|
get { return false; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public object NullSafeGet(System.Data.IDataReader rs, string[] names, object owner)
|
||||||
|
{
|
||||||
|
object uuid = null;
|
||||||
|
|
||||||
|
int ord = rs.GetOrdinal(names[0]);
|
||||||
|
if (!rs.IsDBNull(ord))
|
||||||
|
{
|
||||||
|
string first = (string)rs.GetString(ord);
|
||||||
|
uuid = new LLUUID(first);
|
||||||
|
}
|
||||||
|
|
||||||
|
return uuid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void NullSafeSet(System.Data.IDbCommand cmd, object obj, int index)
|
||||||
|
{
|
||||||
|
LLUUID UUID = (LLUUID)obj;
|
||||||
|
((IDataParameter)cmd.Parameters[index]).Value = UUID.ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public object Replace(object original, object target, object owner)
|
||||||
|
{
|
||||||
|
return original;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Type ReturnedType
|
||||||
|
{
|
||||||
|
get { return typeof(LLUUID); }
|
||||||
|
}
|
||||||
|
|
||||||
|
public SqlType[] SqlTypes
|
||||||
|
{
|
||||||
|
// I think we're up to 36
|
||||||
|
get { return new SqlType [] { SqlTypeFactory.GetString(36) }; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue