Commit b78d5c59f53d6bf7b58a5e6ed36ad6530b8473d8

Authored by Jürgen Knödlseder
1 parent 707608bd

Use GXmlNode* output typemap and remove cast methods.

An GXmlNode* output typemap has been added to GTemplates.i that provides automatic type conversion for XML nodes. Now, the cast_ methods are obsolete. They therefore have been removed.
pyext/GXmlComment.i
1 1 /***************************************************************************
2 2 * GXmlComment.i - XML comment node class *
3 3 * ----------------------------------------------------------------------- *
4   - * copyright (C) 2010-2011 by Jurgen Knodlseder *
  4 + * copyright (C) 2010-2012 by Juergen Knoedlseder *
5 5 * ----------------------------------------------------------------------- *
6 6 * *
7 7 * This program is free software: you can redistribute it and/or modify *
... ... @@ -21,15 +21,17 @@
21 21 /**
22 22 * @file GXmlComment.i
23 23 * @brief XML comment class Python interface definition
24   - * @author J. Knodlseder
  24 + * @author Juergen Knoedlseder
25 25 */
26 26 %{
27 27 /* Put headers and other declarations here that are needed for compilation */
28 28 #include "GXmlComment.hpp"
29 29 #include "GTools.hpp"
30   -#include "GException.hpp"
31 30 %}
32 31  
  32 +/* __ Includes ___________________________________________________________ */
  33 +%include "GTypemaps.i"
  34 +
33 35  
34 36 /***********************************************************************//**
35 37 * @class GXmlComment
... ... @@ -68,17 +70,3 @@ public:
68 70 return tochar(self->print());
69 71 }
70 72 };
71   -
72   -
73   -/***********************************************************************//**
74   - * @brief GXmlComment type casts
75   - ***************************************************************************/
76   -%inline %{
77   - GXmlComment* cast_GXmlComment(GXmlNode* node) {
78   - if (node->type() != GXmlNode::NT_COMMENT)
79   - throw GException::xml_bad_node_type("cast_GXmlComment(GXmlNode*)",
80   - "",
81   - "Expecting GXmlComment node.");
82   - return dynamic_cast<GXmlComment*>(node);
83   - }
84   -%};
... ...
pyext/GXmlDocument.i
1 1 /***************************************************************************
2 2 * GXmlDocument.i - XML document node class *
3 3 * ----------------------------------------------------------------------- *
4   - * copyright (C) 2010-2011 by Jurgen Knodlseder *
  4 + * copyright (C) 2010-2012 by Juergen Knoedlseder *
5 5 * ----------------------------------------------------------------------- *
6 6 * *
7 7 * This program is free software: you can redistribute it and/or modify *
... ... @@ -21,15 +21,17 @@
21 21 /**
22 22 * @file GXmlDocument.i
23 23 * @brief XML document class Python interface definition
24   - * @author J. Knodlseder
  24 + * @author Juergen Knoedlseder
25 25 */
26 26 %{
27 27 /* Put headers and other declarations here that are needed for compilation */
28 28 #include "GXmlDocument.hpp"
29 29 #include "GTools.hpp"
30   -#include "GException.hpp"
31 30 %}
32 31  
  32 +/* __ Includes ___________________________________________________________ */
  33 +%include "GTypemaps.i"
  34 +
33 35  
34 36 /***********************************************************************//**
35 37 * @class GXmlDocument
... ... @@ -71,17 +73,3 @@ public:
71 73 return tochar(self->print());
72 74 }
73 75 };
74   -
75   -
76   -/***********************************************************************//**
77   - * @brief GXmlDocument type casts
78   - ***************************************************************************/
79   -%inline %{
80   - GXmlDocument* cast_GXmlDocument(GXmlNode* node) {
81   - if (node->type() != GXmlNode::NT_DOCUMENT)
82   - throw GException::xml_bad_node_type("cast_GXmlDocument(GXmlNode*)",
83   - "",
84   - "Expecting GXmlDocument node.");
85   - return dynamic_cast<GXmlDocument*>(node);
86   - }
87   -%};
... ...
pyext/GXmlElement.i
1 1 /***************************************************************************
2 2 * GXmlElement.i - XML element node class definition *
3 3 * ----------------------------------------------------------------------- *
4   - * copyright (C) 2010-2011 by Jurgen Knodlseder *
  4 + * copyright (C) 2010-2012 by Juergen Knoedlseder *
5 5 * ----------------------------------------------------------------------- *
6 6 * *
7 7 * This program is free software: you can redistribute it and/or modify *
... ... @@ -21,15 +21,17 @@
21 21 /**
22 22 * @file GXmlElement.i
23 23 * @brief XML element node class Python interface definition
24   - * @author J. Knodlseder
  24 + * @author Juergen Knoedlseder
25 25 */
26 26 %{
27 27 /* Put headers and other declarations here that are needed for compilation */
28 28 #include "GXmlElement.hpp"
29 29 #include "GTools.hpp"
30   -#include "GException.hpp"
31 30 %}
32 31  
  32 +/* __ Includes ___________________________________________________________ */
  33 +%include "GTypemaps.i"
  34 +
