DataTableGeoPoints.java :  » GPS » tripcomputer » pl » tripcomputer » data » tables » Android Open Source

Android Open Source » GPS » tripcomputer 
tripcomputer » pl » tripcomputer » data » tables » DataTableGeoPoints.java
package pl.tripcomputer.data.tables;

import pl.tripcomputer.UserAlert;
import pl.tripcomputer.data.common.DataField;
import pl.tripcomputer.data.common.DataRowSet;
import pl.tripcomputer.data.common.DataTable;
import pl.tripcomputer.data.common.DataValues;
import pl.tripcomputer.data.common.Database;
import pl.tripcomputer.data.items.DataItemGeoPoint;
import android.database.Cursor;


public class DataTableGeoPoints extends DataTable
{
  //generic collection class
  public class RowSet extends DataRowSet<DataItemGeoPoint>
  {
    public RowSet(DataTable table)
    {
      super(table);
    }
    protected DataItemGeoPoint getItem(Cursor cr)
    {
      return new DataItemGeoPoint(cr);
    }    
  }

  protected DataRowSet<DataItemGeoPoint> rows = null;
  
  
  //fields
  public final static String sTableName = "GeoPoints";

  public static class field
  {
    public static final int ID = 0;
    public static final int TrackID = 1;
    public static final int Lon = 2;
    public static final int Lat = 3;
    public static final int Altitude = 4;
    public static final int TimeUTC = 5;
    public static final int Accuracy = 6;
    public static final int Speed = 7;
    public static final int Bearing = 8;
    public static final int CreationTime = 9;
  };  
  
  private final static DataField[] vecTableDefinition =
  {
    new DataField(field.ID, DataTable.sID, DataField.TYPE_INT, false, true, false),
    new DataField(field.TrackID, "TrackID", DataField.TYPE_INT, false, false, false),
    new DataField(field.Lon, "Lon", DataField.TYPE_NUMERIC, false, false, true),
    new DataField(field.Lat, "Lat", DataField.TYPE_NUMERIC, false, false, true),
    new DataField(field.Altitude, "Altitude", DataField.TYPE_INT, false, false, false),
    new DataField(field.TimeUTC, "TimeUTC", DataField.TYPE_INT, false, false, false),
    new DataField(field.Accuracy, "Accuracy", DataField.TYPE_INT, true, false, false),
    new DataField(field.Speed, "Speed", DataField.TYPE_INT, true, false, false),
    new DataField(field.Bearing, "Bearing", DataField.TYPE_INT, true, false, false),
    new DataField(field.CreationTime, "CreationTime", DataField.TYPE_INT, false, false, false),    
  };


  //methods
  public DataTableGeoPoints(Database dataBase)
  {
    super(dataBase, sTableName, vecTableDefinition);
    rows = new RowSet(this);
  }

  public DataValues getNewValues(boolean bForInsert)
  {
    final DataValues values = new DataValues(this);
    
    if (bForInsert)
    {    
    }
    
    return values;
  }
  
  public int getTableVersion()
  {
    return 1;
  }
  
  public UserAlert.Result validateValues(DataValues values)
  {
    //all ok
    return null;
  }

  public DataItemGeoPoint getGeoPointItem(long lPointId)
  {    
    final Cursor cr = getDataRecord(lPointId);
    if (cr != null)
    {        
      DataItemGeoPoint item = new DataItemGeoPoint(cr);      
      cr.close();    
      return item;
    }
    return null;
  }
  
  public int getTrackPointCount(long lTrackId)
  {    
    int iCount = 0;    
    final String sWhere = String.format("%s = %d", getFieldName(field.TrackID), lTrackId);    
    final Cursor cr = getDataRecords(sWhere);
    if (cr != null)
    {
      iCount = cr.getCount();
      cr.close();
    }
    return iCount;
  }
  
}
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.