@Override public Iterable<Component> iterateComponents() { if (exists()) { return entityManager.iterateComponents(id); } return NullIterator.newInstance(); }
@Override public <T extends Component> T addComponent(T component) { if (exists()) { return entityManager.addComponent(id, component); } return component; }
@Override public <T extends Component> T getComponent(Class<T> componentClass) { if (exists()) { return entityManager.getComponent(id, componentClass); } return null; }
@Override public boolean hasComponent(Class<? extends Component> component) { return exists() && entityManager.hasComponent(id, component); }
@Override public void send(Event event) { if (exists()) { entityManager.getEventSystem().send(this, event); } }
@Override public void destroy() { if (exists()) { entityManager.destroy(id); } }
@Override public void saveComponent(Component component) { if (exists()) { entityManager.saveComponent(id, component); } }
@Override public void removeComponent(Class<? extends Component> componentClass) { if (exists()) { entityManager.removeComponent(id, componentClass); } }