33 35  
34 36 /***********************************************************************//**
35 37 * @class GXmlElement
... ... @@ -71,17 +73,3 @@ public:
71 73 return tochar(self->print());
72 74 }
73 75 };
74   -
75   -
76   -/***********************************************************************//**
77   - * @brief GXmlElement type casts
78   - ***************************************************************************/
79   -%inline %{
80   - GXmlElement* cast_GXmlElement(GXmlNode* node) {
81   - if (node->type() != GXmlNode::NT_ELEMENT)
82   - throw GException::xml_bad_node_type("cast_GXmlElement(GXmlNode*)",
83   - "",
84   - "Expecting GXmlElement node.");
85   - return dynamic_cast<GXmlElement*>(node);
86   - }
87   -%};
... ...
pyext/GXmlNode.i
... ... @@ -29,6 +29,9 @@
29 29 #include "GTools.hpp"
30 30 %}
31 31  
  32 +/* __ Includes ___________________________________________________________ */
  33 +%include "GTypemaps.i"
  34 +
32 35  
33 36 /***********************************************************************//**
34 37 * @class GXmlNode
... ...
pyext/GXmlPI.i
1 1 /***************************************************************************
2 2 * GXmlPI.i - XML PI node class definition *
3 3 * ----------------------------------------------------------------------- *
4   - * copyright (C) 2010-2011 by Jurgen Knodlseder *
  4 + * copyright (C) 2010-2012 by Juergen Knoedlseder *
5 5 * ----------------------------------------------------------------------- *
6 6 * *
7 7 * This program is free software: you can redistribute it and/or modify *
... ... @@ -21,15 +21,17 @@
21 21 /**
22 22 * @file GXmlPI.i
23 23 * @brief XML PI node class Python interface definition
24   - * @author J. Knodlseder
  24 + * @author Juergen Knoedlseder
25 25 */
26 26 %{
27 27 /* Put headers and other declarations here that are needed for compilation */
28 28 #include "GXmlPI.hpp"
29 29 #include "GTools.hpp"
30   -#include "GException.hpp"
31 30 %}
32 31  
  32 +/* __ Includes ___________________________________________________________ */
  33 +%include "GTypemaps.i"
  34 +
33 35  
34 36 /***********************************************************************//**
35 37 * @class GXmlPI
... ... @@ -63,17 +65,3 @@ public:
63 65 return tochar(self->print());
64 66 }
65 67 };
66   -
67   -
68   -/***********************************************************************//**
69   - * @brief GXmlPI type casts
70   - ***************************************************************************/
71   -%inline %{
72   - GXmlPI* cast_GXmlPI(GXmlNode* node) {
73   - if (node->type() != GXmlNode::NT_PI)
74   - throw GException::xml_bad_node_type("cast_GXmlPI(GXmlNode*)",
75   - "",
76   - "Expecting GXmlPI node.");
77   - return dynamic_cast<GXmlPI*>(node);
78   - }
79   -%};
... ...
pyext/GXmlText.i
1 1 /***************************************************************************
2 2 * GXmlText.i - XML text node class *
3 3 * ----------------------------------------------------------------------- *
4   - * copyright (C) 2010-2011 by Jurgen Knodlseder *
  4 + * copyright (C) 2010-2012 by Juergen Knoedlseder *
5 5 * ----------------------------------------------------------------------- *
6 6 * *
7 7 * This program is free software: you can redistribute it and/or modify *
... ... @@ -21,15 +21,17 @@
21 21 /**
22 22 * @file GXmlText.i
23 23 * @brief XML text node class Python interface definition
24   - * @author J. Knodlseder
  24 + * @author Juergen Knoedlseder
25 25 */
26 26 %{
27 27 /* Put headers and other declarations here that are needed for compilation */
28 28 #include "GXmlText.hpp"
29 29 #include "GTools.hpp"
30   -#include "GException.hpp"
31 30 %}
32 31  
  32 +/* __ Includes ___________________________________________________________ */
  33 +%include "GTypemaps.i"
  34 +
33 35  
34 36 /***********************************************************************//**
35 37 * @class GXmlText
... ... @@ -63,17 +65,3 @@ public:
63 65 return tochar(self->print());
64 66 }
65 67 };
66   -
67   -
68   -/***********************************************************************//**
69   - * @brief GXmlText type casts
70   - ***************************************************************************/
71   -%inline %{
72   - GXmlText* cast_GXmlText(GXmlNode* node) {
73   - if (node->type() != GXmlNode::NT_TEXT)
74   - throw GException::xml_bad_node_type("cast_GXmlText(GXmlNode*)",
75   - "",
76   - "Expecting GXmlText node.");
77   - return dynamic_cast<GXmlText*>(node);
78   - }
79   -%};
... ...