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

com.g2forge.alexandria.java.function.LiteralSupplier Maven / Gradle / Ivy

There is a newer version: 0.0.18
Show newest version
package com.g2forge.alexandria.java.function;

import java.util.function.Supplier;

import com.g2forge.alexandria.java.core.helpers.HObject;

import lombok.Data;

@Data
public class LiteralSupplier implements ISupplier {
	protected static final LiteralSupplier NULL = new LiteralSupplier<>(null);

	@SuppressWarnings("unchecked")
	public static  Supplier getNull() {
		return (Supplier) NULL;
	}

	public static  T unwrap(Supplier supplier) {
		if (!(supplier instanceof LiteralSupplier)) throw new ClassCastException();
		final LiteralSupplier cast = ((LiteralSupplier) supplier);
		return cast.getValue();
	}

	protected final T value;

	@Override
	public T get() {
		return getValue();
	}

	@Override
	public String toString() {
		return HObject.toString(this, getValue());
	}
}