package com.clearlyspam23.GLE.resources; import java.io.File; import java.io.IOException; public class Resource<T> { private File backingFile; private T data; private long lastModified; private ResourceLoader<T> loader; public Resource(ResourceLoader<T> loader){ this.loader = loader; } public Resource(ResourceLoader<T> loader, File backingFile){ this.loader = loader; setBackingFile(backingFile); } public File getBackingFile() { return backingFile; } public boolean setBackingFile(File backingFile) { this.backingFile = backingFile; try { reloadData(); } catch (IOException e) { return false; } return true; } private void reloadData() throws IOException{ data = loader.loadResource(backingFile); lastModified = backingFile.lastModified(); } public T getData() throws IOException{ if(backingFile==null) return null; if(backingFile.lastModified()!=lastModified) reloadData(); return data; } }