DstRefAppData is just a template, don't consider it a string but a container

for anything
This commit is contained in:
Frédéric Péters 2007-07-30 09:24:37 +00:00
parent 7d712234f9
commit 9163f6f4bb
17 changed files with 68 additions and 44 deletions

View File

@ -232,7 +232,9 @@ lasso_idwsf2_data_service_parse_query_items(LassoIdWsf2DataService *service)
node = xpathObj->nodesetval->nodeTab[0];
data = lasso_idwsf2_dstref_data_new();
data_item = LASSO_IDWSF2_DSTREF_ITEM_DATA(data);
data_item->any = g_list_append(data_item->any, xmlCopyNode(node, 1));
LASSO_IDWSF2_DSTREF_APP_DATA(data_item)->any = g_list_append(
LASSO_IDWSF2_DSTREF_APP_DATA(data_item)->any,
xmlCopyNode(node, 1));
if (item_result_query_base->itemID != NULL) {
data_item->itemIDRef = g_strdup(item_result_query_base->itemID);
}
@ -359,7 +361,7 @@ lasso_idwsf2_data_service_get_attribute_node(LassoIdWsf2DataService *service, co
{
LassoIdWsf2Profile *profile = LASSO_IDWSF2_PROFILE(service);
LassoIdWsf2DstRefQueryResponse *response;
LassoIdWsf2DstRefItemData *data = NULL;
LassoIdWsf2DstRefAppData *data = NULL;
GList *iter;
g_return_val_if_fail(LASSO_IS_IDWSF2_DATA_SERVICE(service), NULL);
@ -371,7 +373,7 @@ lasso_idwsf2_data_service_get_attribute_node(LassoIdWsf2DataService *service, co
/* If no item_id is given, return the first item */
if (item_id == NULL && response->Data != NULL && response->Data->data != NULL) {
data = LASSO_IDWSF2_DSTREF_ITEM_DATA(response->Data->data);
data = LASSO_IDWSF2_DSTREF_APP_DATA(response->Data->data);
if (data->any != NULL && data->any->data != NULL) {
return xmlCopyNode(data->any->data, 1);
}
@ -386,7 +388,7 @@ lasso_idwsf2_data_service_get_attribute_node(LassoIdWsf2DataService *service, co
continue;
}
if (strcmp(LASSO_IDWSF2_DSTREF_ITEM_DATA(iter->data)->itemIDRef, item_id) == 0) {
data = LASSO_IDWSF2_DSTREF_ITEM_DATA(iter->data);
data = LASSO_IDWSF2_DSTREF_APP_DATA(iter->data);
break;
}
}

View File

@ -114,7 +114,7 @@ lasso_idwsf2_disco_abstract_new()
* Return value: a newly created #LassoIdWsf2DiscoAbstract object
**/
LassoIdWsf2DiscoAbstract*
lasso_idwsf2_disco_abstract_new_with_string(char *content)
lasso_idwsf2_disco_abstract_new_with_string(const char *content)
{
LassoIdWsf2DiscoAbstract *object;
object = g_object_new(LASSO_TYPE_IDWSF2_DISCO_ABSTRACT, NULL);

View File

@ -72,7 +72,7 @@ struct _LassoIdWsf2DiscoAbstractClass {
LASSO_EXPORT GType lasso_idwsf2_disco_abstract_get_type(void);
LASSO_EXPORT LassoIdWsf2DiscoAbstract* lasso_idwsf2_disco_abstract_new(void);
LASSO_EXPORT LassoIdWsf2DiscoAbstract* lasso_idwsf2_disco_abstract_new_with_string(char *content);
LASSO_EXPORT LassoIdWsf2DiscoAbstract* lasso_idwsf2_disco_abstract_new_with_string(const char *content);
#ifdef __cplusplus

View File

@ -114,7 +114,7 @@ lasso_idwsf2_disco_provider_id_new()
* Return value: a newly created #LassoIdWsf2DiscoProviderID object
**/
LassoIdWsf2DiscoProviderID*
lasso_idwsf2_disco_provider_id_new_with_string(char *content)
lasso_idwsf2_disco_provider_id_new_with_string(const char *content)
{
LassoIdWsf2DiscoProviderID *object;
object = g_object_new(LASSO_TYPE_IDWSF2_DISCO_PROVIDER_ID, NULL);

View File

@ -72,7 +72,7 @@ struct _LassoIdWsf2DiscoProviderIDClass {
LASSO_EXPORT GType lasso_idwsf2_disco_provider_id_get_type(void);
LASSO_EXPORT LassoIdWsf2DiscoProviderID* lasso_idwsf2_disco_provider_id_new(void);
LASSO_EXPORT LassoIdWsf2DiscoProviderID* lasso_idwsf2_disco_provider_id_new_with_string(char *content);
LASSO_EXPORT LassoIdWsf2DiscoProviderID* lasso_idwsf2_disco_provider_id_new_with_string(const char *content);
#ifdef __cplusplus

View File

@ -114,7 +114,7 @@ lasso_idwsf2_disco_service_type_new()
* Return value: a newly created #LassoIdWsf2DiscoServiceType object
**/
LassoIdWsf2DiscoServiceType*
lasso_idwsf2_disco_service_type_new_with_string(char *content)
lasso_idwsf2_disco_service_type_new_with_string(const char *content)
{
LassoIdWsf2DiscoServiceType *object;
object = g_object_new(LASSO_TYPE_IDWSF2_DISCO_SERVICE_TYPE, NULL);

View File

@ -72,7 +72,7 @@ struct _LassoIdWsf2DiscoServiceTypeClass {
LASSO_EXPORT GType lasso_idwsf2_disco_service_type_get_type(void);
LASSO_EXPORT LassoIdWsf2DiscoServiceType* lasso_idwsf2_disco_service_type_new(void);
LASSO_EXPORT LassoIdWsf2DiscoServiceType* lasso_idwsf2_disco_service_type_new_with_string(char *content);
LASSO_EXPORT LassoIdWsf2DiscoServiceType* lasso_idwsf2_disco_service_type_new_with_string(const char *content);
#ifdef __cplusplus

View File

@ -40,8 +40,8 @@
static struct XmlSnippet schema_snippets[] = {
{ "content", SNIPPET_TEXT_CHILD,
G_STRUCT_OFFSET(LassoIdWsf2DstRefAppData, content) },
{ "", SNIPPET_LIST_XMLNODES,
G_STRUCT_OFFSET(LassoIdWsf2DstRefAppData, any) },
{NULL, 0, 0}
};
@ -55,7 +55,7 @@ static LassoNodeClass *parent_class = NULL;
static void
instance_init(LassoIdWsf2DstRefAppData *node)
{
node->content = NULL;
node->any = NULL;
}
static void
@ -106,22 +106,3 @@ lasso_idwsf2_dstref_app_data_new()
{
return g_object_new(LASSO_TYPE_IDWSF2_DSTREF_APP_DATA, NULL);
}
/**
* lasso_idwsf2_dstref_app_data_new_with_string:
* @content:
*
* Creates a new #LassoIdWsf2DstRefAppData object and initializes it
* with @content.
*
* Return value: a newly created #LassoIdWsf2DstRefAppData object
**/
LassoIdWsf2DstRefAppData*
lasso_idwsf2_dstref_app_data_new_with_string(char *content)
{
LassoIdWsf2DstRefAppData *object;
object = g_object_new(LASSO_TYPE_IDWSF2_DSTREF_APP_DATA, NULL);
object->content = g_strdup(content);
return object;
}

View File

@ -61,7 +61,7 @@ struct _LassoIdWsf2DstRefAppData {
/*< public >*/
/* elements */
char *content;
GList *any; /* of xmlNode */
};
@ -72,7 +72,6 @@ struct _LassoIdWsf2DstRefAppDataClass {
LASSO_EXPORT GType lasso_idwsf2_dstref_app_data_get_type(void);
LASSO_EXPORT LassoIdWsf2DstRefAppData* lasso_idwsf2_dstref_app_data_new(void);
LASSO_EXPORT LassoIdWsf2DstRefAppData* lasso_idwsf2_dstref_app_data_new_with_string(char *content);
#ifdef __cplusplus

View File

@ -42,8 +42,6 @@
static struct XmlSnippet schema_snippets[] = {
{ "", SNIPPET_LIST_XMLNODES,
G_STRUCT_OFFSET(LassoIdWsf2DstRefItemData, any) },
{ "itemIDRef", SNIPPET_ATTRIBUTE,
G_STRUCT_OFFSET(LassoIdWsf2DstRefItemData, itemIDRef) },
{ "notSorted", SNIPPET_ATTRIBUTE,
@ -63,7 +61,6 @@ static LassoNodeClass *parent_class = NULL;
static void
instance_init(LassoIdWsf2DstRefItemData *node)
{
node->any = NULL;
node->itemIDRef = NULL;
node->notSorted = NULL;
node->changeFormat = NULL;
@ -99,7 +96,7 @@ lasso_idwsf2_dstref_item_data_get_type()
(GInstanceInitFunc) instance_init,
};
this_type = g_type_register_static(LASSO_TYPE_NODE,
this_type = g_type_register_static(LASSO_TYPE_IDWSF2_DSTREF_APP_DATA,
"LassoIdWsf2DstRefItemData", &this_info, 0);
}
return this_type;

View File

@ -30,6 +30,7 @@ extern "C" {
#endif /* __cplusplus */
#include <lasso/xml/xml.h>
#include "dstref_app_data.h"
#define LASSO_TYPE_IDWSF2_DSTREF_ITEM_DATA (lasso_idwsf2_dstref_item_data_get_type())
#define LASSO_IDWSF2_DSTREF_ITEM_DATA(obj) \
@ -57,11 +58,9 @@ typedef struct _LassoIdWsf2DstRefItemDataClass LassoIdWsf2DstRefItemDataClass;
struct _LassoIdWsf2DstRefItemData {
LassoNode parent;
LassoIdWsf2DstRefAppData parent;
/*< public >*/
/* elements */
GList *any; /* of xmlNode */
/* attributes */
char *itemIDRef;
char *notSorted;
@ -70,7 +69,7 @@ struct _LassoIdWsf2DstRefItemData {
struct _LassoIdWsf2DstRefItemDataClass {
LassoNodeClass parent;
LassoIdWsf2DstRefAppDataClass parent;
};
LASSO_EXPORT GType lasso_idwsf2_dstref_item_data_get_type(void);

View File

@ -57,6 +57,41 @@ static struct XmlSnippet schema_snippets[] = {
static LassoNodeClass *parent_class = NULL;
static xmlNode*
get_xmlNode(LassoNode *node, gboolean lasso_dump)
{
xmlNode *xmlnode;
xmlnode = parent_class->get_xmlNode(node, lasso_dump);
xml_insure_namespace(xmlnode, NULL, TRUE,
LASSO_IDWSF2_DSTREF_MODIFY(node)->hrefServiceType,
LASSO_IDWSF2_DSTREF_MODIFY(node)->prefixServiceType);
return xmlnode;
}
static int
init_from_xml(LassoNode *node, xmlNode *xmlnode)
{
LassoIdWsf2DstRefModify *object = LASSO_IDWSF2_DSTREF_MODIFY(node);
int res;
res = parent_class->init_from_xml(node, xmlnode);
if (res != 0) {
return res;
}
object->hrefServiceType = g_strdup((char*)xmlnode->ns->href);
object->prefixServiceType = lasso_get_prefix_for_idwsf2_dst_service_href(
object->hrefServiceType);
if (object->prefixServiceType == NULL) {
/* XXX: what to do here ? */
}
return 0;
}
/*****************************************************************************/
/* instance and class init functions */
/*****************************************************************************/
@ -66,6 +101,8 @@ instance_init(LassoIdWsf2DstRefModify *node)
{
node->ModifyItem = NULL;
node->ResultQuery = NULL;
node->prefixServiceType = NULL;
node->hrefServiceType = NULL;
}
static void
@ -74,6 +111,8 @@ class_init(LassoIdWsf2DstRefModifyClass *klass)
LassoNodeClass *nclass = LASSO_NODE_CLASS(klass);
parent_class = g_type_class_peek_parent(klass);
nclass->get_xmlNode = get_xmlNode;
nclass->init_from_xml = init_from_xml;
nclass->node_data = g_new0(LassoNodeClassData, 1);
lasso_node_class_set_nodename(nclass, "Modify");
lasso_node_class_set_ns(nclass, LASSO_IDWSF2_DSTREF_HREF, LASSO_IDWSF2_DSTREF_PREFIX);

View File

@ -64,6 +64,10 @@ struct _LassoIdWsf2DstRefModify {
/* elements */
GList *ModifyItem; /* of LassoIdWsf2DstRefModifyItem */
GList *ResultQuery; /* of LassoIdWsf2DstRefResultQuery */
/*< private >*/
char *prefixServiceType;
char *hrefServiceType;
};

View File

@ -36,6 +36,8 @@
static struct XmlSnippet schema_snippets[] = {
{ "", SNIPPET_LIST_XMLNODES,
G_STRUCT_OFFSET(LassoIdWsf2SubsRefAppData, any) },
{ "Subscription", SNIPPET_LIST_NODES,
G_STRUCT_OFFSET(LassoIdWsf2SubsRefAppData, Subscription) },
{NULL, 0, 0}
@ -51,6 +53,7 @@ static LassoNodeClass *parent_class = NULL;
static void
instance_init(LassoIdWsf2SubsRefAppData *node)
{
node->any = NULL;
node->Subscription = NULL;
}

View File

@ -61,6 +61,7 @@ struct _LassoIdWsf2SubsRefAppData {
/*< public >*/
/* elements */
GList *any; /* of xmlNode */
GList *Subscription;
};

View File

@ -26,7 +26,6 @@
%rename(IdWsf2DstRefAppData) LassoIdWsf2DstRefAppData;
#endif
typedef struct {
char *content;
} LassoIdWsf2DstRefAppData;
%extend LassoIdWsf2DstRefAppData {

View File

@ -111,7 +111,7 @@ SET_NODE_INFO(IdWsf2DstRefModifyItem, Node)
SET_NODE_INFO(IdWsf2DstRefAppData, Node)
SET_NODE_INFO(IdWsf2DstRefTestItem, IdWsf2DstTestItemBase)
SET_NODE_INFO(IdWsf2DstRefCreate, IdWsf2DstRequest)
SET_NODE_INFO(IdWsf2DstRefItemData, Node)
SET_NODE_INFO(IdWsf2DstRefItemData, IdWsf2DstRefAppData)
SET_NODE_INFO(IdWsf2DstRefData, IdWsf2DstRefItemData)
SET_NODE_INFO(IdWsf2DstRefModify, IdWsf2DstRequest)
SET_NODE_INFO(IdWsf2DstRefResultQuery, IdWsf2DstResultQueryBase)