private void invalidateCustoms(String dateTime) { String invalidsNextToken = null; do { SelectRequest invalidsRequest = new SelectRequest( "select `itemName()` from `" + AdWhirlUtil.DOMAIN_CUSTOMS_INVALID + "` where dateTime < '" + dateTime + "'"); invalidsRequest.setNextToken(invalidsNextToken); try { SelectResult invalidsResult = sdb.select(invalidsRequest); invalidsNextToken = invalidsResult.getNextToken(); List<Item> invalidsList = invalidsResult.getItems(); for (Item item : invalidsList) { String aid = item.getName(); deleteInvalid(AdWhirlUtil.DOMAIN_CUSTOMS_INVALID, aid); } } catch (Exception e) { AdWhirlUtil.logException(e, log); // Eventually we'll get a 'stale request' error and need to start over. invalidsNextToken = null; } } while (invalidsNextToken != null); }
/** * Get the instance details from SimpleDB * * @param app Cluster name * @param id Node ID * @return */ public PriamInstance getInstance(String app, int id) { AmazonSimpleDBClient simpleDBClient = getSimpleDBClient(); SelectRequest request = new SelectRequest(String.format(INSTANCE_QUERY, app, id)); SelectResult result = simpleDBClient.select(request); if (result.getItems().size() == 0) return null; return transform(result.getItems().get(0)); }
@Override protected TreeMap<Float, DropsiteLocation> doInBackground( android.location.Location... location) { TreeMap<Float, DropsiteLocation> locations = new TreeMap<Float, DropsiteLocation>(); try { if (location[0] != null) { android.location.Location currentLocation = location[0]; SelectResult result = SimpleDB.getInstance() .select(new SelectRequest("select * from `Dropsites` limit 25")); for (Item dropsite : result.getItems()) { android.location.Location dropsiteLocation = new android.location.Location(currentLocation.getProvider()); DropsiteLocation internalDropsiteLocation = new DropsiteLocation(); internalDropsiteLocation.setId(dropsite.getName()); // used to temporarily store hours of open and close for each location Hashtable<Integer, String> dateOpen = new Hashtable<Integer, String>(); Hashtable<Integer, String> dateClose = new Hashtable<Integer, String>(); for (Attribute attribute : dropsite.getAttributes()) { if (attribute.getName().equalsIgnoreCase("location")) internalDropsiteLocation.setLocation(attribute.getValue()); if (attribute.getName().equalsIgnoreCase("description")) internalDropsiteLocation.setDescription(attribute.getValue()); if (attribute.getName().equalsIgnoreCase("start_collection")) internalDropsiteLocation.setDateOpen(DateTime.parse(attribute.getValue())); if (attribute.getName().equalsIgnoreCase("end_collection")) internalDropsiteLocation.setDateClose(DateTime.parse(attribute.getValue())); if (attribute.getName().equalsIgnoreCase("lat")) dropsiteLocation.setLatitude(Double.parseDouble(attribute.getValue())); if (attribute.getName().equalsIgnoreCase("lng")) dropsiteLocation.setLongitude(Double.parseDouble(attribute.getValue())); if (attribute.getName().equalsIgnoreCase("city")) internalDropsiteLocation.setCityCode(attribute.getValue()); } // store the location of the lot internalDropsiteLocation.setPoint( new LatLng(dropsiteLocation.getLatitude(), dropsiteLocation.getLongitude())); // save it to our locations listing to return back to the consumer locations.put(currentLocation.distanceTo(dropsiteLocation), internalDropsiteLocation); } } } catch (Exception e) { Log.e("GetDropsitesTask", "Failure attempting to get locations", e); } return locations; }
/** * Get a list of all nodes in the cluster * * @param app Cluster name * @return */ public Set<PriamInstance> getAllIds(String app) { AmazonSimpleDBClient simpleDBClient = getSimpleDBClient(); Set<PriamInstance> inslist = new HashSet<PriamInstance>(); String nextToken = null; do { SelectRequest request = new SelectRequest(String.format(ALL_QUERY, app)); request.setNextToken(nextToken); SelectResult result = simpleDBClient.select(request); nextToken = result.getNextToken(); Iterator<Item> itemiter = result.getItems().iterator(); while (itemiter.hasNext()) { inslist.add(transform(itemiter.next())); } } while (nextToken != null); return inslist; }
/* * Using the pre-defined query, extracts items from the domain in a determined order using the 'select' operation. */ public synchronized List<HighScore> getHighScores() { String query = null; switch (this.sortMethod) { case PLAYER_SORT: query = PLAYER_SORT_QUERY; break; case SCORE_SORT: query = SCORE_SORT_QUERY; break; default: query = NO_SORT_QUERY; break; } SelectRequest selectRequest = new SelectRequest(query).withConsistentRead(true); selectRequest.setNextToken(this.nextToken); SelectResult response = this.sdbClient.select(selectRequest); this.nextToken = response.getNextToken(); return this.convertItemListToHighScoreList(response.getItems()); }
@Override protected TreeMap<Float, LotLocation> doInBackground(android.location.Location... location) { TreeMap<Float, LotLocation> locations = new TreeMap<Float, LotLocation>(); try { // null checking party ahead, majority stems form no connection, perhaps a connection // manager could centralize this if (location[0] != null) { android.location.Location currentLocation = location[0]; AmazonSimpleDBClient instance = SimpleDB.getInstance(); if (instance != null) { SelectResult result = instance.select( new SelectRequest("select * from `Locations` where active = '1' limit 50")); if (result != null) { for (Item lot : result.getItems()) { android.location.Location lotLocation = new android.location.Location(currentLocation.getProvider()); LotLocation internalLotLocation = new LotLocation(); internalLotLocation.setId(lot.getName()); // used to temporarily store hours of open and close for each location Hashtable<Integer, String> hoursOpen = new Hashtable<Integer, String>(); Hashtable<Integer, String> hoursClose = new Hashtable<Integer, String>(); for (Attribute attribute : lot.getAttributes()) { if (attribute.getName().equalsIgnoreCase("location")) internalLotLocation.setLocation(attribute.getValue()); if (attribute.getName().equalsIgnoreCase("rating")) internalLotLocation.setRating(Float.parseFloat(attribute.getValue())); if (attribute.getName().equalsIgnoreCase("business")) internalLotLocation.setBusiness(attribute.getValue()); if (attribute.getName().equalsIgnoreCase("description")) internalLotLocation.setDescription(attribute.getValue()); if (attribute.getName().equalsIgnoreCase("amex")) internalLotLocation.setAcceptsAmex( com.experiment.trax.utils.Boolean.valueOf(attribute.getValue())); if (attribute.getName().equalsIgnoreCase("visa")) internalLotLocation.setAcceptsVisa( com.experiment.trax.utils.Boolean.valueOf(attribute.getValue())); if (attribute.getName().equalsIgnoreCase("mastercard")) internalLotLocation.setAcceptsMastercard( com.experiment.trax.utils.Boolean.valueOf(attribute.getValue())); if (attribute.getName().equalsIgnoreCase("discover")) internalLotLocation.setAcceptsDiscover( com.experiment.trax.utils.Boolean.valueOf(attribute.getValue())); if (attribute.getName().equalsIgnoreCase("phone")) internalLotLocation.setPhone(attribute.getValue()); if (attribute.getName().equalsIgnoreCase("verified")) internalLotLocation.setVerified( com.experiment.trax.utils.Boolean.valueOf(attribute.getValue())); // create a key -> value to day of week and time opened or closed if (attribute.getName().equalsIgnoreCase("1_open")) hoursOpen.put(1, attribute.getValue()); if (attribute.getName().equalsIgnoreCase("1_close")) hoursClose.put(1, attribute.getValue()); if (attribute.getName().equalsIgnoreCase("2_open")) hoursOpen.put(2, attribute.getValue()); if (attribute.getName().equalsIgnoreCase("2_close")) hoursClose.put(2, attribute.getValue()); if (attribute.getName().equalsIgnoreCase("3_open")) hoursOpen.put(3, attribute.getValue()); if (attribute.getName().equalsIgnoreCase("3_close")) hoursClose.put(3, attribute.getValue()); if (attribute.getName().equalsIgnoreCase("4_open")) hoursOpen.put(4, attribute.getValue()); if (attribute.getName().equalsIgnoreCase("4_close")) hoursClose.put(4, attribute.getValue()); if (attribute.getName().equalsIgnoreCase("5_open")) hoursOpen.put(5, attribute.getValue()); if (attribute.getName().equalsIgnoreCase("5_close")) hoursClose.put(5, attribute.getValue()); if (attribute.getName().equalsIgnoreCase("6_open")) hoursOpen.put(6, attribute.getValue()); if (attribute.getName().equalsIgnoreCase("6_close")) hoursClose.put(6, attribute.getValue()); if (attribute.getName().equalsIgnoreCase("7_open")) hoursOpen.put(7, attribute.getValue()); if (attribute.getName().equalsIgnoreCase("7_close")) hoursClose.put(7, attribute.getValue()); if (attribute.getName().equalsIgnoreCase("lat")) lotLocation.setLatitude(Double.parseDouble(attribute.getValue())); if (attribute.getName().equalsIgnoreCase("lng")) lotLocation.setLongitude(Double.parseDouble(attribute.getValue())); } // store the times the lot is opened and closed internalLotLocation.setHoursOpen(hoursOpen); internalLotLocation.setHoursClose(hoursClose); // store the location of the lot internalLotLocation.setPoint( new LatLng(lotLocation.getLatitude(), lotLocation.getLongitude())); // save it to our locations listing to return back to the consumer locations.put(currentLocation.distanceTo(lotLocation), internalLotLocation); } } } } } catch (Exception e) { Log.e("GetLocationsTask", "Failure attempting to get locations", e); } return locations; }