mirror of https://github.com/sbt/sbt.git
make serializable abstract Lazy template
This commit is contained in:
parent
2a68806cc5
commit
730b613007
|
|
@ -13,7 +13,7 @@ object SafeLazy
|
||||||
|
|
||||||
def strict[T <: AnyRef](value: T): xsbti.api.Lazy[T] = apply(value)
|
def strict[T <: AnyRef](value: T): xsbti.api.Lazy[T] = apply(value)
|
||||||
|
|
||||||
private[this] final class Impl[T <: AnyRef](private[this] var eval: () => T) extends xsbti.api.Lazy[T]
|
private[this] final class Impl[T <: AnyRef](private[this] var eval: () => T) extends xsbti.api.AbstractLazy[T]
|
||||||
{
|
{
|
||||||
private[this] lazy val _t =
|
private[this] lazy val _t =
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,26 @@
|
||||||
|
/* sbt -- Simple Build Tool
|
||||||
|
* Copyright 2010 Mark Harrah
|
||||||
|
*/
|
||||||
|
package xsbti.api;
|
||||||
|
|
||||||
|
import java.io.ObjectStreamException;
|
||||||
|
|
||||||
|
public abstract class AbstractLazy<T> implements Lazy<T>, java.io.Serializable
|
||||||
|
{
|
||||||
|
private Object writeReplace() throws ObjectStreamException
|
||||||
|
{
|
||||||
|
return new StrictLazy<T>(get());
|
||||||
|
}
|
||||||
|
private static final class StrictLazy<T> implements Lazy<T>, java.io.Serializable
|
||||||
|
{
|
||||||
|
private final T value;
|
||||||
|
StrictLazy(T t)
|
||||||
|
{
|
||||||
|
value = t;
|
||||||
|
}
|
||||||
|
public T get()
|
||||||
|
{
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/* sbt -- Simple Build Tool
|
/* sbt -- Simple Build Tool
|
||||||
* Copyright 2008, 2009 Mark Harrah
|
* Copyright 2010 Mark Harrah
|
||||||
*/
|
*/
|
||||||
package xsbti.api;
|
package xsbti.api;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue