[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gnue/geas/src/classdef classdef.c classdef.h gc...
From: |
Reinhard Mueller |
Subject: |
gnue/geas/src/classdef classdef.c classdef.h gc... |
Date: |
Wed, 14 Nov 2001 17:04:31 -0500 |
CVSROOT: /cvsroot/gnue
Module name: gnue
Changes by: Reinhard Mueller <address@hidden> 01/11/14 17:04:29
Modified files:
geas/src/classdef: classdef.c classdef.h gcdinfo.c
Log message:
The automatic fields id, cre_user, cre_date, mod_user and mod_date are
now defined NOTNULL. The id field and the hidden fields for implicit references
and lists are now defined INTERNAL.
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/geas/src/classdef/classdef.c.diff?tr1=1.23&tr2=1.24&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/geas/src/classdef/classdef.h.diff?tr1=1.20&tr2=1.21&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/geas/src/classdef/gcdinfo.c.diff?tr1=1.8&tr2=1.9&r1=text&r2=text
Patches:
Index: gnue/geas/src/classdef/classdef.c
diff -u gnue/geas/src/classdef/classdef.c:1.23
gnue/geas/src/classdef/classdef.c:1.24
--- gnue/geas/src/classdef/classdef.c:1.23 Thu Nov 1 13:14:25 2001
+++ gnue/geas/src/classdef/classdef.c Wed Nov 14 17:04:29 2001
@@ -19,7 +19,7 @@
along with GEAS; if not, write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- $Id: classdef.c,v 1.23 2001/11/01 18:14:25 reinhard Exp $
+ $Id: classdef.c,v 1.24 2001/11/14 22:04:29 reinhard Exp $
*/
#include "config.h"
@@ -237,6 +237,7 @@
geas_cd_module_class_new (geas_cd_module *m, const char *name)
{
geas_cd_class *c;
+ geas_cd_field *f;
g_return_val_if_fail (m, NULL);
g_return_val_if_fail (name, NULL);
@@ -254,11 +255,21 @@
g_hash_table_insert (m->classes, c->name, c);
/* Create the automatic fields */
- geas_cd_class_field_new (c, _geas_module, "id", _id_type);
- geas_cd_class_field_new (c, _geas_module, "cre_user", _username_type);
- geas_cd_class_field_new (c, _geas_module, "cre_time", _datetime_type);
- geas_cd_class_field_new (c, _geas_module, "mod_user", _username_type);
- geas_cd_class_field_new (c, _geas_module, "mod_time", _datetime_type);
+ f = geas_cd_class_field_new (c, _geas_module, "id", _id_type);
+ geas_cd_field_prop_set (f, GEAS_CD_FPROP_NOTNULL);
+ geas_cd_field_prop_set (f, GEAS_CD_FPROP_INTERNAL);
+
+ f = geas_cd_class_field_new (c, _geas_module, "cre_user",
_username_type);
+ geas_cd_field_prop_set (f, GEAS_CD_FPROP_NOTNULL);
+
+ f = geas_cd_class_field_new (c, _geas_module, "cre_time",
_datetime_type);
+ geas_cd_field_prop_set (f, GEAS_CD_FPROP_NOTNULL);
+
+ f = geas_cd_class_field_new (c, _geas_module, "mod_user",
_username_type);
+ geas_cd_field_prop_set (f, GEAS_CD_FPROP_NOTNULL);
+
+ f = geas_cd_class_field_new (c, _geas_module, "mod_time",
_datetime_type);
+ geas_cd_field_prop_set (f, GEAS_CD_FPROP_NOTNULL);
}
return (c);
@@ -541,7 +552,8 @@
g_strconcat ("_", f->name, NULL),
GEAS_CD_DATATYPE_ID);
/* The shadow field db column starts with an underscore */
- shadow->name_db = g_strconcat ("_", f->name_db, NULL);
+ shadow->name_db = g_strconcat ("_", f->name_db, NULL);
+ shadow->property = f->property | GEAS_CD_FPROP_INTERNAL;
f->thisfield = shadow;
f->otherfield = geas_cd_class_find_field (f->otherclass,
@@ -569,11 +581,12 @@
").", f->name, NULL),
GEAS_CD_DATATYPE_ID);
/* The shadow field db column starts with an underscore */
- shadow->name_db = g_strconcat ("_", f->thisclass->name_db, "_",
- f->name_db, NULL);
+ shadow->name_db = g_strconcat ("_", f->thisclass->name_db, "_",
+ f->name_db, NULL);
/* FIXME: The above is for compatibility; this would be correct:
- shadow->name_db = g_strconcat ("_", f->thisclass->name_db, "__",
- f->name_db, NULL); */
+ shadow->name_db = g_strconcat ("_", f->thisclass->name_db, "__",
+ f->name_db, NULL); */
+ shadow->property = GEAS_CD_FPROP_INTERNAL;
f->thisfield = geas_cd_class_find_field (f->thisclass, _geas_module,
"id");
@@ -1183,6 +1196,39 @@
g_return_val_if_fail (f, NULL);
return (f->otherfield);
+}
+
+/* ------------------------------------------------------------------------- *\
+ * Set a field property
+\* ------------------------------------------------------------------------- */
+void
+geas_cd_field_prop_set (geas_cd_field *f, int property)
+{
+ g_return_if_fail (f);
+
+ f->property |= property;
+}
+
+/* ------------------------------------------------------------------------- *\
+ * Clear a field property
+\* ------------------------------------------------------------------------- */
+void
+geas_cd_field_prop_clr (geas_cd_field *f, int property)
+{
+ g_return_if_fail (f);
+
+ f->property &= ~property;
+}
+
+/* ------------------------------------------------------------------------- *\
+ * Find out if a field property is set
+\* ------------------------------------------------------------------------- */
+int
+geas_cd_field_prop_get (geas_cd_field *f, int property)
+{
+ g_return_val_if_fail (f, 0);
+
+ return (f->property & property);
}
/* ------------------------------------------------------------------------- *\
Index: gnue/geas/src/classdef/classdef.h
diff -u gnue/geas/src/classdef/classdef.h:1.20
gnue/geas/src/classdef/classdef.h:1.21
--- gnue/geas/src/classdef/classdef.h:1.20 Thu Nov 1 14:04:38 2001
+++ gnue/geas/src/classdef/classdef.h Wed Nov 14 17:04:29 2001
@@ -19,7 +19,7 @@
along with GEAS; if not, write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- $Id: classdef.h,v 1.20 2001/11/01 19:04:38 reinhard Exp $
+ $Id: classdef.h,v 1.21 2001/11/14 22:04:29 reinhard Exp $
*/
/* ------------------------------------------------------------------------- *\
@@ -147,7 +147,8 @@
* Fields
\* ------------------------------------------------------------------------- */
-#define GEAS_CD_FPROP_NOTNULL 0x0001;
+#define GEAS_CD_FPROP_NOTNULL 0x0001 /* may not contain NULL value */
+#define GEAS_CD_FPROP_INTERNAL 0x0002 /* only for internal use of GEAS */
void geas_cd_field_set_format (geas_cd_field *f, int format);
const char *geas_cd_field_get_name (const geas_cd_field *f);
@@ -159,4 +160,7 @@
geas_cd_field *geas_cd_field_get_thisfield (const geas_cd_field *f);
geas_cd_class *geas_cd_field_get_otherclass (const geas_cd_field *f);
geas_cd_field *geas_cd_field_get_otherfield (const geas_cd_field *f);
+void geas_cd_field_prop_set (geas_cd_field *f, int property);
+void geas_cd_field_prop_clr (geas_cd_field *f, int property);
+int geas_cd_field_prop_get (geas_cd_field *f, int property);
void geas_cd_field_free (geas_cd_field *f);
Index: gnue/geas/src/classdef/gcdinfo.c
diff -u gnue/geas/src/classdef/gcdinfo.c:1.8
gnue/geas/src/classdef/gcdinfo.c:1.9
--- gnue/geas/src/classdef/gcdinfo.c:1.8 Sat Oct 13 17:46:33 2001
+++ gnue/geas/src/classdef/gcdinfo.c Wed Nov 14 17:04:29 2001
@@ -19,7 +19,7 @@
along with GEAS; if not, write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- $Id: gcdinfo.c,v 1.8 2001/10/13 21:46:33 reinhard Exp $
+ $Id: gcdinfo.c,v 1.9 2001/11/14 22:04:29 reinhard Exp $
*/
#include <stdio.h>
@@ -53,6 +53,10 @@
fl = geas_cd_class_fieldlist_new (c);
while ((f = geas_cd_fieldlist_next (fl)))
{
+ if (geas_cd_field_prop_get (f, GEAS_CD_FPROP_INTERNAL))
+ {
+ continue;
+ }
printf ("%-32s ", geas_cd_field_get_name_full (f));
switch (geas_cd_field_get_datatype (f))
{
- gnue/geas/src/classdef classdef.c classdef.h gc...,
Reinhard Mueller <=