using JD.LogService;
using JD.TeaBoxAddinSystem.Addins.Description;
using JD.TeaBoxAddinSystem.Addins.Internal;
namespace JD.TeaBoxAddinSystem.Addins
{
///
/// A lazy-obtained resource.
///
public class LazyResourceReference : LazyReference
{
#region Constructor
///
/// Constructor.
///
///
///
public LazyResourceReference(Node node, string resourcename)
: base(node, resourcename)
{ }
#endregion
#region Methods
///
/// Creates the value.
///
///
///
///
protected virtual T CreateValue(IResources resources, string resourceName)
{
return (T)resources.GetObject(resourceName);
}
///
/// Creates an instance from the module.
///
///
protected override T LoadValue()
{
T value = CreateValue(Node.Module.Resources, ResourceName);
if (ReferenceEquals(value, null))
{
AddinManager.Log(new Error(LogCategory.Error, "Unable to create the resource named '{0}'.", ResourceName) { Origin = FileLocation });
}
return value;
}
#endregion
}
}