Missed a file in previous commit

--HG--
branch : dev
This commit is contained in:
Louis DeJardin
2010-05-16 18:40:51 -07:00
parent 65db8d7f07
commit 98c1d931e0

View File

@@ -0,0 +1,40 @@
using System;
namespace Orchard.ContentManagement.Utilities {
public class LazyField<T> {
private T _value;
private Func<T, T> _loader;
private Func<T, T> _setter;
public T Value {
get { return GetValue(); }
set { SetValue(value); }
}
public void Loader(Func<T, T> loader) {
_loader = loader;
}
public void Setter(Func<T, T> setter) {
_setter = setter;
}
private T GetValue() {
if (_loader != null) {
_value = _loader(_value);
_loader = null;
}
return _value;
}
private void SetValue(T value) {
_loader = null;
if (_setter != null) {
_value = _setter(value);
}
else {
_value = value;
}
}
}
}