2012-07-26 07:52:13 -02:00
|
|
|
|
using System;
|
|
|
|
|
|
|
|
|
|
|
|
namespace Umbraco.Core.Resolving
|
|
|
|
|
|
{
|
2012-07-26 23:05:51 +06:00
|
|
|
|
internal abstract class SingleResolverBase<TResolver, TResolved> : ResolverBase<TResolver>
|
2012-07-27 05:25:26 +06:00
|
|
|
|
where TResolver : class
|
|
|
|
|
|
where TResolved : class
|
2012-07-26 07:52:13 -02:00
|
|
|
|
{
|
|
|
|
|
|
TResolved _resolved;
|
2012-07-26 23:05:51 +06:00
|
|
|
|
readonly bool _canBeNull;
|
2012-07-26 07:52:13 -02:00
|
|
|
|
|
|
|
|
|
|
protected SingleResolverBase()
|
|
|
|
|
|
: this(false)
|
|
|
|
|
|
{ }
|
|
|
|
|
|
|
|
|
|
|
|
protected SingleResolverBase(TResolved value)
|
|
|
|
|
|
: this(false)
|
|
|
|
|
|
{
|
|
|
|
|
|
_resolved = value;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
protected SingleResolverBase(bool canBeNull)
|
|
|
|
|
|
{
|
|
|
|
|
|
_canBeNull = canBeNull;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
protected SingleResolverBase(TResolved value, bool canBeNull)
|
|
|
|
|
|
{
|
|
|
|
|
|
_resolved = value;
|
|
|
|
|
|
_canBeNull = canBeNull;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
protected TResolved Value
|
|
|
|
|
|
{
|
|
|
|
|
|
get
|
|
|
|
|
|
{
|
|
|
|
|
|
return _resolved;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
set
|
|
|
|
|
|
{
|
|
|
|
|
|
Resolution.EnsureNotFrozen();
|
|
|
|
|
|
|
|
|
|
|
|
if (!_canBeNull && value == null)
|
|
|
|
|
|
throw new ArgumentNullException("value");
|
|
|
|
|
|
_resolved = value;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|