/* * Copyright (C) 2008 Quadduc <quadduc@gmail.com> * * This file is part of LateralGM. * LateralGM is free software and comes with ABSOLUTELY NO WARRANTY. * See LICENSE for details. */ package org.lateralgm.resources; import java.lang.ref.WeakReference; import org.lateralgm.main.UpdateSource; import org.lateralgm.main.UpdateSource.UpdateTrigger; public final class ResourceReference<R extends Resource<R,?>> { final UpdateTrigger updateTrigger = new UpdateTrigger(); public final UpdateSource updateSource = new UpdateSource(this,updateTrigger); private WeakReference<R> reference; ResourceReference(R resource) { set(resource); } void set(R resource) { reference = new WeakReference<R>(resource); updateTrigger.fire(); } public R get() { return reference.get(); } }