00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef MIDGARD_REFLECTION_PROPERTY_H
00020 #define MIDGARD_REFLECTION_PROPERTY_H
00021
00032 #include "midgard/midgard_type.h"
00033 #include "midgard/types.h"
00034
00035
00036 #define MIDGARD_TYPE_REFLECTION_PROPERTY (midgard_reflection_property_get_type())
00037 #define MIDGARD_REFLECTION_PROPERTY(object) \
00038 (G_TYPE_CHECK_INSTANCE_CAST ((object),MIDGARD_TYPE_REFLECTION_PROPERTY, midgard))
00039 #define MIDGARD_REFLECTION_PROPERTY_CLASS(klass) \
00040 (G_TYPE_CHECK_CLASS_CAST ((klass), MIDGARD_TYPE_REFLECTION_PROPERTY, MidgardReflectionPropertyClass))
00041 #define MIDGARD_IS_REFLECTION_PROPERTY(object) \
00042 (G_TYPE_CHECK_INSTANCE_TYPE ((object), MIDGARD_TYPE_REFLECTION_PROPERTY))
00043 #define MIDGARD_IS_REFLECTION_PROPERTY_CLASS(klass) \
00044 (G_TYPE_CHECK_CLASS_TYPE ((klass), MIDGARD_REFLECTION_OBJECT_PROPERTY))
00045 #define MIDGARD_REFLECTION_PROPERTY_GET_CLASS(obj) \
00046 (G_TYPE_INSTANCE_GET_CLASS ((obj), MIDGARD_TYPE_REFLECTION_PROPERTY, MidgardReflectionPropertyClass))
00047
00048 typedef struct _MidgardReflectionProperty MidgardReflectionProperty;
00049 typedef struct _MidgardReflectionPropertyClass MidgardReflectionPropertyClass;
00050
00058 struct _MidgardReflectionPropertyClass{
00059 GObjectClass parent;
00060
00061
00062 gboolean (*is_multilang) (MidgardReflectionProperty *object, const gchar *property);
00063 gboolean (*is_link) (MidgardReflectionProperty *object, const gchar *property);
00064 };
00065
00073 extern GType midgard_reflection_property_get_type(void);
00074
00082 extern MidgardReflectionProperty *midgard_reflection_property_new(
00083 MidgardObjectClass *klass);
00084
00101 extern GType
00102 midgard_reflection_property_get_midgard_type(
00103 MidgardReflectionProperty *object, const gchar *name);
00104
00119 extern gboolean
00120 midgard_reflection_property_is_link(
00121 MidgardReflectionProperty *object, const gchar *name);
00122
00138 extern gboolean
00139 midgard_reflection_property_is_linked(
00140 MidgardReflectionProperty *object, const gchar *name);
00141
00157 extern MidgardObjectClass
00158 *midgard_reflection_property_get_link_class(
00159 MidgardReflectionProperty *object, const gchar *name);
00160
00175 extern const gchar
00176 *midgard_reflection_property_get_link_name(
00177 MidgardReflectionProperty *object, const gchar *name);
00178
00194 extern const gchar
00195 *midgard_reflection_property_get_link_target(
00196 MidgardReflectionProperty *object, const gchar *name);
00197
00216 extern const gchar
00217 *midgard_reflection_property_description(
00218 MidgardReflectionProperty *object, const gchar *name);
00219
00236 extern gboolean
00237 midgard_reflection_property_is_multilang(
00238 MidgardReflectionProperty *object, const gchar *name);
00239
00240 #endif