Item.java :  » App » d2cchecklist » divestoclimb » checklist » data » Android Open Source

Android Open Source » App » d2cchecklist 
d2cchecklist » divestoclimb » checklist » data » Item.java
package divestoclimb.checklist.data;

import divestoclimb.checklist.storage.DbAdapter;

//Superclass for all items in a checklist or template.
public abstract class Item {

  protected long mID;    // The database index of the record corresponding to
              // this item
  protected int mContainerType;
  protected long mContainerId;
  protected int mOrder;    // The order for this item as stored in the database
  protected boolean mDirty;  // Tracks whether or not something in this item has changed
  protected String mText;  // The text of this item

  // Getters and setters
  public int getContainerType() { return mContainerType; }
  public long getContainerID() { return mContainerId; }
  public long getID() { return mID; }
  protected void setID(long id) { mID = id; }
  public int getOrder() { return mOrder; }
  public void setOrder(int o) { mOrder = o; mDirty = true; }
  public String getText() { return mText; }
  public void setText(String t) { mText = t; mDirty = true; }

  // The generic constructor used for new items
  //public Item(Template t) {
  public Item(int container_type, long container_id) {
    //setTemplate(t);
    mContainerType = container_type;
    mContainerId = container_id;
    mID = -1;
    mOrder = -1;
    // The record can't be updated until some text is set
    mDirty = false;
  }

  // The database constructor. Subclasses should call this to set global fields.
  //public Item(Template t, long id, int order, String text) {
  public Item(int container_type, long container_id, long id, int order, String text) {
    //setTemplate(t);
    mContainerType = container_type;
    mContainerId = container_id;
    setID(id);
    setText(text);
    mOrder=order;
    mDirty=false;
  }

  boolean equals(Item i2) {
    return mContainerType == i2.getContainerType()
      && mContainerId == i2.getContainerID()
      && mID == i2.getID();
  }

  /**
   * Save this item.
   * 
   * @param d The DatabaseAdapter to use to save the object. In the future this will accept a more generic adapter for storage to XML.
   */
  public boolean save(DbAdapter d) {
    if(! mDirty) { return false; }
    boolean success;
    if(mID == -1) {
      if(mContainerType == DbAdapter.ITEM_CONTAINER_CHECKLIST) {
        mID = d.createChecklistItem(this);
        success = mID != -1;
      } else if(mContainerType == DbAdapter.ITEM_CONTAINER_TEMPLATE) {
        mID = d.createTemplateItem(this);
        success = mID != -1;
      } else {
        success = false;
      }
    } else {
      if(mContainerType == DbAdapter.ITEM_CONTAINER_CHECKLIST) {
        success = d.updateChecklistItem(this);
      } else if(mContainerType == DbAdapter.ITEM_CONTAINER_TEMPLATE) {
        success = d.updateTemplateItem(this);
      } else {
        success = false;
      }
    }
    mDirty = ! success;
    return success;
  }

}
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.