Commit b7aa70706ddc9fe4fbc447734996f977b6889fc8

Authored by Jürgen Knödlseder
1 parent 537d0e9d

Remove GFilename::default_extname() and enhance GFilename::extname() method.

The GFilename::default_extname() has been removed and remplaced by an enhanced GFilename::extname() method that either returns the extension name set in the filename, or if not set, the string that has been provided as argument.
include/GFilename.hpp
@@ -60,13 +60,12 @@ public: @@ -60,13 +60,12 @@ public:
60 int size(void) const; 60 int size(void) const;
61 int length(void) const; 61 int length(void) const;
62 const std::string& filename(void) const; 62 const std::string& filename(void) const;
63 - const std::string& extname(void) const; 63 + std::string extname(const std::string& defaultname = "") const;
64 const int& extno(void) const; 64 const int& extno(void) const;
65 const int& extver(void) const; 65 const int& extver(void) const;
66 bool has_extname(void) const; 66 bool has_extname(void) const;
67 bool has_extno(void) const; 67 bool has_extno(void) const;
68 bool has_extver(void) const; 68 bool has_extver(void) const;
69 - void default_extname(const std::string& extname);  
70 std::string print(const GChatter& chatter = NORMAL) const; 69 std::string print(const GChatter& chatter = NORMAL) const;
71 70
72 protected: 71 protected:
@@ -147,18 +146,6 @@ const std::string& GFilename::filename(void) const @@ -147,18 +146,6 @@ const std::string& GFilename::filename(void) const
147 146
148 147
149 /***********************************************************************//** 148 /***********************************************************************//**
150 - * @brief Return extension name  
151 - *  
152 - * @return String containing extension name.  
153 - ***************************************************************************/  
154 -inline  
155 -const std::string& GFilename::extname(void) const  
156 -{  
157 - return (m_extname);  
158 -}  
159 -  
160 -  
161 -/***********************************************************************//**  
162 * @brief Return extension number 149 * @brief Return extension number
163 * 150 *
164 * @return Extension number (-1 if not set). 151 * @return Extension number (-1 if not set).
pyext/GFilename.i
@@ -52,13 +52,12 @@ public: @@ -52,13 +52,12 @@ public:
52 int size(void) const; 52 int size(void) const;
53 int length(void) const; 53 int length(void) const;
54 const std::string& filename(void) const; 54 const std::string& filename(void) const;
55 - const std::string& extname(void) const; 55 + std::string extname(const std::string& defaultname = "") const;
56 const int& extno(void) const; 56 const int& extno(void) const;
57 const int& extver(void) const; 57 const int& extver(void) const;
58 bool has_extname(void) const; 58 bool has_extname(void) const;
59 bool has_extno(void) const; 59 bool has_extno(void) const;
60 bool has_extver(void) const; 60 bool has_extver(void) const;
61 - void default_extname(const std::string& extname);  
62 }; 61 };
63 62
64 63
src/support/GFilename.cpp
@@ -200,21 +200,27 @@ GFilename* GFilename::clone(void) const @@ -200,21 +200,27 @@ GFilename* GFilename::clone(void) const
200 200
201 201
202 /***********************************************************************//** 202 /***********************************************************************//**
203 - * @brief Set default extension name 203 + * @brief Return extension name
204 * 204 *
205 - * @param[in] extname Extension name. 205 + * @param[in] defaultname Default extension name (default: "").
  206 + * @return String containing extension name.
206 * 207 *
207 - * If the object has no extension name then set the extension name. 208 + * Returns the extension name. If no extension name is given the name
  209 + * provided by the @p defaultname argument will be used. By default, the
  210 + * @p defaultname parameter is an empty string.
208 ***************************************************************************/ 211 ***************************************************************************/
209 -void GFilename::default_extname(const std::string& extname) 212 +std::string GFilename::extname(const std::string& defaultname) const
210 { 213 {
211 - // Set extension name if it has not yet been set 214 + // Set the extension name
  215 + std::string extname = m_extname;
  216 +
  217 + // If no extension name is set, the use the default extension name
212 if (!has_extname()) { 218 if (!has_extname()) {
213 - m_extname = extname; 219 + extname = defaultname;
214 } 220 }
215 221
216 - // Return  
217 - return; 222 + // Return extension name
  223 + return (extname);
218 } 224 }
219 225
220 226
test/test_GSupport.cpp
@@ -760,13 +760,11 @@ void TestGSupport::test_filename(void) @@ -760,13 +760,11 @@ void TestGSupport::test_filename(void)
760 760
761 // Test default extension name 761 // Test default extension name
762 filename = "myfile.fits"; 762 filename = "myfile.fits";
763 - filename.default_extname("EVENTS");  
764 - test_assert(filename.extname() == "EVENTS", 763 + test_assert(filename.extname("EVENTS") == "EVENTS",
765 "Expected \"EVENTS\" extension name, " 764 "Expected \"EVENTS\" extension name, "
766 "found \""+filename.extname()+"\""); 765 "found \""+filename.extname()+"\"");
767 filename = "myfile.fits[LUCKY]"; 766 filename = "myfile.fits[LUCKY]";
768 - filename.default_extname("EVENTS");  
769 - test_assert(filename.extname() == "LUCKY", 767 + test_assert(filename.extname("EVENTS") == "LUCKY",
770 "Expected \"LUCKY\" extension name, " 768 "Expected \"LUCKY\" extension name, "
771 "found \""+filename.extname()+"\""); 769 "found \""+filename.extname()+"\"");
772 770