LCOV - code coverage report
Current view: top level - frmts/zarr - zarr_dimension.cpp (source / functions) Hit Total Coverage
Test: gdal_filtered.info Lines: 14 16 87.5 %
Date: 2024-11-21 22:18:42 Functions: 1 1 100.0 %

          Line data    Source code
       1             : /******************************************************************************
       2             :  *
       3             :  * Project:  GDAL
       4             :  * Purpose:  Zarr driver
       5             :  * Author:   Even Rouault <even dot rouault at spatialys.com>
       6             :  *
       7             :  ******************************************************************************
       8             :  * Copyright (c) 2021, Even Rouault <even dot rouault at spatialys.com>
       9             :  *
      10             :  * SPDX-License-Identifier: MIT
      11             :  ****************************************************************************/
      12             : 
      13             : #include "zarr.h"
      14             : 
      15             : /************************************************************************/
      16             : /*                              Rename()                                */
      17             : /************************************************************************/
      18             : 
      19          24 : bool ZarrDimension::Rename(const std::string &osNewName)
      20             : {
      21          24 :     if (!m_bUpdatable)
      22             :     {
      23           6 :         CPLError(CE_Failure, CPLE_NotSupported,
      24             :                  "Dataset not open in update mode");
      25           6 :         return false;
      26             :     }
      27          18 :     if (!IsXArrayDimension())
      28             :     {
      29           0 :         CPLError(CE_Failure, CPLE_NotSupported,
      30             :                  "Cannot rename an implicit dimension "
      31             :                  "(that is one listed in _ARRAY_DIMENSIONS attribute)");
      32           0 :         return false;
      33             :     }
      34          18 :     if (!ZarrGroupBase::IsValidObjectName(osNewName))
      35             :     {
      36           6 :         CPLError(CE_Failure, CPLE_NotSupported, "Invalid dimension name");
      37           6 :         return false;
      38             :     }
      39             : 
      40          12 :     if (auto poParentGroup = m_poParentGroup.lock())
      41             :     {
      42          12 :         if (!poParentGroup->RenameDimension(m_osName, osNewName))
      43             :         {
      44           6 :             return false;
      45             :         }
      46             :     }
      47             : 
      48           6 :     BaseRename(osNewName);
      49             : 
      50           6 :     m_bModified = true;
      51             : 
      52           6 :     return true;
      53             : }

Generated by: LCOV version 1.14