package com.kartoflane.superluminal2.mvc.models; import com.kartoflane.superluminal2.ftl.GameObject; public class ObjectModel extends BaseModel { protected GameObject gameObject = null; private ObjectModel() { super(); } public ObjectModel(GameObject gameObject) { this(); setGameObject(gameObject); } public void setGameObject(GameObject o) { gameObject = o; } public GameObject getGameObject() { if (gameObject == null) throw new IllegalStateException("Model is disposed."); return gameObject; } @Override public void dispose() { super.dispose(); gameObject.setModel(null); gameObject = null; } @Override public void delete() { if (gameObject == null) throw new IllegalStateException("Model is disposed."); gameObject.delete(); } @Override public void restore() { if (gameObject == null) throw new IllegalStateException("Model is disposed."); gameObject.restore(); } @Override public void setDeletable(boolean deletable) { if (gameObject == null) throw new IllegalStateException("Model is disposed."); gameObject.setDeletable(deletable); } @Override public boolean isDeletable() { if (gameObject == null) throw new IllegalStateException("Model is disposed."); return gameObject.isDeletable(); } public boolean isDisposed() { return gameObject == null; } }