summaryrefslogtreecommitdiff
path: root/plugins/shotwell-data-imports/FSpotTableBehavior.vala
blob: 0922912e1b0500754ed8f08214e2362007c87328 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/* Copyright 2016 Software Freedom Conservancy Inc.
 *
 * This software is licensed under the GNU Lesser General Public License
 * (version 2.1 or later).  See the COPYING file in this distribution.
 */

namespace DataImports.FSpot.Db {

/**
 * This class defines a generic table behavior. In practice, it implements
 * the concept of a DAO (Data Access Object) in ORM terms and is responsible
 * for transforming the data extracted from a relational statement into a
 * lightweight value object.
 *
 * The type T defined in the generic is the value object type a behavior
 * implementation is designed to handle. Value object types are designed to
 * contain the data for a single database row.
 */
public interface FSpotTableBehavior<T> : Object {
    public abstract string get_table_name();
    
    public abstract string[] list_columns();
    
    public abstract void build_row(Sqlite.Statement stmt, out T row, int offset = 0);
}

}