DailyFeelingReader.java :  » UnTagged » dailylife » com » dailystudio » dailylife » plugin » feeling » Android Open Source

Android Open Source » UnTagged » dailylife 
dailylife » com » dailystudio » dailylife » plugin » feeling » DailyFeelingReader.java
package com.dailystudio.dailylife.plugin.feeling;

import java.util.ArrayList;
import java.util.List;

import android.content.Context;

import com.dailystudio.dailylife.core.DailyObject;
import com.dailystudio.database.DatabaseObject;
import com.dailystudio.database.ExpressionToken;
import com.dailystudio.database.LocalDatabaseReader;
import com.dailystudio.database.OrderingToken;
import com.dailystudio.database.Query;
import com.dailystudio.development.Logger;
import com.dailystudio.utils.CalendarHelper;

public class DailyFeelingReader extends LocalDatabaseReader {

  public DailyFeelingReader(Context context, String database) {
    super(context, database);
  }

  public List<DailyFeeling> queryFeelings(Query query) {
    List<DatabaseObject> objects = query(query);
    if (objects == null) {
      return null;
    }

    final int count = objects.size();
    if (count <= 0) {
      return null;
    }
    
    List<DailyFeeling> feelings = new ArrayList<DailyFeeling>();    

    DatabaseObject object = null;
    for (int i = 0; i < count; i++) {
      object = objects.get(i);
      if (object instanceof DailyFeeling == false) {
        continue;
      }
      
      feelings.add((DailyFeeling)object);
    }
    
    return feelings;
  }

  public List<DailyFeeling> queryFeelingsForPeroid(long start, long end) {
    return queryFeelingsForPeroid(start, end, false);
  }
      
  public List<DailyFeeling> queryFeelingsForPeroid(long start, long end, 
      boolean orderByAscending) {
    return queryFeelings(getQueryForPeroid(start, end, orderByAscending));
  }

  public static Query getQueryForPeroid(long start, long end) {
    return getQueryForPeroid(start, end, true);
  }
  
  public static Query getQueryForPeroid(long start, long end, boolean orderByAscending) {
    Logger.debug("peroid: start(%s), end(%s), orderByAscending(%s)", 
        CalendarHelper.timeToReadableString(start),
        CalendarHelper.timeToReadableString(end),
        orderByAscending);

    Query query = new Query(DailyFeeling.class);
    if (query != null) {
      if (start < end) {
        ExpressionToken selection = DailyObject.COLUMN_TIME.gte(start)
          .and(DailyObject.COLUMN_TIME.lte(end));
        if (selection != null) {
          query.setSelection(selection);
        }
      }
      
      OrderingToken orderBy = (orderByAscending ?
          DailyObject.COLUMN_TIME.orderByAscending() :
          DailyObject.COLUMN_TIME.orderByDescending());
      if (orderBy != null) {
        query.setOrderBy(orderBy);
      }
    }
    
    return query;
  }

}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.