summaryrefslogtreecommitdiff
path: root/plugins/shotwell-data-imports/FSpotTableBehavior.vala
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/shotwell-data-imports/FSpotTableBehavior.vala')
-rw-r--r--plugins/shotwell-data-imports/FSpotTableBehavior.vala28
1 files changed, 28 insertions, 0 deletions
diff --git a/plugins/shotwell-data-imports/FSpotTableBehavior.vala b/plugins/shotwell-data-imports/FSpotTableBehavior.vala
new file mode 100644
index 0000000..2d94427
--- /dev/null
+++ b/plugins/shotwell-data-imports/FSpotTableBehavior.vala
@@ -0,0 +1,28 @@
+/* Copyright 2011-2014 Yorba Foundation
+ *
+ * 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);
+}
+
+}
+