private boolean warpExists(Warp warp) { WarpDataAccess data = schema.getInstance(); try { HashMap<String, Object> filter = new HashMap<String, Object>(); filter.put("name", warp.getName()); Database.get().load(data, filter); } catch (DatabaseReadException e) { log.error(e.getMessage(), e); } return data.hasData(); }
/** * Load and return all warps * * @return An ArrayList containing all loaded Warp instances. */ public List<Warp> loadWarps() { List<Warp> warps = Lists.newArrayList(); List<DataAccess> daos = Lists.newArrayList(); boolean needsUpdate = false; try { Database.get().loadAll(schema, daos, new HashMap<String, Object>()); for (DataAccess dao : daos) { WarpDataAccess data = (WarpDataAccess) dao; Group[] groups = makeGroupArray(data.groups); String owner = ToolBox.stringToNull(data.owner); String name = data.name; boolean playerHome = data.isPlayerHome; Location loc = null; if (((WarpDataAccess) dao).location.equals("N/A")) { loc = Location.fromDataAccess((LocationDataAccess) dao); } else { needsUpdate = true; loc = Location.fromString(data.location); } Warp warp; if (owner != null) { warp = new Warp(loc, name, owner, playerHome); } else if (groups != null && groups.length > 0) { warp = new Warp(loc, groups, name); } else { // assume this is a public warp warp = new Warp(loc, name); } warps.add(warp); } } catch (DatabaseReadException e) { log.error(e.getMessage(), e); } // Apply pending updates if (needsUpdate) { Canary.log.debug("Updating data for Warps..."); for (Warp warp : warps) { this.updateWarp(warp); } } return warps; }