package tc.oc.pgm.filters.query; import com.google.common.cache.LoadingCache; import org.bukkit.material.MaterialData; import tc.oc.commons.core.util.CacheUtils; import static com.google.common.base.Preconditions.checkNotNull; public class MaterialQuery implements IMaterialQuery { private final MaterialData material; private MaterialQuery(MaterialData material) { this.material = checkNotNull(material); } @Override public MaterialData getMaterial() { return material; } private static final LoadingCache<MaterialData, MaterialQuery> CACHE = CacheUtils.newCache(MaterialQuery::new); public static MaterialQuery of(MaterialData material) { return CACHE.getUnchecked(material); } }