DConnection.java :  » Database-ORM » SimpleORM » simpleorm » data » Java Open Source

Java Open Source » Database ORM » SimpleORM 
SimpleORM » simpleorm » data » DConnection.java
package simpleorm.data;

import java.util.Iterator;

/**
 * Interface that a data provider implements.
 */
public abstract class DConnection {

    //static ThreadLocal<DConnection> threadAdaptor = new ThreadLocal();
    
    /** Create a new instance for, eg. inserting. */
    public abstract DRecordInstance newInstance(DRecordMeta meta);

    protected DRecordInstance newRawInstance(DRecordMeta meta, Object bean) {
        DRecordInstance rec = meta.newInstance();
        setBean(rec, bean);
        return rec;
    }

    protected Object getBean(DRecordInstance rec) {
        return rec.bean;
    }

    /** Called by DConnection, NOT user */
    protected void setBean(DRecordInstance rec, Object bean) {
        rec.bean = bean;
    }

    /**
     * Low level insert, normally called by DataSet?
     */
    public abstract void insert(DRecordInstance record);

    public abstract void update(DRecordInstance record);

    //public abstract void delete(DRecordInstance record);

    /**
     * Beware that Iterator hasNext logic is incompatible and worse than
     * RecordSet next logic.  But it is the Java standard.  Beware hasNext
     * may be called multipletimes per record (and is by JSTL foreach).
     */
    public abstract Iterator<DRecordInstance> executeQuery(DQuery query);

    public abstract boolean canLockRecords();
}
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.