Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/hadronic/models/lend/src/xDataTOM_importXML_regionsW_XYs_LegendreSeries.cc

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

  1 /*
  2 # <<BEGIN-copyright>>
  3 # <<END-copyright>>
  4 */
  5 #include <stdlib.h>
  6 #include <string.h>
  7 #include <limits.h>
  8 #include <ctype.h>
  9 
 10 #include "xDataTOM_importXML_private.h"
 11 
 12 #if defined __cplusplus
 13 namespace GIDI {
 14 using namespace GIDI;
 15 #endif
 16 
 17 static int xDataXML_regionsW_XYs_LegendreSeries_regionToTOM( statusMessageReporting *smr, xDataXML_element *XE, 
 18     xDataTOM_W_XYs_LegendreSeries *W_XYs_LegendreSeries, char const *wLabel, xDataTOM_axes *axes );
 19 /*
 20 ************************************************************
 21 */
 22 int xDataXML_regionsW_XYs_LegendreSeriesToTOM( statusMessageReporting *smr, xDataXML_element *XE, xDataTOM_element *TE ) {
 23 
 24     int index, length;
 25     xDataTOM_xDataInfo *xDI = &(TE->xDataInfo);
 26     xDataXML_element *XMLChild;
 27     char const *wLabel;
 28     xDataTOM_regionsW_XYs_LegendreSeries *regionsW_XYs_LegendreSeries;
 29 
 30     if( ( xDI->data = xDataXML_initializeData( smr, XE, TE, xDataTOM_regionsW_XYs_LegendreSeries_ID, sizeof( xDataTOM_regionsW_XYs_LegendreSeries ) ) ) 
 31         == NULL ) return( 1 );
 32     regionsW_XYs_LegendreSeries = (xDataTOM_regionsW_XYs_LegendreSeries *) xDI->data;
 33     length = xDataXML_numberOfElementsByTagName( smr, XE, "region" );
 34     if( xDataTOM_regionsW_XYs_LegendreSeries_initialize( smr, regionsW_XYs_LegendreSeries, length, &(xDI->axes) ) != 0 ) goto err;
 35     if( ( wLabel = xDataTOM_axes_getLabel( smr, &(xDI->axes), 0 ) ) == NULL ) goto err;
 36 
 37     for( XMLChild = xDataXML_getFirstElement( XE ), index = 0; XMLChild != NULL; XMLChild = xDataXML_getNextElement( XMLChild ) ) {
 38         if( strcmp( "axes", XMLChild->name ) == 0 ) {
 39             continue; }
 40         else if( strcmp( "region", XMLChild->name ) == 0 ) {
 41             if( xDataXML_regionsW_XYs_LegendreSeries_regionToTOM( smr, XMLChild, &(regionsW_XYs_LegendreSeries->W_XYs_LegendreSeries[index]), 
 42                 wLabel, regionsW_XYs_LegendreSeries->axes ) != 0 ) goto err;
 43             index++; }
 44         else {
 45             smr_setReportError3( smr, xDataXML_get_smrUserInterfaceFromElement( XE ), xDataTOM_smrLibraryID, -1,
 46                 "invalid element '%s' in xData 'regionsW_XYs_LegendreSeries'", XMLChild->name );
 47             goto err;
 48         }
 49     }
 50 
 51     return( 0 );
 52 
 53 err:
 54 /* Need to free things here?????????.*/
 55     return( 1 );
 56 }
 57 /*
 58 ************************************************************
 59 */
 60 static int xDataXML_regionsW_XYs_LegendreSeries_regionToTOM( statusMessageReporting *smr, xDataXML_element *XE, 
 61         xDataTOM_W_XYs_LegendreSeries *W_XYs_LegendreSeries, char const *wLabel, xDataTOM_axes *axes ) {
 62 
 63     int index, length;
 64     xDataXML_element *XMLChild, *interpolationAxesElement = NULL;
 65     xDataTOM_interpolation interpolation;
 66     char const *sInterpolation;
 67 
 68     for( XMLChild = xDataXML_getFirstElement( XE ); XMLChild != NULL; XMLChild = xDataXML_getNextElement( XMLChild ) ) {
 69         if( strcmp( "interpolationAxes", XMLChild->name ) == 0 ) {
 70             if( interpolationAxesElement != NULL ) {
 71                 smr_setReportError3( smr, xDataXML_get_smrUserInterfaceFromElement( XE ), xDataTOM_smrLibraryID, -1, 
 72                     "multiple %s elements in element 'region'", XMLChild->name );
 73                 goto err;
 74             }
 75             interpolationAxesElement = XMLChild;
 76         }
 77     }
 78     if( interpolationAxesElement == NULL ) {
 79         smr_setReportError3p( smr, xDataXML_get_smrUserInterfaceFromElement( XE ), xDataTOM_smrLibraryID, -1,
 80                 "missing element 'interpolationAxes'" );
 81         goto err; 
 82     }
 83     if( ( sInterpolation = xDataXML_getAttributesValueInElement( interpolationAxesElement, "interpolation" ) ) == NULL ) {
 84         smr_setReportError3p( smr, xDataXML_get_smrUserInterfaceFromElement( interpolationAxesElement ), xDataTOM_smrLibraryID, -1,
 85                 "missing attribute 'interpolation'" );
 86         goto err; 
 87     }
 88     if( xDataTOM_interpolation_setFromString( smr, &interpolation, sInterpolation ) != 0 ) goto err;
 89 
 90     if( xDataXML_convertAttributeTo_xDataTOM_Int( smr, XE, "index", &index, 1 ) != 0 ) return( 1 );
 91     length = xDataXML_numberOfElementsByTagName( smr, XE, wLabel );
 92     if( xDataTOM_W_XYs_LegendreSeries_initialize( smr, W_XYs_LegendreSeries, index, length, 0., xDataTOM_subAxesType_intepolationAxes, axes,
 93         &interpolation ) != 0 ) goto err;
 94     for( XMLChild = xDataXML_getFirstElement( XE ), index = 0; XMLChild != NULL; XMLChild = xDataXML_getNextElement( XMLChild ) ) {
 95         if( strcmp( "interpolationAxes", XMLChild->name ) == 0 ) {
 96             continue; }
 97         else if( strcmp( wLabel, XMLChild->name ) == 0 ) {
 98             if( xDataXML_W_XYs_LegendreSeries_LegendreSeriesToTOM( smr, XMLChild, &(W_XYs_LegendreSeries->LegendreSeries[index]) ) != 0 ) goto err;
 99             index++; }
100         else {
101             smr_setReportError3( smr, xDataXML_get_smrUserInterfaceFromElement( XE ), xDataTOM_smrLibraryID, -1,
102                 "invalid element '%s' in element 'region'", XMLChild->name );
103             goto err;
104         }
105     }
106     return( 0 );
107 
108 err:
109 /* Need to free things here?????????.*/
110 
111     return( 1 );
112 }
113 
114 #if defined __cplusplus
115 }
116 #endif
117