package com.massivecraft.factions.zcore.persist; import java.util.LinkedHashMap; import java.util.Map; public class EM { public static Map, EntityCollection> class2Entities = new LinkedHashMap, EntityCollection>(); @SuppressWarnings("unchecked") public static EntityCollection getEntitiesCollectionForEntityClass(Class entityClass) { return (EntityCollection) class2Entities.get(entityClass); } public static void setEntitiesCollectionForEntityClass(Class entityClass, EntityCollection entities) { class2Entities.put(entityClass, entities); } // -------------------------------------------- // // ATTACH AND DETACH // -------------------------------------------- // @SuppressWarnings("unchecked") public static void attach(T entity) { EntityCollection ec = (EntityCollection) getEntitiesCollectionForEntityClass(entity.getClass()); ec.attach(entity); } @SuppressWarnings("unchecked") public static void detach(T entity) { EntityCollection ec = (EntityCollection) getEntitiesCollectionForEntityClass(entity.getClass()); ec.detach(entity); } @SuppressWarnings("unchecked") public static boolean attached(T entity) { EntityCollection ec = (EntityCollection) getEntitiesCollectionForEntityClass(entity.getClass()); return ec.attached(entity); } @SuppressWarnings("unchecked") public static boolean detached(T entity) { EntityCollection ec = (EntityCollection) getEntitiesCollectionForEntityClass(entity.getClass()); return ec.detached(entity); } // -------------------------------------------- // // DISC // -------------------------------------------- // public static void saveAllToDisc() { for (EntityCollection ec : class2Entities.values()) { ec.saveToDisc(); } } public static void loadAllFromDisc() { for (EntityCollection ec : class2Entities.values()) { ec.loadFromDisc(); } } }