All Downloads are FREE. Search and download functionalities are using the official Maven repository.

xsbti.api.AbstractLazy Maven / Gradle / Ivy

The newest version!
/* sbt -- Simple Build Tool
 * Copyright 2010  Mark Harrah
 */
package xsbti.api;

import java.io.ObjectStreamException;

public abstract class AbstractLazy implements Lazy, java.io.Serializable
{
	// `writeReplace` must be `protected`, so that the `Impl` subclass
	// inherits the serialization override.
	//
	// (See source-dependencies/java-analysis-serialization-error, which would
	//  crash trying to serialize an AbstractLazy, because it pulled in an
	//  unserializable type eventually.)
	protected Object writeReplace() throws ObjectStreamException
	{
		return new StrictLazy(get());
	}
	private static final class StrictLazy implements Lazy, java.io.Serializable
	{
		private final T value;
		StrictLazy(T t)
		{
			value = t;
		}
		public T get()
		{
			return value;
		}
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy