[libgda] Updating DbRecord interfaces. Updating GIR/VAPI bindings.



commit dde84e41c962e21dcf37ba1796ee2e663f8dc446
Author: Daniel Espinosa <despinosa src gnome org>
Date:   Sat Jan 7 23:03:37 2012 -0600

    Updating DbRecord interfaces. Updating GIR/VAPI bindings.

 libgda/Gda-5.0.gir          |   19 ++++++++
 libgda/data/DbRecord.vala   |    9 ++--
 libgda/data/GdaData-5.0.gir |  104 +++++++++++++++++++++++++++++--------------
 libgda/data/Record.vala     |   42 +++++++++--------
 libgda/libgda-5.0.vapi      |    2 +
 5 files changed, 119 insertions(+), 57 deletions(-)
---
diff --git a/libgda/Gda-5.0.gir b/libgda/Gda-5.0.gir
index b1de661..7a745d1 100644
--- a/libgda/Gda-5.0.gir
+++ b/libgda/Gda-5.0.gir
@@ -23439,6 +23439,25 @@ can also be used in hash tables as a #GEqualFunc.</doc>
         </parameter>
       </parameters>
     </function>
+    <function name="modify_statement_param_types"
+              c:identifier="gda_modify_statement_param_types"
+              version="5.2">
+      <doc xml:whitespace="preserve">Modifies the parameters in @stmt which will be mapped to columns in @model (using the +&amp;lt;colindex&amp;gt; or
+-&amp;lt;colindex&amp;gt; syntax) to map the column types of @model.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="stmt" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GdaStatement</doc>
+          <type name="Statement" c:type="GdaStatement*"/>
+        </parameter>
+        <parameter name="model" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GdaDataModel</doc>
+          <type name="DataModel" c:type="GdaDataModel*"/>
+        </parameter>
+      </parameters>
+    </function>
     <function name="mutex_new"
               c:identifier="gda_mutex_new"
               moved-to="Mutex.new"
diff --git a/libgda/data/DbRecord.vala b/libgda/data/DbRecord.vala
index 7d272ec..88b5970 100644
--- a/libgda/data/DbRecord.vala
+++ b/libgda/data/DbRecord.vala
@@ -30,9 +30,10 @@ namespace GdaData
         /**
          * Returns a GLib.Value containing the value stored in the given field.
          */
-        public abstract G                             get_value (string field) throws Error;
-        public abstract void                          set_field (string field, Value? v) throws Error;
-        public abstract void                          set_key (string field, G v) throws Error;
-        public abstract DbField<G>                    get_field (string field) throws Error;
+        public abstract G                             get_value (string name) throws Error;
+        public abstract void                          set_field (DbField<G> field) throws Error;
+        public abstract DbField<G>                    get_field (string name) throws Error;
+        public abstract void                          set_key   (DbField<G> field) throws Error;
+        public abstract DbField<G>                    get_key   (string name) throws Error;
 	}
 }
diff --git a/libgda/data/GdaData-5.0.gir b/libgda/data/GdaData-5.0.gir
index 3699e15..1bb6255 100644
--- a/libgda/data/GdaData-5.0.gir
+++ b/libgda/data/GdaData-5.0.gir
@@ -419,7 +419,7 @@
 		<prerequisite name="Gee.Comparable"/>
 		<method name="get_value" c:identifier="gda_data_db_record_get_value" throws="1">
 			<parameters>
-				<parameter name="field" transfer-ownership="none">
+				<parameter name="name" transfer-ownership="none">
 					<type name="utf8" c:type="const gchar*"/>
 				</parameter>
 			</parameters>
@@ -429,7 +429,7 @@
 		</method>
 		<virtual-method name="get_value" invoker="get_value" throws="1">
 			<parameters>
-				<parameter name="field" transfer-ownership="none">
+				<parameter name="name" transfer-ownership="none">
 					<type name="utf8" c:type="const gchar*"/>
 				</parameter>
 			</parameters>
@@ -440,10 +440,9 @@
 		<method name="set_field" c:identifier="gda_data_db_record_set_field" throws="1">
 			<parameters>
 				<parameter name="field" transfer-ownership="none">
-					<type name="utf8" c:type="const gchar*"/>
-				</parameter>
-				<parameter name="v" transfer-ownership="none" allow-none="1">
-					<type name="GObject.Value" c:type="GValue*"/>
+					<type name="GdaData.DbField" c:type="GdaDataDbField*">
+						<type name="gpointer" c:type="gpointer"/>
+					</type>
 				</parameter>
 			</parameters>
 			<return-value transfer-ownership="full">
@@ -453,23 +452,45 @@
 		<virtual-method name="set_field" invoker="set_field" throws="1">
 			<parameters>
 				<parameter name="field" transfer-ownership="none">
-					<type name="utf8" c:type="const gchar*"/>
-				</parameter>
-				<parameter name="v" transfer-ownership="none" allow-none="1">
-					<type name="GObject.Value" c:type="GValue*"/>
+					<type name="GdaData.DbField" c:type="GdaDataDbField*">
+						<type name="gpointer" c:type="gpointer"/>
+					</type>
 				</parameter>
 			</parameters>
 			<return-value transfer-ownership="full">
 				<type name="none"/>
 			</return-value>
 		</virtual-method>
-		<method name="set_key" c:identifier="gda_data_db_record_set_key" throws="1">
+		<method name="get_field" c:identifier="gda_data_db_record_get_field" throws="1">
 			<parameters>
-				<parameter name="field" transfer-ownership="none">
+				<parameter name="name" transfer-ownership="none">
 					<type name="utf8" c:type="const gchar*"/>
 				</parameter>
-				<parameter name="v" transfer-ownership="none" allow-none="1">
+			</parameters>
+			<return-value transfer-ownership="full">
+				<type name="GdaData.DbField" c:type="GdaDataDbField*">
 					<type name="gpointer" c:type="gpointer"/>
+				</type>
+			</return-value>
+		</method>
+		<virtual-method name="get_field" invoker="get_field" throws="1">
+			<parameters>
+				<parameter name="name" transfer-ownership="none">
+					<type name="utf8" c:type="const gchar*"/>
+				</parameter>
+			</parameters>
+			<return-value transfer-ownership="full">
+				<type name="GdaData.DbField" c:type="GdaDataDbField*">
+					<type name="gpointer" c:type="gpointer"/>
+				</type>
+			</return-value>
+		</virtual-method>
+		<method name="set_key" c:identifier="gda_data_db_record_set_key" throws="1">
+			<parameters>
+				<parameter name="field" transfer-ownership="none">
+					<type name="GdaData.DbField" c:type="GdaDataDbField*">
+						<type name="gpointer" c:type="gpointer"/>
+					</type>
 				</parameter>
 			</parameters>
 			<return-value transfer-ownership="full">
@@ -479,19 +500,18 @@
 		<virtual-method name="set_key" invoker="set_key" throws="1">
 			<parameters>
 				<parameter name="field" transfer-ownership="none">
-					<type name="utf8" c:type="const gchar*"/>
-				</parameter>
-				<parameter name="v" transfer-ownership="none" allow-none="1">
-					<type name="gpointer" c:type="gpointer"/>
+					<type name="GdaData.DbField" c:type="GdaDataDbField*">
+						<type name="gpointer" c:type="gpointer"/>
+					</type>
 				</parameter>
 			</parameters>
 			<return-value transfer-ownership="full">
 				<type name="none"/>
 			</return-value>
 		</virtual-method>
-		<method name="get_field" c:identifier="gda_data_db_record_get_field" throws="1">
+		<method name="get_key" c:identifier="gda_data_db_record_get_key" throws="1">
 			<parameters>
-				<parameter name="field" transfer-ownership="none">
+				<parameter name="name" transfer-ownership="none">
 					<type name="utf8" c:type="const gchar*"/>
 				</parameter>
 			</parameters>
@@ -501,9 +521,9 @@
 				</type>
 			</return-value>
 		</method>
-		<virtual-method name="get_field" invoker="get_field" throws="1">
+		<virtual-method name="get_key" invoker="get_key" throws="1">
 			<parameters>
-				<parameter name="field" transfer-ownership="none">
+				<parameter name="name" transfer-ownership="none">
 					<type name="utf8" c:type="const gchar*"/>
 				</parameter>
 			</parameters>
@@ -543,7 +563,7 @@
 					<parameter name="self" transfer-ownership="none">
 						<type name="GdaData.DbRecord" c:type="GdaDataDbRecord*"/>
 					</parameter>
-					<parameter name="field" transfer-ownership="none">
+					<parameter name="name" transfer-ownership="none">
 						<type name="utf8" c:type="const gchar*"/>
 					</parameter>
 				</parameters>
@@ -559,10 +579,9 @@
 						<type name="GdaData.DbRecord" c:type="GdaDataDbRecord*"/>
 					</parameter>
 					<parameter name="field" transfer-ownership="none">
-						<type name="utf8" c:type="const gchar*"/>
-					</parameter>
-					<parameter name="v" transfer-ownership="none" allow-none="1">
-						<type name="GObject.Value" c:type="GValue*"/>
+						<type name="GdaData.DbField" c:type="GdaDataDbField*">
+							<type name="gpointer" c:type="gpointer"/>
+						</type>
 					</parameter>
 				</parameters>
 				<return-value transfer-ownership="full">
@@ -570,17 +589,33 @@
 				</return-value>
 			</callback>
 		</field>
-		<field name="set_key">
-			<callback name="set_key" c:type="set_key" throws="1">
+		<field name="get_field">
+			<callback name="get_field" c:type="get_field" throws="1">
 				<parameters>
 					<parameter name="self" transfer-ownership="none">
 						<type name="GdaData.DbRecord" c:type="GdaDataDbRecord*"/>
 					</parameter>
-					<parameter name="field" transfer-ownership="none">
+					<parameter name="name" transfer-ownership="none">
 						<type name="utf8" c:type="const gchar*"/>
 					</parameter>
-					<parameter name="v" transfer-ownership="none" allow-none="1">
+				</parameters>
+				<return-value transfer-ownership="full">
+					<type name="GdaData.DbField" c:type="GdaDataDbField*">
 						<type name="gpointer" c:type="gpointer"/>
+					</type>
+				</return-value>
+			</callback>
+		</field>
+		<field name="set_key">
+			<callback name="set_key" c:type="set_key" throws="1">
+				<parameters>
+					<parameter name="self" transfer-ownership="none">
+						<type name="GdaData.DbRecord" c:type="GdaDataDbRecord*"/>
+					</parameter>
+					<parameter name="field" transfer-ownership="none">
+						<type name="GdaData.DbField" c:type="GdaDataDbField*">
+							<type name="gpointer" c:type="gpointer"/>
+						</type>
 					</parameter>
 				</parameters>
 				<return-value transfer-ownership="full">
@@ -588,13 +623,13 @@
 				</return-value>
 			</callback>
 		</field>
-		<field name="get_field">
-			<callback name="get_field" c:type="get_field" throws="1">
+		<field name="get_key">
+			<callback name="get_key" c:type="get_key" throws="1">
 				<parameters>
 					<parameter name="self" transfer-ownership="none">
 						<type name="GdaData.DbRecord" c:type="GdaDataDbRecord*"/>
 					</parameter>
-					<parameter name="field" transfer-ownership="none">
+					<parameter name="name" transfer-ownership="none">
 						<type name="utf8" c:type="const gchar*"/>
 					</parameter>
 				</parameters>
@@ -699,6 +734,9 @@
 		<prerequisite name="Gee.Traversable"/>
 		<prerequisite name="Gee.Iterable"/>
 		<prerequisite name="Gee.Collection"/>
+		<property name="connection" writable="1">
+			<type name="Gda.Connection" c:type="GdaConnection*"/>
+		</property>
 		<property name="table">
 			<type name="GdaData.DbTable" c:type="GdaDataDbTable*">
 				<type name="gpointer" c:type="gpointer"/>
diff --git a/libgda/data/Record.vala b/libgda/data/Record.vala
index 43bd7f4..5133e16 100644
--- a/libgda/data/Record.vala
+++ b/libgda/data/Record.vala
@@ -51,41 +51,43 @@ namespace GdaData {
 		/**
          * Set the value to a field with the given @name.
          */
-        public void set_field (string field, Value? v)
-        	throws Error
+        public void set_field (DbField<Value?> field) throws Error
         {
-        	if (_fields.has_key (field)) {
-		    	var f = this._fields.get (field);
-		    	f.value = v;
-		    	this._fields.set (field, f);
+        	if (_fields.has_key (field.name)) {
+		    	var f = this._fields.get (field.name);
+		    	f.value = field.value;
+		    	this._fields.set (field.name, f);
         	}
         	else {
         		// FIXME: Get default attributes from table
-        		var n = new Field<Value?> (field, DbField.Attribute.NONE); 
+        		var n = new Field<Value?> (field.name, DbField.Attribute.NONE); 
         		n.connection = connection;
-        		n.value = v;
-        		this._fields.set (field, n);
+        		n.value = field.value;
+        		this._fields.set (field.name, n);
         	}
         	
         }
-        
-        public void set_key (string field, Value? v)
+        public DbField<Value?> get_field (string name) throws Error
+        {
+        	return _fields.get (name);
+        }
+        public void set_key (DbField<Value?> field)
         {
-        	if (_keys.has_key (field)) {
-		    	var f = _keys.get (field);
-		    	f.value = v;
-		    	_keys.set (field, f);
+        	if (_keys.has_key (field.name)) {
+		    	var f = _keys.get (field.name);
+		    	f.value = field.value;
+		    	_keys.set (field.name, f);
         	}
         	else {
         		// FIXME: Get default attributes from table
-        		var n = new Field<Value?> (field, DbField.Attribute.NONE); 
-        		n.value = v;
-        		_keys.set (field, n);
+        		var n = new Field<Value?> (field.name, DbField.Attribute.NONE); 
+        		n.value = field.value;
+        		_keys.set (field.name, n);
         	}
         }
-        public DbField<Value?> get_field (string field) throws Error
+        public DbField<Value?> get_key (string name) throws Error
         {
-        	return _fields.get (field);
+        	return _keys.get (name);
         }
         /**
          * Saves any modficiation made to in memory representation of the data directly to
diff --git a/libgda/libgda-5.0.vapi b/libgda/libgda-5.0.vapi
index 82d47ac..65049ad 100644
--- a/libgda/libgda-5.0.vapi
+++ b/libgda/libgda-5.0.vapi
@@ -2031,6 +2031,8 @@ namespace Gda {
 	[CCode (cheader_filename = "libgda/libgda.h")]
 	public static bool log_is_enabled ();
 	[CCode (cheader_filename = "libgda/libgda.h")]
+	public static void modify_statement_param_types (Gda.Statement stmt, Gda.DataModel model);
+	[CCode (cheader_filename = "libgda/libgda.h")]
 	public static bool parse_iso8601_date (GLib.Date gdate, string value);
 	[CCode (cheader_filename = "libgda/libgda.h")]
 	public static bool parse_iso8601_time (Gda.Time timegda, string value);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]