package ro.isdc.wro.util;
import static org.apache.commons.lang3.Validate.notNull;
/**
* A simple decorator for {@link LazyInitializer}.
*
* @author Alex Objelean
* @created 29 Jan 2014
* @since 1.7.4
*/
public class LazyInitializerDecorator<T>
extends LazyInitializer<T> implements ObjectDecorator<LazyInitializer<T>> {
private final AbstractDecorator<LazyInitializer<T>> decorator;
public LazyInitializerDecorator(final LazyInitializer<T> decorated) {
notNull(decorated);
this.decorator = new AbstractDecorator<LazyInitializer<T>>(decorated) {
};
}
@Override
protected T initialize() {
return decorator.getDecoratedObject().initialize();
}
public LazyInitializer<T> getDecoratedObject() {
return decorator.getDecoratedObject();
}
public LazyInitializer<T> getOriginalDecoratedObject() {
return decorator.getOriginalDecoratedObject();
}
}