예제 #1
0
 public String[] getFromCache(String Date) {
   Log.d(TAG, "Loading From Cache");
   RealmQuery<MealDataCacheModel> query = mRealm.where(MealDataCacheModel.class);
   query.equalTo("Date", Date);
   MealDataCacheModel result = query.findFirst();
   String CachedData[] = new String[4];
   if (result != null) {
     CachedData[0] = result.getDate();
     CachedData[1] = result.getMeal();
     CachedData[2] = result.getOrigin();
     CachedData[3] = result.getNutrients();
   } else {
     CachedData[0] = Date;
     CachedData[1] = mContext.getResources().getString(R.string.error_net);
     CachedData[2] = mContext.getResources().getString(R.string.error_net);
     CachedData[3] = mContext.getResources().getString(R.string.error_net);
   }
   return CachedData;
 }
  private void indexedStringEntityQueriesRun(int count) {
    // create entities
    List<IndexedStringEntity> entities = new ArrayList<>(count);
    String[] fixedRandomStrings = StringGenerator.createFixedRandomStrings(count);
    for (int i = 0; i < count; i++) {
      IndexedStringEntity entity = new IndexedStringEntity();
      entity.setId((long) i);
      entity.setIndexedString(fixedRandomStrings[i]);
      entities.add(entity);
    }
    log("Built entities.");

    // insert entities
    realm.beginTransaction();
    realm.copyToRealm(entities);
    realm.commitTransaction();
    log("Inserted entities.");

    // query for entities by indexed string at random
    int[] randomIndices = StringGenerator.getFixedRandomIndices(getQueryCount(), count - 1);

    startClock();
    for (int i = 0; i < getQueryCount(); i++) {
      int nextIndex = randomIndices[i];
      RealmQuery<IndexedStringEntity> query = realm.where(IndexedStringEntity.class);
      query.equalTo("indexedString", fixedRandomStrings[nextIndex]);
      RealmResults<IndexedStringEntity> result = query.findAll();
      for (int j = 0, resultSize = result.size(); j < resultSize; j++) {
        // actually get each entity so its object is reconstructed, same with properties
        IndexedStringEntity entity = result.get(j);
        entity.getId();
        entity.getIndexedString();
      }
    }
    stopClock(Benchmark.Type.QUERY_INDEXED);

    // delete all entities
    realm.beginTransaction();
    realm.delete(IndexedStringEntity.class);
    realm.commitTransaction();
    log("Deleted all entities.");
  }
예제 #3
0
 public void updateCache(String Date, String Meal, String Origin, String Nutrients) {
   RealmQuery<MealDataCacheModel> query = mRealm.where(MealDataCacheModel.class);
   query.equalTo("Date", Date);
   MealDataCacheModel result = query.findFirst();
   if (result == null) {
     Log.d(TAG, "Caching New Data");
     mRealm.beginTransaction();
     MealDataCacheModel MDCM = mRealm.createObject(MealDataCacheModel.class);
     MDCM.setDate(Date);
     MDCM.setMeal(Meal);
     MDCM.setOrigin(Origin);
     MDCM.setNutrients(Nutrients);
     mRealm.commitTransaction();
   } else {
     Log.d(TAG, "Updating Cached Data");
     mRealm.beginTransaction();
     result.setMeal(Meal);
     result.setOrigin(Origin);
     result.setNutrients(Nutrients);
     mRealm.commitTransaction();
   }
 }