Commit b78d5c59f53d6bf7b58a5e6ed36ad6530b8473d8
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.
Showing
6 changed files
with
28 additions
and
85 deletions
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 | -%}; | ... | ... |