LCOV - code coverage report
Current view: top level - ogr/ogrsf_frmts/vfk - vfkproperty.cpp (source / functions) Hit Total Coverage
Test: gdal_filtered.info Lines: 22 28 78.6 %
Date: 2024-11-21 22:18:42 Functions: 7 9 77.8 %

          Line data    Source code
       1             : /******************************************************************************
       2             :  *
       3             :  * Project:  VFK Reader - Property definition
       4             :  * Purpose:  Implements VFKProperty class.
       5             :  * Author:   Martin Landa, landa.martin gmail.com
       6             :  *
       7             :  ******************************************************************************
       8             :  * Copyright (c) 2009-2010, Martin Landa <landa.martin gmail.com>
       9             :  *
      10             :  * SPDX-License-Identifier: MIT
      11             :  ****************************************************************************/
      12             : 
      13             : #include "vfkreader.h"
      14             : #include "vfkreaderp.h"
      15             : 
      16             : #include "cpl_conv.h"
      17             : #include "cpl_error.h"
      18             : 
      19             : /*!
      20             :   \brief Set VFK property (null)
      21             : */
      22        4005 : VFKProperty::VFKProperty() : m_bIsNull(true), m_iValue(0), m_dValue(0.0)
      23             : {
      24        4005 : }
      25             : 
      26             : /*!
      27             :   \brief Set VFK property (integer)
      28             : */
      29        2205 : VFKProperty::VFKProperty(int iValue)
      30        2205 :     : m_bIsNull(false), m_iValue(iValue), m_dValue(0.0)
      31             : {
      32        2205 : }
      33             : 
      34             : /*!
      35             :   \brief Set VFK property (big integer)
      36             : */
      37        3870 : VFKProperty::VFKProperty(GIntBig iValue)
      38        3870 :     : m_bIsNull(false), m_iValue(iValue), m_dValue(0.0)
      39             : {
      40        3870 : }
      41             : 
      42             : /*!
      43             :   \brief Set VFK property (double)
      44             : */
      45         390 : VFKProperty::VFKProperty(double dValue)
      46         390 :     : m_bIsNull(false), m_iValue(0), m_dValue(dValue)
      47             : {
      48         390 : }
      49             : 
      50             : /*!
      51             :   \brief Set VFK property (string)
      52             : */
      53        1320 : VFKProperty::VFKProperty(const char *pszValue)
      54             :     : m_bIsNull(false), m_iValue(0), m_dValue(0.0),
      55        1320 :       m_strValue(nullptr != pszValue ? pszValue : "")
      56             : {
      57        1320 : }
      58             : 
      59             : /*!
      60             :   \brief Set VFK property (string)
      61             : */
      62           0 : VFKProperty::VFKProperty(CPLString const &strValue)
      63           0 :     : m_bIsNull(false), m_iValue(0), m_dValue(0.0), m_strValue(strValue)
      64             : {
      65           0 : }
      66             : 
      67             : /*!
      68             :   \brief VFK property destructor
      69             : */
      70       22710 : VFKProperty::~VFKProperty()
      71             : {
      72       22710 : }
      73             : 
      74             : /*!
      75             :   \brief Get string property
      76             : 
      77             :   \param escape true to escape characters for SQL
      78             : 
      79             :   \return string buffer
      80             : */
      81        1320 : const char *VFKProperty::GetValueS(bool escape) const
      82             : {
      83        1320 :     if (!escape)
      84           0 :         return m_strValue.c_str();
      85             : 
      86        2640 :     CPLString strValue(m_strValue);
      87        1320 :     size_t ipos = 0;
      88        1320 :     while (std::string::npos != (ipos = strValue.find("'", ipos)))
      89             :     {
      90           0 :         strValue.replace(ipos, 1, "\'\'", 2);
      91           0 :         ipos += 2;
      92             :     }
      93             : 
      94        1320 :     return CPLSPrintf("%s", strValue.c_str());
      95             : }

Generated by: LCOV version 1.14