OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
Public Types | Public Member Functions | Static Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | Friends | List of all members
ossimKeywordlist Class Reference

Represents serializable keyword/value map. More...

#include <ossimKeywordlist.h>

Inheritance diagram for ossimKeywordlist:
ossimErrorStatusInterface ossimReferenced

Public Types

typedef std::map< std::string, std::string > KeywordMap
 

Public Member Functions

 ossimKeywordlist (const ossimKeywordlist &src)
 
 ossimKeywordlist (const std::map< std::string, std::string > &keywordMap)
 
 ossimKeywordlist (char delimiter=DEFAULT_DELIMITER, bool expandEnvVars=false)
 
 ossimKeywordlist (const char *file, char delimiter=DEFAULT_DELIMITER, bool ignoreBinaryChars=false, bool expandEnvVars=false)
 
 ossimKeywordlist (const ossimFilename &fileName, char delimiter=DEFAULT_DELIMITER, bool ignoreBinaryChars=false, bool expandEnvVars=false)
 
 ~ossimKeywordlist ()
 
bool addFile (const char *file)
 
bool addFile (const ossimFilename &file)
 
void change_delimiter (char del)
 
ossimString delimiter_str () const
 
void setExpandEnvVarsFlag (bool flag)
 
bool getExpandEnvVarsFlag (void) const
 
void add (const char *prefix, const ossimKeywordlist &kwl, bool overwrite=true)
 
template<class CompareType >
bool findValue (ossimString &value, const CompareType &compare) const
 
This is a generic find method that takes a comparator type and iterates through the map executing the overloaded operator (). More...
 
std::string & operator[] (const std::string &key)
 
std::string operator[] (const std::string &key) const
 
void addPair (const std::string &key, const std::string &value, bool overwrite=true)
 
void addPair (const std::string &prefix, const std::string &key, const std::string &value, bool overwrite=true)
 
void add (const ossimKeywordlist &kwl, const char *prefix=0, bool stripPrefix=true)
 
void add (const char *key, const char *value, bool overwrite=true)
 
void add (const char *prefix, const char *key, const char *value, bool overwrite=true)
 
void add (const char *key, char value, bool overwrite=true)
 
void add (const char *prefix, const char *key, char value, bool overwrite=true)
 
void add (const char *key, ossim_int16 value, bool overwrite=true)
 
void add (const char *prefix, const char *key, ossim_int16 value, bool overwrite=true)
 
void add (const char *key, ossim_uint16 value, bool overwrite=true)
 
void add (const char *prefix, const char *key, ossim_uint16 value, bool overwrite=true)
 
void add (const char *key, ossim_int32 value, bool overwrite=true)
 
void add (const char *prefix, const char *key, ossim_int32 value, bool overwrite=true)
 
void add (const char *key, ossim_uint32 value, bool overwrite=true)
 
void add (const char *prefix, const char *key, ossim_uint32 value, bool overwrite=true)
 
void add (const char *key, ossim_int64 value, bool overwrite=true)
 
void add (const char *prefix, const char *key, ossim_int64 value, bool overwrite=true)
 
void add (const char *key, ossim_uint64 value, bool overwrite=true)
 
void add (const char *prefix, const char *key, ossim_uint64 value, bool overwrite=true)
 
void add (const char *key, ossim_float32 value, bool overwrite=true, int precision=8)
 
void add (const char *prefix, const char *key, ossim_float32 value, bool overwrite=true, int precision=8)
 
void add (const char *key, ossim_float64 value, bool overwrite=true, int precision=15)
 
void add (const char *prefix, const char *key, ossim_float64 value, bool overwrite=true, int precision=15)
 
bool hasKey (const std::string &key) const
 Checks for key in map. More...
 
const std::string & findKey (const std::string &key) const
 Find methods that take std::string(s). More...
 
const std::string & findKey (const std::string &prefix, const std::string &key) const
 
const char * find (const char *key) const
 
const char * find (const char *prefix, const char *key) const
 
void remove (const char *key)
 
void remove (const char *prefix, const char *key)
 
ossim_uint32 numberOf (const char *str) const
 
ossim_uint32 numberOf (const char *prefix, const char *key) const
 
virtual bool write (const char *file, const char *comment=0) const
 Methods to dump the ossimKeywordlist to a file on disk. More...
 
virtual ossimString toString () const
 
virtual void toString (ossimString &result) const
 
virtual void writeToStream (std::ostream &out) const
 
void toXML (std::ostream &out, const std::string &rootTag="info") const
 Outputs in xml format. More...
 
void toJSON (std::ostream &out, const std::string &rootTag="info") const
 Outputs in json format. More...
 
virtual std::ostream & print (std::ostream &os) const
 Outputs theErrorStatus as an ossimErrorCode and an ossimString. More...
 
bool operator== (ossimKeywordlist &kwl) const
 
bool operator!= (ossimKeywordlist &kwl) const
 
void clear ()
 
void addList (const ossimKeywordlist &src, bool overwrite=true)
 
virtual bool parseStream (ossim::istream &is, bool ignoreBinaryChars)
 deprecated method More...
 
virtual bool parseStream (ossim::istream &is)
 
virtual bool parseString (const std::string &inString)
 
void getSortedList (std::vector< ossimString > &prefixValues, const ossimString &prefixKey) const
 This return the sorted keys if you have a list. More...
 
std::vector< ossimStringfindAllKeysThatContains (const ossimString &searchString) const
 
void findAllKeysThatMatch (std::vector< ossimString > &result, const ossimString &regularExpression) const
 Finds keys that match regular expression. More...
 
ossim_uint32 getNumberOfKeysThatMatch (const ossimString &regularExpression) const
 Gets number keys that match regular expression. More...
 
void extractKeysThatMatch (ossimKeywordlist &kwl, const ossimString &regularExpression) const
 
void removeKeysThatMatch (const ossimString &regularExpression)
 
std::vector< ossimStringgetSubstringKeyList (const ossimString &regularExpression) const
 
void getSubstringKeyList (std::vector< ossimString > &result, const ossimString &regularExpression) const
 
ossim_uint32 getNumberOfSubstringKeys (const ossimString &regularExpression) const
 
void addPrefixToAll (const ossimString &prefix)
 
void addPrefixToKeysThatMatch (const ossimString &prefix, const ossimString &regularExpression)
 
void stripPrefixFromAll (const ossimString &regularExpression)
 
ossim_uint32 getSize () const
 
const ossimKeywordlist::KeywordMapgetMap () const
 
ossimKeywordlist::KeywordMapgetMap ()
 
ossimKeywordlistdowncaseKeywords ()
 
ossimKeywordlistupcaseKeywords ()
 
ossimKeywordlisttrimAllValues (const ossimString &valueToTrim=ossimString(" \\))
 
ossimKeywordlist trimAllValues (const ossimString &valueToTrim=ossimString(" \\)) const
 
bool getBoolKeywordValue (bool &rtn_val, const char *keyword, const char *prefix=0) const
 [OLK, Aug/2008] Sets the boolean <rtn_val> depending on value associated with keyword for values = (yes|no|true|false|1|0). More...
 
- Public Member Functions inherited from ossimErrorStatusInterface
 ossimErrorStatusInterface ()
 
virtual ~ossimErrorStatusInterface ()
 
virtual ossimErrorCode getErrorStatus () const
 
virtual ossimString getErrorStatusString () const
 
virtual void setErrorStatus (ossimErrorCode error_status) const
 
virtual void setErrorStatus () const
 
virtual void clearErrorStatus () const
 
bool hasError () const
 
- Public Member Functions inherited from ossimReferenced
 ossimReferenced ()
 
 ossimReferenced (const ossimReferenced &)
 
ossimReferencedoperator= (const ossimReferenced &)
 
void ref () const
 increment the reference count by one, indicating that this object has another pointer which is referencing it. More...
 
void unref () const
 decrement the reference count by one, indicating that a pointer to this object is referencing it. More...
 
void unref_nodelete () const
 decrement the reference count by one, indicating that a pointer to this object is referencing it. More...
 
int referenceCount () const
 

Static Public Attributes

static const std::string NULL_KW = ""
 

Protected Types

enum  KeywordlistParseState { KeywordlistParseState_OK = 0, KeywordlistParseState_FAIL = 1, KeywordlistParseState_BAD_STREAM = 2 }
 

Protected Member Functions

bool parseFile (const ossimFilename &file, bool ignoreBinaryChars=false)
 
bool isValidKeywordlistCharacter (ossim_uint8 c) const
 
void skipWhitespace (ossim::istream &in) const
 
KeywordlistParseState readComments (ossimString &sequence, ossim::istream &in) const
 
KeywordlistParseState readPreprocDirective (ossim::istream &in)
 
KeywordlistParseState readKey (ossimString &sequence, ossim::istream &in) const
 
KeywordlistParseState readValue (ossimString &sequence, ossim::istream &in) const
 
KeywordlistParseState readKeyAndValuePair (ossimString &key, ossimString &value, ossim::istream &in) const
 
KeywordMap::iterator getMapEntry (const std::string &key)
 
KeywordMap::iterator getMapEntry (const ossimString &key)
 
KeywordMap::iterator getMapEntry (const char *key)
 
bool isSpecialXmlCharacters (const ossimString &value) const
 
bool isValidTag (const std::string &value) const
 
void replaceSpecialCharacters (ossimString &value) const
 
bool isSame (const std::vector< ossimString > &a, const std::vector< ossimString > &b) const
 
- Protected Member Functions inherited from ossimReferenced
virtual ~ossimReferenced ()
 

Protected Attributes

KeywordMap m_map
 
char m_delimiter
 
bool m_preserveKeyValues
 
bool m_expandEnvVars
 
ossimFilename m_currentlyParsing
 
- Protected Attributes inherited from ossimErrorStatusInterface
ossimErrorCode theErrorStatus
 

Friends

OSSIMDLLEXPORT friend std::ostream & operator<< (std::ostream &os, const ossimKeywordlist &kwl)
 

Detailed Description

Represents serializable keyword/value map.

The format is

[<prefix>.]<keyword>: value [value ...]

The map is not a multimap, i.e., the keywords must be unique. Only the last occurrence of identical keywords will be saved in the map. Methods are provided for reading from and writing to an ascii file. Methods are also provided for merging multiple maps (a.k.a. "lists" or "KWLs") as well as assorted operations for pruning and counting.

Disk files representing a KWL can use the C-style "#include <filename>" preprocessor directive, where <filename> specifies another external KWL file that will be merged with the current list. This is convenient for sourcing common settings needed by multiple KWL files. Instead of duplicating all common keywords/value pairs, the various KWL files can all specify, for example,

 #include common_prefs.kwl
 #include "common config.kwl"

The second form with quotes can be used, especially if the filename has spaces.

Definition at line 50 of file ossimKeywordlist.h.

Member Typedef Documentation

◆ KeywordMap

typedef std::map<std::string, std::string> ossimKeywordlist::KeywordMap

Definition at line 55 of file ossimKeywordlist.h.

Member Enumeration Documentation

◆ KeywordlistParseState

Enumerator
KeywordlistParseState_OK 
KeywordlistParseState_FAIL 
KeywordlistParseState_BAD_STREAM 

Definition at line 548 of file ossimKeywordlist.h.

549  {
551 
552  // Used to say this set of token has failed the rules.
554 
555  // Means an error occured that is a mal formed stream for Keywordlist.
557  };

Constructor & Destructor Documentation

◆ ossimKeywordlist() [1/5]

ossimKeywordlist::ossimKeywordlist ( const ossimKeywordlist src)

◆ ossimKeywordlist() [2/5]

ossimKeywordlist::ossimKeywordlist ( const std::map< std::string, std::string > &  keywordMap)

Definition at line 48 of file ossimKeywordlist.cpp.

49 :m_map(keywordMap),
50 m_delimiter(DEFAULT_DELIMITER),
52 m_expandEnvVars(true)
53 {
54 
55 }

◆ ossimKeywordlist() [3/5]

ossimKeywordlist::ossimKeywordlist ( char  delimiter = DEFAULT_DELIMITER,
bool  expandEnvVars = false 
)

Definition at line 57 of file ossimKeywordlist.cpp.

References ossimNotify(), and ossimNotifyLevel_DEBUG.

59 :
60 m_map(),
61 m_delimiter(delimiter),
63 m_expandEnvVars(expandEnvVars)
64 {
65 #ifdef OSSIM_ID_ENABLED
66  if (TRACE) ossimNotify(ossimNotifyLevel_DEBUG) << OSSIM_ID << std::endl;
67 #endif
68 }
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)

◆ ossimKeywordlist() [4/5]

ossimKeywordlist::ossimKeywordlist ( const char *  file,
char  delimiter = DEFAULT_DELIMITER,
bool  ignoreBinaryChars = false,
bool  expandEnvVars = false 
)

Definition at line 70 of file ossimKeywordlist.cpp.

References ossimErrorCodes::OSSIM_ERROR, parseFile(), and ossimErrorStatusInterface::theErrorStatus.

74 :
75 m_map(),
76 m_delimiter(delimiter),
78 //m_lineContinuationCharacter('\\'),
79 m_expandEnvVars(expandEnvVars)
80 {
81  ossimFilename in_file(file);
82 
83  if (!parseFile(in_file, ignoreBinaryChars))
84  {
86  }
87 }
static const ossimErrorCode OSSIM_ERROR
bool parseFile(const ossimFilename &file, bool ignoreBinaryChars=false)

◆ ossimKeywordlist() [5/5]

ossimKeywordlist::ossimKeywordlist ( const ossimFilename fileName,
char  delimiter = DEFAULT_DELIMITER,
bool  ignoreBinaryChars = false,
bool  expandEnvVars = false 
)

Definition at line 89 of file ossimKeywordlist.cpp.

References ossimErrorCodes::OSSIM_ERROR, parseFile(), and ossimErrorStatusInterface::theErrorStatus.

93 :
94 m_map(),
95 m_delimiter(delimiter),
97 m_expandEnvVars(expandEnvVars)
98 
99 {
100  if (!parseFile(file, ignoreBinaryChars))
101  {
103  }
104 }
static const ossimErrorCode OSSIM_ERROR
bool parseFile(const ossimFilename &file, bool ignoreBinaryChars=false)

◆ ~ossimKeywordlist()

ossimKeywordlist::~ossimKeywordlist ( )

Definition at line 106 of file ossimKeywordlist.cpp.

References m_map.

107 {
108  m_map.clear();
109 }

Member Function Documentation

◆ add() [1/22]

void ossimKeywordlist::add ( const char *  prefix,
const ossimKeywordlist kwl,
bool  overwrite = true 
)

Definition at line 177 of file ossimKeywordlist.cpp.

References addPair(), and m_map.

Referenced by ossimGmlSupportData::addLineSamps(), ossimIgenGenerator::addPixelType(), ossimPreferences::addPreference(), ossimPreferences::addPreferences(), ossimGmlSupportData::addScale(), ossimGmlSupportData::addTie(), ossimGdalWriter::appendGdalOption(), ossimNitfCodecFactory::createCodec(), ossimSensorModelFactory::createProjection(), ossimHdf5ProjectionFactory::createProjection(), ossimGdalProjectionFactory::createProjection(), ossimMapProjectionFactory::createProjection(), ossimImageUtil::createThumbnail(), ossimGdalImageWriterFactory::createWriter(), ossimImageWriterFactory::createWriter(), ossimShorelineTool::doThreshold(), ossimShorelineTool::execute(), ossimSpaceImagingGeom::exportToOssim(), ossimIgenGenerator::generateChainForMultiInput(), ossimIgenGenerator::generateGeoTiledSpecList(), ossimIgenGenerator::generateNoTiledSpecList(), ossimIgenGenerator::generatePixelTiledSpecList(), ossimInfo::getCenterGround(), ossimInfo::getCenterImage(), ossimMapProjectionInfo::getGeom(), ossimMrSidReader::getGeoProjection(), ossimGeneralRasterTileSource::getHdrInfo(), ossimInfo::getImageBounds(), ossimGdalImageWriterFactory::getImageFileWritersByMimeType(), ossimGdalImageWriterFactory::getImageFileWritersBySuffix(), ossimDoqqTileSource::getImageGeometry(), ossimElevImageSource::getImageGeometry(), ossimSrtmSupportData::getImageGeometry(), ossimAdrgTileSource::getImageGeometry(), ossimGeneralRasterTileSource::getImageGeometry(), ossimRpfCacheTileSource::getImageGeometry(), ossimImageCacheBase::getImageGeometry(), ossimDemHeader::getImageGeometry(), ossimGmlSupportData::getImageGeometryFromRectifiedGrid(), ossimInfo::getImageGeometryInfo(), ossimInfo::getImageInfo(), ossimInfo::getImageMetadata(), ossimInfo::getImageRect(), ossimIgenGenerator::getInput(), getKeyValue(), ossimLasHdr::getKeywordlist(), ossimOgrInfo::getKeywordlist(), ossimBandMergeTool::getKwlTemplate(), ossimVerticesFinderTool::getKwlTemplate(), ossimNitfImageHeader::getMetadata(), ossimInfo::getNorthUpAngle(), ossimIgenGenerator::getOutput(), ossimInfo::getRgbBands(), ossimIgenGenerator::getView(), ossimGeoPdfReader::getVPGeoProjection(), ossimGeneralRasterTileSource::getXmlInfo(), ossimVerticesFinderTool::initialize(), ossimplugins::ossimRadarSatModel::internalSaveState(), ossimNewZealandMapGridProjection::loadState(), ossimSrcRecord::loadState(), ossimOgrInfo::parseMetadata(), ossimStatePlaneProjectionInfo::populateProjectionKeywords(), ossimBatchTest::preprocessKwl(), ossimplugins::Noise::print(), ossimplugins::SceneCoord::print(), ossimplugins::IncidenceAngles::print(), ossimplugins::ossimGeometricSarSensorModel::print(), ossimChipProcTool::processRemainingArgs(), ossimEnviHeader::readStream(), ossimSupportFilesList::save(), ossim::State::save(), ossimAdjustableParameterInterface::saveAdjustments(), ossimEnviCgModel::saveState(), ossimEastingNorthingCutter::saveState(), ossimDespeckleFilter::saveState(), ossimVpfAnnotationSource::saveState(), ossimBngProjection::saveState(), ossimHistogramSource::saveState(), ossimBlendMosaic::saveState(), ossimLandsatTopoCorrectionFilter::saveState(), ossimTrimFilter::saveState(), ossimPolynomProjection::saveState(), ossimTilingPoly::saveState(), ossimImageSourceHistogramFilter::saveState(), ossimConvolutionSource::saveState(), ossimHistogramThreshholdFilter::saveState(), ossimTilingRect::saveState(), ossimHistogramEqualization::saveState(), ossimCadrgProjection::saveState(), ossimAlphaSensor::saveState(), ossimElevRemapper::saveState(), ossimAdjustmentInfo::saveState(), ossimBrightnessMatch::saveState(), ossimVpfAnnotationLibraryInfo::saveState(), ossimErosionFilter::saveState(), ossim2dTo2dTransform::saveState(), ossimPolyCutter::saveState(), ossimImageSharpenFilter::saveState(), ossimLensDistortion::saveState(), ossimMapViewController::saveState(), ossimRgbToGreyFilter::saveState(), ossimRsmida::saveState(), ossimRsmpia::saveState(), ossimFontInformation::saveState(), ossimApplanixUtmModel::saveState(), ossimImageToPlaneNormalFilter::saveState(), ossimRectangleCutFilter::saveState(), ossimRsmpca::saveState(), ossim3x3ConvolutionFilter::saveState(), ossimImageHandlerMtAdaptor::saveState(), ossimTableRemapper::saveState(), ossimAffineTransform::saveState(), ossimQuadProjection::saveState(), ossimHistoMatchRemapper::saveState(), ossimCastTileSourceFilter::saveState(), ossimHdf5GridModel::saveState(), ossimQuadTreeWarpVertex::saveState(), ossimSource::saveState(), ossimDilationFilter::saveState(), ossimEdgeFilter::saveState(), ossimTangentialRadialLensDistortion::saveState(), ossimLinearStretchRemapper::saveState(), ossimNitfVqCompressionHeader::saveState(), ossimPpjFrameSensor::saveState(), ossimSpaceObliqueMercatorProjection::saveState(), ossimplugins::ossimRadarSat2TiffReader::saveState(), ossimCacheTileSource::saveState(), ossimImageGaussianFilter::saveState(), ossimBilinearProjection::saveState(), ossimSFIMFusion::saveState(), ossimplugins::ossimTerraSarTiffReader::saveState(), ossimFftFilter::saveState(), ossimMultiBandHistogram::saveState(), ossimJpegWriter::saveState(), ossimplugins::Noise::saveState(), ossimGeoAnnotationEllipseObject::saveState(), ossimplugins::InfoSceneCoord::saveState(), ossimplugins::RadarSat2NoiseLevel::saveState(), ossimplugins::IncidenceAngles::saveState(), ossimplugins::InfoIncidenceAngle::saveState(), ossimObject::saveState(), ossimplugins::SceneCoord::saveState(), ossimQuickbirdMetaData::saveState(), ossimSlopeFilter::saveState(), ossimIkonosMetaData::saveState(), ossimplugins::ImageNoise::saveState(), ossimUtmProjection::saveState(), ossimDtedElevationDatabase::saveState(), ossimSpectraboticsRedEdgeModel::saveState(), ossimImageChainMtAdaptor::saveState(), ossimVpfAnnotationCoverageInfo::saveState(), ossimNitfRpcModel::saveState(), ossimGeneralRasterWriter::saveState(), ossimValueAssignImageSourceFilter::saveState(), ossimKakaduJpipHandler::saveState(), ossimMultiResLevelHistogram::saveState(), ossimGeoAnnotationMultiPolyLineObject::saveState(), ossimApplanixEcefModel::saveState(), ossimAdjMapModel::saveState(), ossimplugins::RefPoint::saveState(), ossimSarModel::saveState(), ossimConvolutionFilter1D::saveState(), ossimElevationDatabase::saveState(), ossimTransMercatorProjection::saveState(), ossimPngWriter::saveState(), ossimBandClipFilter::saveState(), ossimplugins::ossimTileMapModel::saveState(), ossimAnnotationObject::saveState(), ossimImageRenderer::saveState(), ossimTransCylEquAreaProjection::saveState(), ossimGeoAnnotationFontObject::saveState(), ossimProperty::saveState(), ossimElevationCellDatabase::saveState(), ossimplugins::ossimSpot6Model::saveState(), ossimplugins::ossimPleiadesModel::saveState(), ossimRLevelFilter::saveState(), ossimNBandToIndexFilter::saveState(), ossimGeoAnnotationPolyObject::saveState(), ossimplugins::AlosPalsarData::saveState(), ossimGdalOgrVectorAnnotation::saveState(), ossimMercatorProjection::saveState(), ossimSubImageTileSource::saveState(), ossimRgbLutDataObject::saveState(), ossimMeanMedianFilter::saveState(), ossimMultiBandHistogramTileSource::saveState(), ossimplugins::ossimEnvisatAsarModel::saveState(), ossimIpodSensor::saveState(), ossimObliqueMercatorProjection::saveState(), ossimplugins::ErsSarLeader::saveState(), ossimElevImageSource::saveState(), ossimSkyBoxLearSensor::saveState(), ossimNitfImageHeaderV2_0::saveState(), ossimplugins::AlosPalsarLeader::saveState(), ossimplugins::ossimAlosPalsarModel::saveState(), ossimPngCodec::saveState(), ossimplugins::ossimRadarSat2RPCModel::saveState(), ossimProjection::saveState(), ossimNitfWriterBase::saveState(), ossimplugins::ossimTerraSarModel::saveState(), ossimGridRemapSource::saveState(), ossimQuadTreeWarpNode::saveState(), ossimplugins::ossimSpot6DimapSupportData::saveState(), ossimplugins::ossimRadarSat2Model::saveState(), ossimplugins::ossimPleiadesDimapSupportData::saveState(), ossimBandAverageFilter::saveState(), ossimWatermarkFilter::saveState(), ossimGeoPolyCutter::saveState(), ossimUsgsDemTileSource::saveState(), ossimplugins::PlatformPosition::saveState(), ossimGpkgWriter::saveState(), ossimRadialDecentLensDistortion::saveState(), ossim2dTo2dShiftTransform::saveState(), ossimBrightnessContrastSource::saveState(), ossimRangeDomeTileSource::saveState(), ossimDataObject::saveState(), ossimSrtmSupportData::saveState(), ossimJpegCodec::saveState(), ossimNitfFileHeaderV2_X::saveState(), ossimTiffWriter::saveState(), ossimFilterResampler::saveState(), ossimTopographicCorrectionFilter::saveState(), ossimGeoPolygon::saveState(), ossimMeanRadialLensDistortion::saveState(), ossimAdjustableParameterInfo::saveState(), ossimTiling::saveState(), ossimGdalTileSource::saveState(), ossimImageMetaData::saveState(), ossimLambertConformalConicProjection::saveState(), ossimAlbersProjection::saveState(), ossimKMeansFilter::saveState(), ossimplugins::Ephemeris::saveState(), ossimNitfImageHeaderV2_X::saveState(), ossimNitfRegisteredDes::saveState(), ossimBandSelector::saveState(), ossimNitfRegisteredTag::saveState(), ossimAtCorrGridRemapper::saveState(), ossimSonomaSensor::saveState(), ossimWriter::saveState(), ossimScaleFilter::saveState(), ossimNitfTileSource::saveState(), ossimPolyArea2d::saveState(), ossimResampler::saveState(), ossimBandLutFilter::saveState(), ossimNitfImageHeaderV2_1::saveState(), ossimPixelFlipper::saveState(), ossimplugins::ossimGeometricSarSensorModel::saveState(), ossimRectilinearDataObject::saveState(), ossimIndexToRgbLutFilter::saveState(), ossimSpotDimapSupportData::saveState(), ossimHistogramMatchFilter::saveState(), ossimFormosatDimapSupportData::saveState(), ossimElevManager::saveState(), ossimTiffTileSource::saveState(), ossimVpfAnnotationFeatureInfo::saveState(), ossimMaskFilter::saveState(), ossimImageViewAffineTransform::saveState(), ossim2dBilinearTransform::saveState(), ossimOpjCompressor::saveState(), ossimEllipsoid::saveState(), ossimBumpShadeTileSource::saveState(), ossim2dTo2dMatrixTransform::saveState(), ossimMapProjection::saveState(), ossimPointCloudImageHandler::saveState(), ossimCibCadrgTileSource::saveState(), ossimplugins::SensorParams::saveState(), ossimMapCompositionSource::saveState(), ossimKakaduCompressor::saveState(), ossimLasReader::saveState(), ossimHistogram::saveState(), ossimPolygon::saveState(), ossimEquationCombiner::saveState(), ossimEsriShapeFileFilter::saveState(), ossimGeneralRasterInfo::saveState(), ossimPolyLine::saveState(), ossimMapProjectionInfo::saveState(), ossimNitfFileHeaderV2_1::saveState(), ossimNitfFileHeaderV2_0::saveState(), ossimImageFileWriter::saveState(), ossimImageGeometry::saveState(), ossimImageHandler::saveState(), ossimHistogramRemapper::saveState(), ossimNBandLutDataObject::saveState(), ossimConnectableObject::saveState(), ossimIrect::saveState(), ossimDrect::saveState(), ossimImageData::saveState(), ossimTiffWorld::saveToOssimGeom(), ossimSrcRecord::setEntryIndex(), ossimSrcRecord::setFilename(), ossimGeneralRasterElevHandler::setFilename(), ossimSrcRecord::setGeom(), ossimSrcRecord::setOverview(), ossimSrcRecord::setSupportDir(), ossimGdalWriter::storeProperty(), ossimXmlNode::toKwl(), ossimERS::toOssimProjectionGeom(), ossimStringListProperty::valueToString(), and ossimImageHandler::writeValidImageVertices().

180 {
181  std::string p = prefix ? prefix : "";
182  std::map<std::string, std::string>::const_iterator iter = kwl.m_map.begin();
183  while(iter != kwl.m_map.end())
184  {
185  std::string k( p + (*iter).first );
186  addPair( k, (*iter).second, overwrite );
187  ++iter;
188  }
189 }
void addPair(const std::string &key, const std::string &value, bool overwrite=true)

◆ add() [2/22]

void ossimKeywordlist::add ( const ossimKeywordlist kwl,
const char *  prefix = 0,
bool  stripPrefix = true 
)

Allows you to extract out a sub keywordlist from another you can also collapse the hieracrchy by setting strip prefix to true.

Definition at line 144 of file ossimKeywordlist.cpp.

References addPair(), ossimRegExp::compile(), ossimRegExp::find(), m_map, ossimString::string(), and ossimString::substitute().

147 {
148  std::map<std::string, std::string>::const_iterator iter = kwl.m_map.begin();
149 
150  ossimRegExp regExp;
151 
152  // Check for null prefix.
153  std::string tmpPrefix;
154  if (prefix) tmpPrefix = prefix;
155 
156  regExp.compile(("^("+tmpPrefix+")").c_str());
157 
158  while(iter != kwl.m_map.end())
159  {
160  ossimString newKey;
161 
162  if(regExp.find( (*iter).first.c_str()))
163  {
164  newKey = (*iter).first;
165  if(stripPrefix && prefix)
166  {
167  newKey = newKey.substitute(prefix, "");
168 
169  }
170 
171  addPair(newKey.string(), (*iter).second, true);
172  }
173  ++iter;
174  }
175 }
ossimString substitute(const ossimString &searchKey, const ossimString &replacementValue, bool replaceAll=false) const
Substitutes searchKey string with replacementValue and returns a string.
void addPair(const std::string &key, const std::string &value, bool overwrite=true)
void compile(const char *)
bool find(const char *)
const std::string & string() const
Definition: ossimString.h:414

◆ add() [3/22]

void ossimKeywordlist::add ( const char *  key,
const char *  value,
bool  overwrite = true 
)

Definition at line 225 of file ossimKeywordlist.cpp.

References addPair().

228 {
229  if ( key )
230  {
231  std::string k(key);
232  std::string v(value?value:"");
233  addPair(k, v, overwrite);
234  }
235 }
void addPair(const std::string &key, const std::string &value, bool overwrite=true)

◆ add() [4/22]

void ossimKeywordlist::add ( const char *  prefix,
const char *  key,
const char *  value,
bool  overwrite = true 
)

Definition at line 237 of file ossimKeywordlist.cpp.

References addPair().

241 {
242  if ( key )
243  {
244  std::string k(prefix ? (std::string(prefix)+std::string(key)) : key);
245  std::string v(value ? value : "");
246  addPair(k, v, overwrite);
247  }
248 }
void addPair(const std::string &key, const std::string &value, bool overwrite=true)

◆ add() [5/22]

void ossimKeywordlist::add ( const char *  key,
char  value,
bool  overwrite = true 
)

Definition at line 250 of file ossimKeywordlist.cpp.

References addPair().

253 {
254  if ( key )
255  {
256  std::string k(key);
257  std::string v(1, value);
258  addPair(k, v, overwrite);
259  }
260 }
void addPair(const std::string &key, const std::string &value, bool overwrite=true)

◆ add() [6/22]

void ossimKeywordlist::add ( const char *  prefix,
const char *  key,
char  value,
bool  overwrite = true 
)

Definition at line 262 of file ossimKeywordlist.cpp.

References addPair().

266 {
267  if ( key )
268  {
269  std::string k(prefix ? (std::string(prefix)+std::string(key)) : key);
270  std::string v(1, value);
271  addPair(k, v, overwrite);
272  }
273 }
void addPair(const std::string &key, const std::string &value, bool overwrite=true)

◆ add() [7/22]

void ossimKeywordlist::add ( const char *  key,
ossim_int16  value,
bool  overwrite = true 
)

Definition at line 275 of file ossimKeywordlist.cpp.

References addPair(), ossimString::string(), and ossimString::toString().

278 {
279  if ( key )
280  {
281  std::string k(key);
282  std::string v = ossimString::toString(value).string();
283  addPair(k, v, overwrite);
284  }
285 }
static ossimString toString(bool aValue)
Numeric to string methods.
void addPair(const std::string &key, const std::string &value, bool overwrite=true)
const std::string & string() const
Definition: ossimString.h:414

◆ add() [8/22]

void ossimKeywordlist::add ( const char *  prefix,
const char *  key,
ossim_int16  value,
bool  overwrite = true 
)

Definition at line 287 of file ossimKeywordlist.cpp.

References addPair(), ossimString::string(), and ossimString::toString().

291 {
292  if ( key )
293  {
294  std::string k(prefix ? (std::string(prefix)+std::string(key)) : key);
295  std::string v = ossimString::toString(value).string();
296  addPair(k, v, overwrite);
297  }
298 }
static ossimString toString(bool aValue)
Numeric to string methods.
void addPair(const std::string &key, const std::string &value, bool overwrite=true)
const std::string & string() const
Definition: ossimString.h:414

◆ add() [9/22]

void ossimKeywordlist::add ( const char *  key,
ossim_uint16  value,
bool  overwrite = true 
)

Definition at line 300 of file ossimKeywordlist.cpp.

References addPair(), ossimString::string(), and ossimString::toString().

303 {
304  if ( key )
305  {
306  std::string k(key);
307  std::string v = ossimString::toString(value).string();
308  addPair(k, v, overwrite);
309  }
310 }
static ossimString toString(bool aValue)
Numeric to string methods.
void addPair(const std::string &key, const std::string &value, bool overwrite=true)
const std::string & string() const
Definition: ossimString.h:414

◆ add() [10/22]

void ossimKeywordlist::add ( const char *  prefix,
const char *  key,
ossim_uint16  value,
bool  overwrite = true 
)

Definition at line 312 of file ossimKeywordlist.cpp.

References addPair(), ossimString::string(), and ossimString::toString().

316 {
317  if ( key )
318  {
319  std::string k(prefix ? (std::string(prefix)+std::string(key)) : key);
320  std::string v = ossimString::toString(value).string();
321  addPair(k, v, overwrite);
322  }
323 }
static ossimString toString(bool aValue)
Numeric to string methods.
void addPair(const std::string &key, const std::string &value, bool overwrite=true)
const std::string & string() const
Definition: ossimString.h:414

◆ add() [11/22]

void ossimKeywordlist::add ( const char *  key,
ossim_int32  value,
bool  overwrite = true 
)

Definition at line 325 of file ossimKeywordlist.cpp.

References addPair(), ossimString::string(), and ossimString::toString().

328 {
329  if ( key )
330  {
331  std::string k(key);
332  std::string v = ossimString::toString(value).string();
333  addPair(k, v, overwrite);
334  }
335 }
static ossimString toString(bool aValue)
Numeric to string methods.
void addPair(const std::string &key, const std::string &value, bool overwrite=true)
const std::string & string() const
Definition: ossimString.h:414

◆ add() [12/22]

void ossimKeywordlist::add ( const char *  prefix,
const char *  key,
ossim_int32  value,
bool  overwrite = true 
)

Definition at line 337 of file ossimKeywordlist.cpp.

References addPair(), ossimString::string(), and ossimString::toString().

341 {
342  if ( key )
343  {
344  std::string k(prefix ? (std::string(prefix)+std::string(key)) : key);
345  std::string v = ossimString::toString(value).string();
346  addPair(k, v, overwrite);
347  }
348 }
static ossimString toString(bool aValue)
Numeric to string methods.
void addPair(const std::string &key, const std::string &value, bool overwrite=true)
const std::string & string() const
Definition: ossimString.h:414

◆ add() [13/22]

void ossimKeywordlist::add ( const char *  key,
ossim_uint32  value,
bool  overwrite = true 
)

Definition at line 350 of file ossimKeywordlist.cpp.

References addPair(), ossimString::string(), and ossimString::toString().

353 {
354  if ( key )
355  {
356  std::string k(key);
357  std::string v = ossimString::toString(value).string();
358  addPair(k, v, overwrite);
359  }
360 }
static ossimString toString(bool aValue)
Numeric to string methods.
void addPair(const std::string &key, const std::string &value, bool overwrite=true)
const std::string & string() const
Definition: ossimString.h:414

◆ add() [14/22]

void ossimKeywordlist::add ( const char *  prefix,
const char *  key,
ossim_uint32  value,
bool  overwrite = true 
)

Definition at line 362 of file ossimKeywordlist.cpp.

References addPair(), ossimString::string(), and ossimString::toString().

366 {
367  if ( key )
368  {
369  std::string k(prefix ? (std::string(prefix)+std::string(key)) : key);
370  std::string v = ossimString::toString(value).string();
371  addPair(k, v, overwrite);
372  }
373 }
static ossimString toString(bool aValue)
Numeric to string methods.
void addPair(const std::string &key, const std::string &value, bool overwrite=true)
const std::string & string() const
Definition: ossimString.h:414

◆ add() [15/22]

void ossimKeywordlist::add ( const char *  key,
ossim_int64  value,
bool  overwrite = true 
)

Definition at line 375 of file ossimKeywordlist.cpp.

References addPair(), ossimString::string(), and ossimString::toString().

378 {
379  if ( key )
380  {
381  std::string k(key);
382  std::string v = ossimString::toString(value).string();
383  addPair(k, v, overwrite);
384  }
385 }
static ossimString toString(bool aValue)
Numeric to string methods.
void addPair(const std::string &key, const std::string &value, bool overwrite=true)
const std::string & string() const
Definition: ossimString.h:414

◆ add() [16/22]

void ossimKeywordlist::add ( const char *  prefix,
const char *  key,
ossim_int64  value,
bool  overwrite = true 
)

Definition at line 387 of file ossimKeywordlist.cpp.

References addPair(), ossimString::string(), and ossimString::toString().

391 {
392  if ( key )
393  {
394  std::string k(prefix ? (std::string(prefix)+std::string(key)) : key);
395  std::string v = ossimString::toString(value).string();
396  addPair(k, v, overwrite);
397  }
398 }
static ossimString toString(bool aValue)
Numeric to string methods.
void addPair(const std::string &key, const std::string &value, bool overwrite=true)
const std::string & string() const
Definition: ossimString.h:414

◆ add() [17/22]

void ossimKeywordlist::add ( const char *  key,
ossim_uint64  value,
bool  overwrite = true 
)

Definition at line 400 of file ossimKeywordlist.cpp.

References addPair(), ossimString::string(), and ossimString::toString().

403 {
404  if ( key )
405  {
406  std::string k(key);
407  std::string v = ossimString::toString(value).string();
408  addPair(k, v, overwrite);
409  }
410 }
static ossimString toString(bool aValue)
Numeric to string methods.
void addPair(const std::string &key, const std::string &value, bool overwrite=true)
const std::string & string() const
Definition: ossimString.h:414

◆ add() [18/22]

void ossimKeywordlist::add ( const char *  prefix,
const char *  key,
ossim_uint64  value,
bool  overwrite = true 
)

Definition at line 412 of file ossimKeywordlist.cpp.

References addPair(), ossimString::string(), and ossimString::toString().

416 {
417  if ( key )
418  {
419  std::string k(prefix ? (std::string(prefix)+std::string(key)) : key);
420  std::string v = ossimString::toString(value).string();
421  addPair(k, v, overwrite);
422  }
423 }
static ossimString toString(bool aValue)
Numeric to string methods.
void addPair(const std::string &key, const std::string &value, bool overwrite=true)
const std::string & string() const
Definition: ossimString.h:414

◆ add() [19/22]

void ossimKeywordlist::add ( const char *  key,
ossim_float32  value,
bool  overwrite = true,
int  precision = 8 
)
Parameters
keyKey for key-value pair.
valueValue to pair with key. Note this will be stored as a string.
precisionDecimal point precision of the output. (default = 8)
trimZeroFlagIf true trailing '0's and any trailing '.' will be trimmed from the converted string. (default = false)
scientificIf true output will be in scientific notation else fixed is used. (default = false)

Definition at line 425 of file ossimKeywordlist.cpp.

References addPair(), ossimString::string(), and ossimString::toString().

429 {
430  if ( key )
431  {
432  std::string k(key);
433  std::string v = ossimString::toString(value, precision).string();
434  addPair(k, v, overwrite);
435  }
436 }
static ossimString toString(bool aValue)
Numeric to string methods.
void addPair(const std::string &key, const std::string &value, bool overwrite=true)
const std::string & string() const
Definition: ossimString.h:414

◆ add() [20/22]

void ossimKeywordlist::add ( const char *  prefix,
const char *  key,
ossim_float32  value,
bool  overwrite = true,
int  precision = 8 
)
Parameters
keyKey for key-value pair.
valueValue to pair with key. Note this will be stored as a string.
precisionDecimal point precision of the output. (default = 8)
trimZeroFlagIf true trailing '0's and any trailing '.' will be trimmed from the converted string. (default = false)
scientificIf true output will be in scientific notation else fixed is used. (default = false)

Definition at line 438 of file ossimKeywordlist.cpp.

References addPair(), ossimString::string(), and ossimString::toString().

443 {
444  if ( key )
445  {
446  std::string k(prefix ? (std::string(prefix)+std::string(key)) : key);
447  std::string v = ossimString::toString(value, precision).string();
448  addPair(k, v, overwrite);
449  }
450 }
static ossimString toString(bool aValue)
Numeric to string methods.
void addPair(const std::string &key, const std::string &value, bool overwrite=true)
const std::string & string() const
Definition: ossimString.h:414

◆ add() [21/22]

void ossimKeywordlist::add ( const char *  key,
ossim_float64  value,
bool  overwrite = true,
int  precision = 15 
)
Parameters
keyKey for key-value pair.
valueValue to pair with key. Note this will be stored as a string.
precisionDecimal point precision of the output. (default = 15)
trimZeroFlagIf true trailing '0's and any trailing '.' will be trimmed from the converted string. (default = false)
scientificIf true output will be in scientific notation else fixed is used. (default = false)

Definition at line 452 of file ossimKeywordlist.cpp.

References addPair(), ossimString::string(), and ossimString::toString().

456 {
457  if ( key )
458  {
459  std::string k(key);
460  std::string v = ossimString::toString(value, precision).string();
461  addPair(k, v, overwrite);
462  }
463 }
static ossimString toString(bool aValue)
Numeric to string methods.
void addPair(const std::string &key, const std::string &value, bool overwrite=true)
const std::string & string() const
Definition: ossimString.h:414

◆ add() [22/22]

void ossimKeywordlist::add ( const char *  prefix,
const char *  key,
ossim_float64  value,
bool  overwrite = true,
int  precision = 15 
)
Parameters
keyKey for key-value pair.
valueValue to pair with key. Note this will be stored as a string.
precisionDecimal point precision of the output. (default = 15)
trimZeroFlagIf true trailing '0's and any trailing '.' will be trimmed from the converted string. (default = false)
scientificIf true output will be in scientific notation else fixed is used. (default = false)

Definition at line 465 of file ossimKeywordlist.cpp.

References addPair(), ossimString::string(), and ossimString::toString().

470 {
471  if ( key )
472  {
473  std::string k(prefix ? (std::string(prefix)+std::string(key)) : key);
474  std::string v = ossimString::toString(value, precision).string();
475  addPair(k, v, overwrite);
476  }
477 }
static ossimString toString(bool aValue)
Numeric to string methods.
void addPair(const std::string &key, const std::string &value, bool overwrite=true)
const std::string & string() const
Definition: ossimString.h:414

◆ addFile() [1/2]

bool ossimKeywordlist::addFile ( const char *  file)

Reads file and adds keywords to the KeywordMap. Returns true if file was parsed, false on error.

Definition at line 121 of file ossimKeywordlist.cpp.

References parseFile().

Referenced by ossimSensorModelFactory::createProjection(), ossimMapProjectionFactory::createProjection(), ossimMiscProjectionFactory::createProjection(), ossimPointCloudTool::execute(), ossimBatchTest::execute(), ossimGeneralRasterTileSource::getHdrInfo(), ossimTool::getKwlTemplate(), ossimChipProcTool::initialize(), ossimNitfWriterBase::initializeDefaultsFromConfigFile(), ossimGeneralRasterInfo::initializeFromHdr(), ossimGdalOgrVectorAnnotation::loadExternalGeometryFile(), ossimDtedTileSource::loadMetaData(), ossimGdalOgrVectorAnnotation::loadOmdFile(), ossimMapViewController::loadState(), ossimRgbLutDataObject::loadState(), ossimNBandLutDataObject::loadState(), ossimERSTileSource::open(), ossimKakaduJpipHandler::open(), ossimKakaduJpipInfo::open(), ossimNBandLutDataObject::open(), ossimInfo::openImageFromState(), ossimInfo::openImageHandler(), ossimEquationUtil::parseKwl(), readPreprocDirective(), ossimMapViewController::setFilename(), ossimGeneralRasterElevHandler::setFilename(), ossimNBandToIndexFilter::setProperty(), ossimApplanixUtmModel::setupOptimizer(), ossimSpectraboticsRedEdgeModel::setupOptimizer(), ossimApplanixEcefModel::setupOptimizer(), ossimSpot5Model::setupOptimizer(), ossimplugins::ossimFormosatModel::setupOptimizer(), ossimRpcProjection::setupOptimizer(), and ossimRpcModel::setupOptimizer().

122 {
123  ossimFilename in_file(file);
124 
125  return parseFile(in_file);
126 }
bool parseFile(const ossimFilename &file, bool ignoreBinaryChars=false)

◆ addFile() [2/2]

bool ossimKeywordlist::addFile ( const ossimFilename file)

Reads file and adds keywords to the KeywordMap. Returns true if file was parsed, false on error.

Definition at line 128 of file ossimKeywordlist.cpp.

References parseFile().

129 {
130  return parseFile(file);
131 }
bool parseFile(const ossimFilename &file, bool ignoreBinaryChars=false)

◆ addList()

void ossimKeywordlist::addList ( const ossimKeywordlist src,
bool  overwrite = true 
)

Add contents of another keyword list to this one.

Parameters
srcthe keyword list to copy items from.
overwritetrue if keys existing in this and src should have their value overwritten by the src value, otherwise false to preserve the original value. Defaults to true.

Definition at line 133 of file ossimKeywordlist.cpp.

References addPair(), and m_map.

Referenced by ossimEpsgProjectionFactory::createProjection(), ossimChipperUtil::getChip(), ossimVerticesFinderTool::initialize(), ossimPotraceTool::initialize(), ossimHlzTool::initialize(), ossimShorelineTool::initialize(), ossimHdf5Tool::initialize(), ossimChipProcTool::initialize(), ossimAutRegUtil::initialize(), and ossimChipperUtil::initialize().

134 {
135  KeywordMap::const_iterator i = src.m_map.begin();
136 
137  while (i != src.m_map.end())
138  {
139  addPair( (*i).first, (*i).second, overwrite );
140  i++;
141  }
142 }
void addPair(const std::string &key, const std::string &value, bool overwrite=true)

◆ addPair() [1/2]

void ossimKeywordlist::addPair ( const std::string &  key,
const std::string &  value,
bool  overwrite = true 
)

Definition at line 191 of file ossimKeywordlist.cpp.

References ossimString::expandEnvironmentVariable(), getMapEntry(), m_expandEnvVars, m_map, and ossimString::string().

Referenced by add(), addList(), ossimH5ImageHandler::addMetadata(), ossimPdfWriter::addOption(), ossimImageUtil::addOption(), addPair(), addPrefixToAll(), addPrefixToKeysThatMatch(), ossimHdf5Info::dumpArrayType(), ossimHdf5Info::dumpArrayTypeInfo(), ossimHdf5Info::dumpAttribute(), ossimHdf5Info::dumpCompoundTypeInfo(), ossimHdf5Info::dumpDataset(), ossimHdf5Info::dumpEnumTypeInfo(), ossimHdf5Info::dumpFloatType(), ossimHdf5Info::dumpGroup(), ossimHdf5Info::dumpIntType(), ossimHdf5Info::dumpNumerical(), ossimHdf5Info::dumpNumericalTypeInfo(), ossimHdf5Info::dumpStringType(), extractKeysThatMatch(), ossimHdf5Info::getKeywordlist(), ossimRegTool::getKwlTemplate(), ossimPotraceTool::getKwlTemplate(), ossimFgdcTxtDoc::getProjectionV1(), ossimVerticesFinderTool::initialize(), ossimBandMergeTool::initialize(), ossimPotraceTool::initialize(), ossimViewshedTool::initialize(), ossimSubImageTool::initialize(), ossimHdf5Tool::initialize(), ossimHillshadeTool::initialize(), ossimShorelineTool::initialize(), ossimChipProcTool::initialize(), ossimSlopeTool::initProcessingChain(), ossimGpkgWriter::open(), ossimWriter::ossimWriter(), ossimWkt::parseName(), ossimWkt::parseParam(), ossimH5GridModel::saveState(), ossimGeoidImage::saveState(), ossimGpkgNsgTileMatrixExtentRecord::saveState(), ossimGpkgContentsRecord::saveState(), ossimGpkgTileMatrixSetRecord::saveState(), ossimGpkgSpatialRefSysRecord::saveState(), ossimGpkgTileMatrixRecord::saveState(), ossimTiledImagePatch::saveState(), ossimPiecewiseRemapper::saveState(), ossimPngReader::saveState(), ossimGpkgWriter::setCompressionQuality(), and stripPrefixFromAll().

194 {
195  if ( key.size() )
196  {
197  ossimString v = value;
198  if ( m_expandEnvVars == true )
199  {
201  }
202 
203  KeywordMap::iterator i = getMapEntry(key);
204 
205  if (i == m_map.end())
206  {
207  m_map.insert(std::make_pair(key, v.string()));
208  }
209  else if (overwrite)
210  {
211  (*i).second = v.string();
212  }
213  }
214 }
ossimString expandEnvironmentVariable() const
If the variable "$(env_var_name)" is found in the string, where "env_var_name" is any system environm...
KeywordMap::iterator getMapEntry(const std::string &key)
const std::string & string() const
Definition: ossimString.h:414

◆ addPair() [2/2]

void ossimKeywordlist::addPair ( const std::string &  prefix,
const std::string &  key,
const std::string &  value,
bool  overwrite = true 
)

Definition at line 216 of file ossimKeywordlist.cpp.

References addPair().

220 {
221  std::string k(prefix + key);
222  addPair(k, value, overwrite);
223 }
void addPair(const std::string &key, const std::string &value, bool overwrite=true)

◆ addPrefixToAll()

void ossimKeywordlist::addPrefixToAll ( const ossimString prefix)

Definition at line 1237 of file ossimKeywordlist.cpp.

References addPair(), clear(), m_map, and ossimString::string().

Referenced by ossimEnviInfo::print(), and ossimKakaduJpipInfo::print().

1238 {
1239  ossimKeywordlist tempKwl = *this;
1240 
1241  clear();
1242 
1243  KeywordMap::const_iterator values = tempKwl.m_map.begin();
1244 
1245  while(values != tempKwl.m_map.end())
1246  {
1247  std::string newKey = prefix.string() + (*values).first;
1248  addPair(newKey, (*values).second, true);
1249  ++values;
1250  }
1251 }
Represents serializable keyword/value map.
void addPair(const std::string &key, const std::string &value, bool overwrite=true)
const std::string & string() const
Definition: ossimString.h:414

◆ addPrefixToKeysThatMatch()

void ossimKeywordlist::addPrefixToKeysThatMatch ( const ossimString prefix,
const ossimString regularExpression 
)

Definition at line 1253 of file ossimKeywordlist.cpp.

References addPair(), ossimString::c_str(), clear(), ossimRegExp::compile(), ossimRegExp::find(), m_map, and ossimString::string().

1255 {
1256  ossimKeywordlist tempKwl = *this;
1257 
1258  clear();
1259 
1260  KeywordMap::const_iterator values = tempKwl.m_map.begin();
1261  ossimRegExp regExp;
1262 
1263  regExp.compile(regularExpression.c_str());
1264 
1265  while(values != tempKwl.m_map.end())
1266  {
1267  std::string newKey = prefix.string()+(*values).first;
1268  if(regExp.find( (*values).first.c_str()))
1269  {
1270 
1271  addPair(newKey, (*values).second, true);
1272  }
1273  else
1274  {
1275  addPair((*values).first, (*values).second, true);
1276  }
1277  ++values;
1278  }
1279 }
Represents serializable keyword/value map.
void addPair(const std::string &key, const std::string &value, bool overwrite=true)
void compile(const char *)
const char * c_str() const
Returns a pointer to a null-terminated array of characters representing the string&#39;s contents...
Definition: ossimString.h:396
bool find(const char *)
const std::string & string() const
Definition: ossimString.h:414

◆ change_delimiter()

void ossimKeywordlist::change_delimiter ( char  del)

Method to change default delimiter. Handy when parsing files similar to a ossimKeywordlist. (DEFAULT = ':')

Definition at line 1325 of file ossimKeywordlist.cpp.

References m_delimiter.

Referenced by ossimGeneralRasterTileSource::getHdrInfo(), and ossimGeneralRasterInfo::initializeFromHdr().

1326 {
1327  m_delimiter = del;
1328 }

◆ clear()

void ossimKeywordlist::clear ( )

◆ delimiter_str()

ossimString ossimKeywordlist::delimiter_str ( ) const

Definition at line 1330 of file ossimKeywordlist.cpp.

References m_delimiter.

Referenced by print(), toString(), and writeToStream().

1331 {
1332  char tmp[2];
1333  tmp[0] = m_delimiter;
1334  tmp[1] = '\0';
1335  return ossimString(tmp);
1336 }

◆ downcaseKeywords()

ossimKeywordlist & ossimKeywordlist::downcaseKeywords ( )

Definition at line 1394 of file ossimKeywordlist.cpp.

References ossimString::downcase(), m_map, and ossimString::string().

Referenced by ossimGeneralRasterTileSource::getHdrInfo(), ossimGeneralRasterTileSource::getImageGeometry(), and ossimGeneralRasterInfo::initializeFromHdr().

1395 {
1396  KeywordMap tempMap;
1397  KeywordMap::iterator iter = m_map.begin();
1398 
1399  while(iter != m_map.end())
1400  {
1401  ossimString k(iter->first);
1402  tempMap.insert(std::make_pair(k.downcase().string(), iter->second));
1403  ++iter;
1404  }
1405  m_map = tempMap;
1406 
1407  return *this;
1408 }
std::map< std::string, std::string > KeywordMap

◆ extractKeysThatMatch()

void ossimKeywordlist::extractKeysThatMatch ( ossimKeywordlist kwl,
const ossimString regularExpression 
) const

Definition at line 1160 of file ossimKeywordlist.cpp.

References addPair(), ossimString::c_str(), ossimRegExp::compile(), ossimRegExp::find(), and m_map.

Referenced by ossimGpkgWriter::loadState(), and ossimHistogram::loadState().

1162 {
1163  KeywordMap::const_iterator i;
1164  std::vector<ossimString> result;
1165  ossimRegExp regExp;
1166 
1167  regExp.compile(regularExpression.c_str());
1168 
1169  for(i = m_map.begin(); i != m_map.end(); ++i)
1170  {
1171  if(regExp.find( (*i).first.c_str()))
1172  {
1173  kwl.addPair((*i).first, (*i).second);
1174  }
1175  }
1176 }
void addPair(const std::string &key, const std::string &value, bool overwrite=true)
void compile(const char *)
const char * c_str() const
Returns a pointer to a null-terminated array of characters representing the string&#39;s contents...
Definition: ossimString.h:396
bool find(const char *)

◆ find() [1/2]

const char * ossimKeywordlist::find ( const char *  key) const

Definition at line 599 of file ossimKeywordlist.cpp.

References m_map.

Referenced by ossimGdalWriter::allocateGdalDriverOptions(), ossimGdalWriter::appendGdalOption(), ossimAnnotationObjectFactory::create(), ossimDatumFactory::create(), ossimEpsgDatumFactory::create(), ossimPngCodecFactory::createCodec(), ossimKakaduCodecFactory::createCodec(), ossimCodecFactory::createCodec(), ossimChipperUtil::createCombiner(), ossimElevationDatabaseFactory::createDatabase(), ossimImageGeometryFactory::createGeometry(), ossimImageReconstructionFilterFactory::createObject(), ossimBaseObjectFactory::createObject(), ossimImageMetaDataWriterFactory::createObject(), ossimPointCloudImageHandlerFactory::createObject(), ossimGdalObjectFactory::createObject(), ossimOpenCvObjectFactory::createObject(), ossimOverviewBuilderFactoryRegistry::createObject(), ossimGdalFactory::createObject(), ossimOverviewBuilderFactoryBase::createObject(), ossimHdf5ProjectionFactory::createProjection(), ossimSensorModelFactory::createProjection(), ossimGdalProjectionFactory::createProjection(), ossimMiscProjectionFactory::createProjection(), ossimplugins::ossimPluginProjectionFactory::createProjection(), ossimMapProjectionFactory::createProjection(), ossimWktProjectionFactory::createProjection(), ossimEpsgProjectionFactory::createProjection(), ossim::ImageHandlerStateFactory::createState(), ossimToolFactoryBase::createTool(), ossimImageViewTransformFactory::createTransform(), ossim2dTo2dTransformFactory::createTransform(), ossimProjectionViewControllerFactory::createViewController(), ossimGdalImageWriterFactory::createWriter(), ossimImageWriterFactory::createWriter(), ossimImageWriterFactoryRegistry::createWriter(), ossimSqliteWriterFactory::createWriter(), ossimOpjWriterFactory::createWriter(), ossimPngWriterFactory::createWriter(), ossimKakaduWriterFactory::createWriter(), ossimKmlSuperOverlayWriterFactory::createWriter(), ossimWktProjectionFactory::doMapCommon(), ossimBatchTest::execute(), ossimConnectableContainer::findInputConnectionIds(), ossimImageChain::findInputConnectionIds(), ossimOgcWktTranslator::fromOssimKwl(), ossimIgenGenerator::generateGeoTiledSpecList(), ossimIgenGenerator::generateNoTiledSpecList(), ossimIgenGenerator::generatePixelTiledSpecList(), ossimTiffInfo::getAngularUnits(), ossimChipProcTool::getBandList(), getBoolKeywordValue(), ossimTiffInfo::getCentralMeridian(), ossimChipperUtil::getClipPolygon(), ossimHttpResponse::getContentLength(), ossimTiffInfo::getDatumCode(), ossimLookUpTable::getEntryNumber(), ossimLookUpTable::getEntryString(), ossimTiffInfo::getFalseEasting(), ossimTiffInfo::getFalseNorthing(), ossimTiffInfo::getFloats(), ossimGeneralRasterTileSource::getHdrInfo(), ossimHttpResponse::getHeaderValue(), ossimGeneralRasterTileSource::getImageGeometry(), ossimInfo::getImageGeometryInfo(), getKeyValue(), ossimTiffInfo::getLinearUnits(), ossimTiffInfo::getLines(), ossimTiffInfo::getModelType(), ossimTiffInfo::getOriginLat(), ossimChipperUtil::getOriginLatitude(), ossimTiffInfo::getOssimProjectionName(), ossimChipperUtil::getOutputProjectionType(), ossimTiffInfo::getPcsCode(), ossimTiffInfo::getPixelType(), ossimChipProcTool::getProjectionOrigin(), ossimCurlHttpRequest::getResponse(), ossimTiffInfo::getSamples(), ossimTiffInfo::getScaleFactor(), ossimTiffInfo::getStdParallelOne(), ossimTiffInfo::getStdParallelTwo(), ossimGdalWriter::getStoredPropertyValue(), ossimBatchTest::getTempFileName(), ossimInfo::getUpIsUpAngle(), ossimTiffInfo::getVerticalUnits(), ossimChipperUtil::hasBumpShadeArg(), ossimChipperUtil::hasGeoPolyCutterOption(), ossimChipperUtil::hasLutFile(), ossimChipperUtil::hasThumbnailResolution(), ossimVerticesFinderTool::initialize(), ossimSubImageTool::initialize(), ossimIgen::initializeAttributes(), ossimInit::initializeLogFile(), ossimBandLutFilter::initializeLut(), ossimIndexToRgbLutFilter::initializeLut(), ossimInit::initializePlugins(), ossimplugins::ossimCosmoSkymedModel::InitPlatformPosition(), ossimplugins::ossimErsSarModel::InitPlatformPosition(), ossimplugins::ossimAlosPalsarModel::InitPlatformPosition(), ossimplugins::ossimRadarSat2Model::InitPlatformPosition(), ossimplugins::ossimTerraSarModel::InitPlatformPosition(), ossimplugins::ossimEnvisatAsarModel::InitPlatformPosition(), ossimplugins::ossimRadarSatModel::InitPlatformPosition(), ossimplugins::ossimCosmoSkymedModel::InitRefPoint(), ossimplugins::ossimErsSarModel::InitRefPoint(), ossimplugins::ossimAlosPalsarModel::InitRefPoint(), ossimplugins::ossimRadarSat2Model::InitRefPoint(), ossimplugins::ossimTerraSarModel::InitRefPoint(), ossimplugins::ossimEnvisatAsarModel::InitRefPoint(), ossimplugins::ossimRadarSatModel::InitRefPoint(), ossimplugins::ossimCosmoSkymedModel::InitSensorParams(), ossimplugins::ossimErsSarModel::InitSensorParams(), ossimplugins::ossimAlosPalsarModel::InitSensorParams(), ossimplugins::ossimRadarSat2Model::InitSensorParams(), ossimplugins::ossimTerraSarModel::InitSensorParams(), ossimplugins::ossimEnvisatAsarModel::InitSensorParams(), ossimplugins::ossimRadarSat2RPCModel::InitSensorParams(), ossimplugins::ossimRadarSatModel::InitSensorParams(), ossimplugins::ossimCosmoSkymedModel::InitSRGR(), ossimplugins::ossimErsSarModel::InitSRGR(), ossimplugins::ossimTerraSarModel::InitSRGR(), ossimplugins::ossimEnvisatAsarModel::InitSRGR(), ossimplugins::ossimRadarSat2Model::InitSRGR(), ossimplugins::ossimRadarSatModel::InitSRGR(), ossimLasReader::initUnits(), ossimDemUtil::isUsgsDem(), ossimAdjustableParameterInterface::loadAdjustments(), ossimTiffWorld::loadFromOssimGeom(), ossimHdf5Tool::loadImageFiles(), ossimChipProcTool::loadImageFiles(), ossimDtedTileSource::loadMetaData(), ossimGdalOgrVectorAnnotation::loadOmdFile(), ossimH5Options::loadOptions(), ossimEastingNorthingCutter::loadState(), ossimDespeckleFilter::loadState(), ossimDoqqTileSource::loadState(), ossimHistogramSource::loadState(), ossimVpfAnnotationSource::loadState(), ossimLandsatTopoCorrectionFilter::loadState(), ossimImageSourceHistogramFilter::loadState(), ossimNitfXmlDataContentDes::loadState(), ossimHistogramThreshholdFilter::loadState(), ossimTrimFilter::loadState(), ossimBlendMosaic::loadState(), ossimBrightnessMatch::loadState(), ossimTilingPoly::loadState(), ossimTilingRect::loadState(), ossimImageSharpenFilter::loadState(), ossimAdjustmentInfo::loadState(), ossimGammaRemapper::loadState(), ossimVpfAnnotationLibraryInfo::loadState(), ossimERSTileSource::loadState(), ossimConvolutionSource::loadState(), ossimImageToPlaneNormalFilter::loadState(), ossim3x3ConvolutionFilter::loadState(), ossim2dTo2dTransform::loadState(), ossimCadrgProjection::loadState(), ossimLensDistortion::loadState(), ossimMapViewController::loadState(), ossimHistoMatchRemapper::loadState(), ossimRectangleCutFilter::loadState(), ossimErosionFilter::loadState(), ossimPolyCutter::loadState(), ossimRgbToGreyFilter::loadState(), ossimHttpRequest::loadState(), ossimFgdcFileWriter::loadState(), ossimImageHandlerMtAdaptor::loadState(), ossimQuadProjection::loadState(), ossimAffineTransform::loadState(), ossimEdgeFilter::loadState(), ossimCacheTileSource::loadState(), ossimMultiThreadSequencer::loadState(), ossimQuadTreeWarpVertex::loadState(), ossimSource::loadState(), ossimImageGaussianFilter::loadState(), ossimLinearStretchRemapper::loadState(), ossimFftFilter::loadState(), ossimMultiBandHistogram::loadState(), ossimTangentialRadialLensDistortion::loadState(), ossimDilationFilter::loadState(), ossimSFIMFusion::loadState(), ossimBilinearProjection::loadState(), ossimSpaceObliqueMercatorProjection::loadState(), ossimImageChainMtAdaptor::loadState(), ossimplugins::ossimRadarSat2TiffReader::loadState(), ossimplugins::ossimTerraSarTiffReader::loadState(), ossimGeoAnnotationEllipseObject::loadState(), ossimJpegWriter::loadState(), ossimplugins::Noise::loadState(), ossimSlopeFilter::loadState(), ossimplugins::RadarSat2NoiseLevel::loadState(), ossimplugins::InfoIncidenceAngle::loadState(), ossimVpfAnnotationCoverageInfo::loadState(), ossimplugins::IncidenceAngles::loadState(), ossimplugins::InfoSceneCoord::loadState(), ossimplugins::SceneCoord::loadState(), ossimIkonosMetaData::loadState(), ossimQuickbirdMetaData::loadState(), ossimplugins::ImageNoise::loadState(), ossimMultiResLevelHistogram::loadState(), ossimKakaduJpipHandler::loadState(), ossimFontInformation::loadState(), ossimUtmProjection::loadState(), ossimElevationDatabase::loadState(), ossimNitfRpcModel::loadState(), ossimBandClipFilter::loadState(), ossimConvolutionFilter1D::loadState(), ossimPolarStereoProjection::loadState(), ossimGdalWriter::loadState(), ossimGeneralRasterWriter::loadState(), ossimGnomonicProjection::loadState(), ossimStereographicProjection::loadState(), ossimAdjMapModel::loadState(), ossimCassiniProjection::loadState(), ossimMillerProjection::loadState(), ossimValueAssignImageSourceFilter::loadState(), ossimPolyconicProjection::loadState(), ossimRLevelFilter::loadState(), ossimImageHistogramSource::loadState(), ossimBonneProjection::loadState(), ossimMollweidProjection::loadState(), ossimOrthoGraphicProjection::loadState(), ossimElevationCellDatabase::loadState(), ossimEckert4Projection::loadState(), ossimVanDerGrintenProjection::loadState(), ossimSinusoidalProjection::loadState(), ossimEckert6Projection::loadState(), ossimGeoAnnotationMultiPolyLineObject::loadState(), ossimCylEquAreaProjection::loadState(), ossimSubImageTileSource::loadState(), ossimplugins::ossimTileMapModel::loadState(), ossimplugins::RefPoint::loadState(), ossimPngCodec::loadState(), ossimTransMercatorProjection::loadState(), ossimPngWriter::loadState(), ossimAnnotationObject::loadState(), ossimTransCylEquAreaProjection::loadState(), ossimRgbLutDataObject::loadState(), ossimGdalOgrVectorAnnotation::loadState(), ossimNBandToIndexFilter::loadState(), ossimAzimEquDistProjection::loadState(), ossimIpodSensor::loadState(), ossimGeoAnnotationPolyObject::loadState(), ossimSkyBoxLearSensor::loadState(), ossimMercatorProjection::loadState(), ossimMemoryImageSource::loadState(), ossimBrightnessContrastSource::loadState(), ossimplugins::ossimErsSarModel::loadState(), ossimMeanMedianFilter::loadState(), ossimAnnotationSource::loadState(), ossimBandAverageFilter::loadState(), ossimObliqueMercatorProjection::loadState(), ossimElevImageSource::loadState(), ossimSrcRecord::loadState(), ossimplugins::ossimRadarSatModel::loadState(), ossimJpegCodec::loadState(), ossimMetadataFileWriter::loadState(), ossimQuadTreeWarpNode::loadState(), ossimplugins::ossimAlosPalsarModel::loadState(), ossimplugins::ossimRadarSat2RPCModel::loadState(), ossimplugins::ossimSpot6DimapSupportData::loadState(), ossimplugins::ossimTerraSarModel::loadState(), ossimplugins::ossimPleiadesDimapSupportData::loadState(), ossimplugins::ossimRadarSat2Model::loadState(), ossimRangeDomeTileSource::loadState(), ossimDataObject::loadState(), ossimTopographicCorrectionFilter::loadState(), ossimBitMaskWriter::loadState(), ossimGeoPolyCutter::loadState(), ossimplugins::PlatformPosition::loadState(), ossimRadialDecentLensDistortion::loadState(), ossimAdjustableParameterInfo::loadState(), ossim2dTo2dShiftTransform::loadState(), ossimSrtmSupportData::loadState(), ossimNitfWriterBase::loadState(), ossimUsgsDemTileSource::loadState(), ossimGeoPolygon::loadState(), ossimTiling::loadState(), ossimMeanRadialLensDistortion::loadState(), ossimFilterResampler::loadState(), ossimTiffWriter::loadState(), ossimNitfFileHeaderV2_X::loadState(), ossimGeoAnnotationFontObject::loadState(), ossimGdalTileSource::loadState(), ossimAtCorrGridRemapper::loadState(), ossimWatermarkFilter::loadState(), ossimLambertConformalConicProjection::loadState(), ossimAlbersProjection::loadState(), ossimSonomaSensor::loadState(), ossimplugins::Ephemeris::loadState(), ossimBandSelector::loadState(), ossimNitfImageHeaderV2_X::loadState(), ossimPolyArea2d::loadState(), ossimBandLutFilter::loadState(), ossimScaleFilter::loadState(), ossimHistogramMatchFilter::loadState(), ossimResampler::loadState(), ossimPixelFlipper::loadState(), ossimNitfImageHeaderV2_1::loadState(), ossimRectilinearDataObject::loadState(), ossimImageSourceSequencer::loadState(), ossimplugins::ossimGeometricSarSensorModel::loadState(), ossimIndexToRgbLutFilter::loadState(), ossimRpfHeader::loadState(), ossimSpotDimapSupportData::loadState(), ossimFormosatDimapSupportData::loadState(), ossimMaskFilter::loadState(), ossimImageViewAffineTransform::loadState(), ossimVpfAnnotationFeatureInfo::loadState(), ossimBumpShadeTileSource::loadState(), ossim2dBilinearTransform::loadState(), ossimEllipsoid::loadState(), ossimOpjCompressor::loadState(), ossimGeoPdfReader::loadState(), ossim2dTo2dMatrixTransform::loadState(), ossimMapProjection::loadState(), ossimMapCompositionSource::loadState(), ossimplugins::SensorParams::loadState(), ossimHistogram::loadState(), ossimPolygon::loadState(), ossimLasReader::loadState(), ossimKakaduCompressor::loadState(), ossimEsriShapeFileFilter::loadState(), ossimEquationCombiner::loadState(), ossimPolyLine::loadState(), ossimMapProjectionInfo::loadState(), ossimNitfFileHeaderV2_1::loadState(), ossimNitfIchipbTag::loadState(), ossimImageFileWriter::loadState(), ossimNitfRpcBase::loadState(), ossimImageGeometry::loadState(), ossimNBandLutDataObject::loadState(), ossimConnectableObject::loadState(), ossimIrect::loadState(), ossimDrect::loadState(), ossimImageData::loadState(), ossimInfo::openImageHandler(), ossimSharedLibraryInitialize(), ossimEquationUtil::parseKwl(), ossimBatchTest::processCommands(), ossimChipProcTool::processRemainingArgs(), ossimBatchTest::processTest(), ossimAdjustableParameterInterface::saveCurrentAdjustmentOnly(), ossimGeneralRasterElevHandler::setFilename(), ossimStringListProperty::setValue(), ossimGdalWriter::storeProperty(), ossimERSFileWriter::writeFile(), and ossimGeoTiff::writeTags().

600 {
601  const char* result = 0;
602  if (key)
603  {
604  std::string k = key;
605  KeywordMap::const_iterator i = m_map.find( k );
606  if (i != m_map.end())
607  {
608  result = (*i).second.c_str();
609  }
610  }
611  return result;
612 }

◆ find() [2/2]

const char * ossimKeywordlist::find ( const char *  prefix,
const char *  key 
) const

Definition at line 614 of file ossimKeywordlist.cpp.

References m_map.

616 {
617  const char* result = 0;
618  if (key)
619  {
620  std::string k;
621  if (prefix) k = prefix;
622  k += key;
623  KeywordMap::const_iterator i = m_map.find( k );
624  if (i != m_map.end())
625  {
626  result = (*i).second.c_str();
627  }
628  }
629  return result;
630 }

◆ findAllKeysThatContains()

std::vector< ossimString > ossimKeywordlist::findAllKeysThatContains ( const ossimString searchString) const

Will return a list of keys that contain the string passed in. Later we will need to allow a user to specify regular expresion searches.

Definition at line 1112 of file ossimKeywordlist.cpp.

References ossimString::contains(), and m_map.

1113 {
1114  KeywordMap::const_iterator i;
1115  std::vector<ossimString> result;
1116 
1117  for(i = m_map.begin(); i != m_map.end(); ++i)
1118  {
1119  if( ossimString((*i).first).contains(searchString))
1120  {
1121  result.push_back((*i).first);
1122  }
1123  }
1124 
1125  return result;
1126 }
bool contains(char aChar) const
Definition: ossimString.h:58

◆ findAllKeysThatMatch()

void ossimKeywordlist::findAllKeysThatMatch ( std::vector< ossimString > &  result,
const ossimString regularExpression 
) const

Finds keys that match regular expression.

Note: This does not clear vector passed to it.

Parameters
resultInitialized by this.
regularExpressione.g. "image[0-9]*\\.file"

Definition at line 1128 of file ossimKeywordlist.cpp.

References ossimString::c_str(), ossimRegExp::compile(), ossimRegExp::find(), and m_map.

Referenced by getKeyValue().

1130 {
1131  KeywordMap::const_iterator i;
1132  ossimRegExp regExp;
1133  regExp.compile(regularExpression.c_str());
1134  for(i = m_map.begin(); i != m_map.end(); ++i)
1135  {
1136  if(regExp.find( (*i).first.c_str()))
1137  {
1138  result.push_back((*i).first);
1139  }
1140  }
1141 }
void compile(const char *)
const char * c_str() const
Returns a pointer to a null-terminated array of characters representing the string&#39;s contents...
Definition: ossimString.h:396
bool find(const char *)

◆ findKey() [1/2]

const std::string & ossimKeywordlist::findKey ( const std::string &  key) const

Find methods that take std::string(s).

Searches the map for key(/prefix) and returns the resulting value or an empty string if the key was not found.

Parameters
keye.g. "number_line"
prefixe..g "image0."
Returns
Reference to string. This will be empty if not found or if value is empty.

Definition at line 580 of file ossimKeywordlist.cpp.

References m_map, and NULL_KW.

Referenced by ossimChipperUtil::addCrossHairAnnotation(), ossimChipProcTool::createInputChain(), ossimChipProcTool::createOutputProjection(), ossimImageUtil::executeCommands(), ossimChipProcTool::finalizeChain(), ossimChipProcTool::findCenterGpt(), findKey(), ossimWriter::getAlignTilesFlag(), ossimFgdcTxtDoc::getAltitudeDistanceUnits(), ossimPdfWriter::getAuthor(), ossimImageMetaData::getBandCount(), ossimChipProcTool::getBandList(), ossimChipperUtil::getBandList(), ossimEnviHeader::getBands(), ossimGpkgWriter::getBatchSize(), ossimWriter::getBlockSize(), ossimChipperUtil::getBrightness(), ossimChipperUtil::getCentralMeridian(), ossimGpkgWriter::getCompressionQuality(), ossimChipperUtil::getContrast(), ossimPdfWriter::getCreationDate(), ossimPdfWriter::getCreator(), ossimEnviHeader::getDefaultBands(), ossimEnviHeader::getDescription(), ossimChipperUtil::getEntryNumber(), ossimGpkgWriter::getEpsgCode(), ossimImageHandler::getExternalImageGeometry(), ossimGpkgWriter::getFilename(), ossimWriter::getFlushTilesFlag(), ossimMrSidReader::getGeoProjection(), ossimInfo::getGrd2img(), ossimChipperUtil::getHemisphere(), ossimChipperUtil::getHistoMode(), ossimPdfWriter::getImageType(), ossimInfo::getImg2grd(), ossimPdfWriter::getKeywords(), ossimEnviHeader::getLines(), ossimPdfWriter::getModDate(), ossimImageUtil::getNumberOfThreads(), ossimAutRegUtil::getOutputFilename(), ossimChipperUtil::getOutputFilename(), ossimChipperUtil::getOutputScalarType(), ossimImageUtil::getOverviewStopDimension(), ossimImageUtil::getOverviewType(), ossimPdfWriter::getProducer(), ossimFgdcTxtDoc::getProjection(), ossimGpkgWriter::getRect(), ossimChipperUtil::getRotation(), ossimEnviHeader::getSamples(), ossimChipperUtil::getSharpenMode(), ossimPdfWriter::getSubject(), ossimImageUtil::getThumbnailSize(), ossimImageUtil::getThumbnailStretchType(), ossimImageUtil::getThumbnailType(), ossimImageUtil::getTileSize(), ossimGpkgWriter::getTileSize(), ossimPdfWriter::getTileSize(), ossimGpkgWriter::getTileTableName(), ossimPdfWriter::getTitle(), ossimEnviHeader::getValue(), ossimWriter::getWriteBlanksFlag(), ossimGpkgWriter::getWriterMode(), ossimEnviHeader::getXStart(), ossimEnviHeader::getYStart(), ossimChipperUtil::getZone(), ossimGpkgWriter::getZoomLevels(), ossimImageUtil::gsubDate(), ossimChipperUtil::hasBrightnesContrastOperation(), ossimChipperUtil::hasRotation(), ossimPotraceTool::initialize(), ossimHlzTool::initialize(), ossimViewshedTool::initialize(), ossimShorelineTool::initialize(), ossimSubImageTool::initialize(), ossimHdf5Tool::initialize(), ossimChipProcTool::initialize(), ossimEpsgProjectionDatabase::initialize(), ossimGeneralRasterInfo::initializeFromHdr(), ossimChipperUtil::initializeIvtScale(), ossimInit::initializePlugins(), ossimChipProcTool::initializeProjectionGsd(), ossimHillshadeTool::initProcessingChain(), ossimHlzTool::initProcessingChain(), ossimAutRegUtil::keyIsTrue(), ossimImageUtil::keyIsTrue(), ossimGpkgWriter::keyIsTrue(), ossimChipperUtil::keyIsTrue(), ossimInfo::keyIsTrue(), ossimChipProcTool::loadDemFiles(), ossimHdf5Tool::loadImageFiles(), ossimChipProcTool::loadImageFiles(), ossimSrtmSupportData::loadOmd(), ossimDtedElevationDatabase::loadState(), ossimH5GridModel::loadState(), ossimGeoidImage::loadState(), ossimTiledImagePatch::loadState(), ossimImageMetaData::loadState(), ossimPngReader::loadState(), ossimWriter::loadState(), ossimTiffTileSource::loadState(), ossimEnviHeader::loadState(), ossimChipProcTool::newUtmProjection(), ossimChipProcTool::newWriter(), ossimBatchTest::processConfigList(), ossimEnviHeader::readStream(), ossimImageMetaData::updateMetaData(), and ossimEnviHeader::writeFile().

581 {
582  // std::string result;
583  KeywordMap::const_iterator i = m_map.find(key);
584  if (i != m_map.end())
585  {
586  // result = (*i).second;
587  return (*i).second;
588  }
590 }
static const std::string NULL_KW

◆ findKey() [2/2]

const std::string & ossimKeywordlist::findKey ( const std::string &  prefix,
const std::string &  key 
) const

Definition at line 592 of file ossimKeywordlist.cpp.

References findKey().

594 {
595  std::string k = prefix+key;
596  return findKey(k);
597 }
const std::string & findKey(const std::string &key) const
Find methods that take std::string(s).

◆ findValue()

template<class CompareType >
bool ossimKeywordlist::findValue ( ossimString value,
const CompareType &  compare 
) const
inline


This is a generic find method that takes a comparator type and iterates through the map executing the overloaded operator ().

Typical code example format

typedef std::unary_function<std::pair<ossimString, ossimString>, bool> KwlCompareFunctionType;
class KwlKeyCaseInsensitiveEquals : public KwlCompareFunctionType
{
public:
   KwlKeyCaseInsensitiveEquals(const ossimString& key):m_key(key){}
   virtual bool operator()(const KwlComparePairType& rhs)const
   {
      return (m_key == rhs.first.downcase());
   }
   ossimString m_key;
};
// now for use case example:
kwl.findValue(value, KwlKeyCaseInsensitiveEquals("foo"));

This example shows how to supplly your own comparator and do a case insensitive search for the key foo and the value is set to the variable value.

Definition at line 138 of file ossimKeywordlist.h.

Referenced by ossimEnviHeader::findSubStringCaseInsensitive().

139  {
140  KeywordMap::const_iterator iter = std::find_if(m_map.begin(), m_map.end(), compare);
141  bool result = (iter != m_map.end());
142  if(result) value = iter->second;
143  return result;
144  }

◆ getBoolKeywordValue()

bool ossimKeywordlist::getBoolKeywordValue ( bool &  rtn_val,
const char *  keyword,
const char *  prefix = 0 
) const

[OLK, Aug/2008] Sets the boolean <rtn_val> depending on value associated with keyword for values = (yes|no|true|false|1|0).

[OLK, Aug/2008] Sets the boolean destination arg depending on value associated with keyword for values = (yes|no|true|false|1|0).

Returns TRUE if keyword found, otherwise false. Also returns false if none of the above permitted values are specified (rtn_val left unchanged in this case).

Definition at line 1453 of file ossimKeywordlist.cpp.

References find(), and ossimString::upcase().

Referenced by ossimBandMergeTool::initialize().

1456 {
1457  bool found = true;
1458  const char* val_str = find(prefix, keyword);
1459  if (val_str)
1460  {
1461  found = true;
1462  ossimString yesno (val_str);
1463  yesno.upcase();
1464  if ((yesno == "YES") || (yesno == "TRUE") || (yesno == "1"))
1465  rtn_val = true;
1466  else if ((yesno == "NO") || (yesno == "FALSE") || (yesno == "0"))
1467  rtn_val = false;
1468  else
1469  found = false;
1470  }
1471  else
1472  found = false;
1473 
1474  return found;
1475 }
const char * find(const char *key) const

◆ getExpandEnvVarsFlag()

bool ossimKeywordlist::getExpandEnvVarsFlag ( void  ) const

Returns the flag that determines whether or not environment variables are expanded.

Definition at line 116 of file ossimKeywordlist.cpp.

References m_expandEnvVars.

117 {
118  return m_expandEnvVars;
119 }

◆ getMap() [1/2]

const ossimKeywordlist::KeywordMap & ossimKeywordlist::getMap ( ) const

◆ getMap() [2/2]

ossimKeywordlist::KeywordMap & ossimKeywordlist::getMap ( )

Definition at line 1320 of file ossimKeywordlist.cpp.

References m_map.

1321 {
1322  return m_map;
1323 }

◆ getMapEntry() [1/3]

ossimKeywordlist::KeywordMap::iterator ossimKeywordlist::getMapEntry ( const std::string &  key)
protected

Definition at line 713 of file ossimKeywordlist.cpp.

References m_map.

Referenced by addPair().

714 {
715  return m_map.find(key);
716 }

◆ getMapEntry() [2/3]

ossimKeywordlist::KeywordMap::iterator ossimKeywordlist::getMapEntry ( const ossimString key)
protected

Definition at line 719 of file ossimKeywordlist.cpp.

References m_map, and ossimString::string().

720 {
721  return m_map.find(key.string());
722 }
const std::string & string() const
Definition: ossimString.h:414

◆ getMapEntry() [3/3]

ossimKeywordlist::KeywordMap::iterator ossimKeywordlist::getMapEntry ( const char *  key)
protected

Definition at line 699 of file ossimKeywordlist.cpp.

References m_map.

700 {
701  if (key)
702  {
703  std::string k = key;
704  return m_map.find(k);
705  }
706  else
707  {
708  return m_map.end();
709  }
710 }

◆ getNumberOfKeysThatMatch()

ossim_uint32 ossimKeywordlist::getNumberOfKeysThatMatch ( const ossimString regularExpression) const

Gets number keys that match regular expression.

Parameters
regularExpressione.g. "image[0-9]*\\.file"
Returns
Number of keys matching regular expression.

Definition at line 1143 of file ossimKeywordlist.cpp.

References ossimString::c_str(), ossimRegExp::compile(), ossimRegExp::find(), and m_map.

Referenced by ossimChipperUtil::getNumberOfInputs(), and ossimChipperUtil::hasAnnotations().

1145 {
1146  ossim_uint32 result = 0;
1147  KeywordMap::const_iterator i;
1148  ossimRegExp regExp;
1149  regExp.compile(regularExpression.c_str());
1150  for(i = m_map.begin(); i != m_map.end(); ++i)
1151  {
1152  if(regExp.find( (*i).first.c_str()))
1153  {
1154  ++result;
1155  }
1156  }
1157  return result;
1158 }
unsigned int ossim_uint32
void compile(const char *)
const char * c_str() const
Returns a pointer to a null-terminated array of characters representing the string&#39;s contents...
Definition: ossimString.h:396
bool find(const char *)

◆ getNumberOfSubstringKeys()

ossim_uint32 ossimKeywordlist::getNumberOfSubstringKeys ( const ossimString regularExpression) const

◆ getSize()

ossim_uint32 ossimKeywordlist::getSize ( ) const

◆ getSortedList()

void ossimKeywordlist::getSortedList ( std::vector< ossimString > &  prefixValues,
const ossimString prefixKey 
) const

This return the sorted keys if you have a list.

Example:

// given a keywordlist called kwl with contents:
// my.list.element1.prop
// my.list.element345.prop
// my.list.element22.prop
std::vector<ossimString> sortedPrefixValues;
kwl.getSortedList(sortedPrefixValues, "my.list.element");
if(sortedPrefixValues.size())
{
// contents should be my.list.element1, my.list.element22, my.list.element345
}

Definition at line 1086 of file ossimKeywordlist.cpp.

References ossimString::clear(), getSubstringKeyList(), ossimString::size(), ossimString::toInt(), and ossimString::toString().

1088 {
1089  ossimString regExpression = ossimString("^(") + prefixKey+ "[0-9]+)";
1090  prefixValues.clear();
1091  std::vector<ossimString> keys;
1092  getSubstringKeyList(keys, regExpression);
1093  ossim_uint32 nKeys = (long)keys.size();
1094 
1095  ossim_uint32 offset = (int)ossimString(prefixKey).size();
1096  ossim_uint32 idx = 0;
1097  std::vector<ossim_uint32> numberList(nKeys);
1098  for(idx = 0; idx < (ossim_uint32)numberList.size();++idx)
1099  {
1100  ossimString numberStr(keys[idx].begin() + offset,
1101  keys[idx].end());
1102  numberList[idx] = numberStr.toInt();
1103  }
1104  std::sort(numberList.begin(), numberList.end());
1105 
1106  for(idx=0;idx < (ossim_uint32)numberList.size();++idx)
1107  {
1108  prefixValues.push_back(prefixKey+ossimString::toString(numberList[idx]));
1109  }
1110 }
void clear()
Erases the entire container.
Definition: ossimString.h:432
static ossimString toString(bool aValue)
Numeric to string methods.
std::string::size_type size() const
Definition: ossimString.h:405
unsigned int ossim_uint32
std::vector< ossimString > getSubstringKeyList(const ossimString &regularExpression) const

◆ getSubstringKeyList() [1/2]

std::vector< ossimString > ossimKeywordlist::getSubstringKeyList ( const ossimString regularExpression) const

Will return only the portion of the key that matches the regular expression.

example:

source1.source1.a: source1.source2.a: source1.source3.a: source1.source4.a: source1.source10.a:

kwl.getSubstringKeyList("source1.source[0-9]*\\.");

will return:

source1.source1. source1.source2. source1.source3. source1.source4. source1.source10.

Definition at line 1199 of file ossimKeywordlist.cpp.

Referenced by ossimConnectableContainer::addAllObjects(), ossimImageChain::addAllSources(), ossimGdalWriter::allocateGdalDriverOptions(), ossimGdalWriter::appendGdalOption(), ossimBatchTest::execute(), ossimConnectableContainer::findInputConnectionIds(), ossimImageChain::findInputConnectionIds(), ossimImageMetaData::getBandCount(), getNumberOfSubstringKeys(), getSortedList(), ossimGdalWriter::getStoredPropertyValue(), ossimEpsgProjectionDatabase::initialize(), ossimInit::initializePlugins(), ossimVpfAnnotationSource::loadState(), ossimVpfAnnotationLibraryInfo::loadState(), ossimVpfAnnotationCoverageInfo::loadState(), ossimGeoPolyCutter::loadState(), ossimBandSelector::loadState(), ossimHistogram::loadState(), ossimBatchTest::processConfigList(), ossimStringListProperty::setValue(), ossimGdalWriter::storeProperty(), and ossimImageMetaData::updateMetaData().

1200 {
1201  std::vector<ossimString> result;
1202  getSubstringKeyList(result, regularExpression);
1203  return result;
1204 }
std::vector< ossimString > getSubstringKeyList(const ossimString &regularExpression) const

◆ getSubstringKeyList() [2/2]

void ossimKeywordlist::getSubstringKeyList ( std::vector< ossimString > &  result,
const ossimString regularExpression 
) const

Definition at line 1206 of file ossimKeywordlist.cpp.

References ossimString::c_str(), ossimRegExp::compile(), ossimRegExp::end(), ossimRegExp::find(), m_map, ossimString::push_back(), and ossimRegExp::start().

1208 {
1209  KeywordMap::const_iterator i;
1210  ossimRegExp regExp;
1211 
1212  regExp.compile(regularExpression.c_str());
1213 
1214  for(i = m_map.begin(); i != m_map.end(); ++i)
1215  {
1216  if(regExp.find( (*i).first.c_str()))
1217  {
1218  ossimString value = ossimString((*i).first.begin()+regExp.start(),
1219  (*i).first.begin()+regExp.start()+regExp.end());
1220 
1221  if(std::find(result.begin(), result.end(), value) == result.end())
1222  {
1223  result.push_back(value);
1224  }
1225  }
1226  }
1227 }
void push_back(char c)
Equivalent to insert(end(), c).
Definition: ossimString.h:905
void compile(const char *)
ossim_uint32 start() const
Definition: ossimRegExp.h:209
ossim_uint32 end() const
Definition: ossimRegExp.h:217
const char * c_str() const
Returns a pointer to a null-terminated array of characters representing the string&#39;s contents...
Definition: ossimString.h:396
bool find(const char *)

◆ hasKey()

bool ossimKeywordlist::hasKey ( const std::string &  key) const

Checks for key in map.

Note that "find" and findKey will alway return an empty string even if the key in not in the map.

Returns
true if key is in map even if value is empty; false, if not.

Definition at line 569 of file ossimKeywordlist.cpp.

References m_map.

Referenced by ossimChipperUtil::getImageSpacePivot(), ossimChipperUtil::getImageSpaceScale(), ossimEnviHeader::getValue(), ossimChipperUtil::hasBandSelection(), ossimChipperUtil::hasCutBoxWidthHeight(), ossimChipperUtil::hasHistogramOperation(), ossimChipperUtil::hasScaleOption(), ossimChipperUtil::hasWmsBboxCutWidthHeight(), ossimViewshedTool::initializeAOI(), and ossimChipProcTool::initializeAOI().

570 {
571  bool result = false;
572  KeywordMap::const_iterator i = m_map.find(key);
573  if (i != m_map.end())
574  {
575  result = true;
576  }
577  return result;
578 }

◆ isSame()

bool ossimKeywordlist::isSame ( const std::vector< ossimString > &  a,
const std::vector< ossimString > &  b 
) const
protected
Returns
true if a == b, false if not.

Definition at line 1860 of file ossimKeywordlist.cpp.

1862 {
1863  bool result = true;
1864  if ( a.size() == b.size() )
1865  {
1866  for ( ossim_uint32 i = 0; i < a.size(); ++i )
1867  {
1868  if ( a[i] != b[i] )
1869  {
1870  result = false;
1871  break;
1872  }
1873  }
1874  }
1875  else
1876  {
1877  result = false;
1878  }
1879  return result;
1880 }
unsigned int ossim_uint32

◆ isSpecialXmlCharacters()

bool ossimKeywordlist::isSpecialXmlCharacters ( const ossimString value) const
protected

Definition at line 1477 of file ossimKeywordlist.cpp.

References ossimString::begin(), and ossimString::end().

Referenced by toXML().

1478 {
1479  for(ossimString::const_iterator it = value.begin(); it != value.end();++it)
1480  {
1481  switch(*it)
1482  {
1483  case '&':
1484  case '<':
1485  case '>':
1486  case '"':
1487  case '\'':
1488  {
1489  return true;
1490  }
1491  default:
1492  {
1493  break;
1494  }
1495  }
1496 
1497  }
1498  return false;
1499 }
std::string::const_iterator const_iterator
Definition: ossimString.h:26
std::string::iterator end()
Definition: ossimString.h:423
std::string::iterator begin()
Definition: ossimString.h:420

◆ isValidKeywordlistCharacter()

bool ossimKeywordlist::isValidKeywordlistCharacter ( ossim_uint8  c) const
protected

Definition at line 757 of file ossimKeywordlist.cpp.

Referenced by readComments(), readKey(), and readValue().

758 {
759  if((c>=0x20&&c<=0x7e))
760  {
761  return true;
762  }
763  switch(c)
764  {
765  case '\n':
766  case '\r':
767  case '\t':
768  return true;
769  }
770  return false;
771 }

◆ isValidTag()

bool ossimKeywordlist::isValidTag ( const std::string &  value) const
protected

Definition at line 1501 of file ossimKeywordlist.cpp.

Referenced by toXML().

1502 {
1503  std::string::const_iterator textChars = value.begin();
1504  bool result = true;
1505  if(!isalpha(*(textChars) ))
1506  {
1507  result = false;
1508  }
1509  else if(!value.empty())
1510  {
1511  for(++textChars;textChars!=value.end();++textChars)
1512  {
1513  if(!isalnum(*(textChars) ))
1514  {
1515  result = false;
1516  break;
1517  }
1518  }
1519  }
1520  else
1521  {
1522  result = false;
1523  }
1524 
1525  return result;
1526 }

◆ numberOf() [1/2]

ossim_uint32 ossimKeywordlist::numberOf ( const char *  str) const

Searches the map for the number of keys containing the string.

Definition at line 661 of file ossimKeywordlist.cpp.

References ossimString::contains(), and m_map.

Referenced by ossimImageUtil::getNextReaderPropIndex(), ossimImageUtil::getNextWriterPropIndex(), ossimBandLutFilter::initializeLut(), ossimChipProcTool::loadDemFiles(), ossimChipProcTool::loadImageFiles(), ossimBilinearProjection::loadState(), ossimImageViewProjectionTransform::loadState(), ossimTiling::loadState(), numberOf(), ossimAutRegUtil::setReaderProps(), ossimChipProcTool::setReaderProps(), and ossimChipperUtil::setReaderProps().

662 {
663  ossim_uint32 count = 0;
664 
665  if (str)
666  {
667  KeywordMap::const_iterator i = m_map.begin();
668 
669  while (i != m_map.end())
670  {
671  if ( ossimString((*i).first).contains(str) )
672  {
673  ++count;
674  }
675  ++i;
676  }
677  }
678 
679  return count;
680 }
bool contains(char aChar) const
Definition: ossimString.h:58
unsigned int ossim_uint32

◆ numberOf() [2/2]

ossim_uint32 ossimKeywordlist::numberOf ( const char *  prefix,
const char *  key 
) const

Searches the map for the number of keys containing the prefix+key.

Given the keyword list contains:

source.type1: foo source.type2: you

This:

int number_of_sources = numberOf("source", "type");

number_of_sources equals 2

Definition at line 682 of file ossimKeywordlist.cpp.

References numberOf().

684 {
685  if ( key ) // Must have key, sometimes no prefix.
686  {
687  std::string k(prefix ? (std::string(prefix)+std::string(key)) : key);
688  return numberOf(k.c_str());
689  }
690  return 0;
691 }
ossim_uint32 numberOf(const char *str) const

◆ operator!=()

bool ossimKeywordlist::operator!= ( ossimKeywordlist kwl) const

Definition at line 1389 of file ossimKeywordlist.cpp.

References m_map.

1390 {
1391  return (m_map != kwl.m_map);
1392 }

◆ operator==()

bool ossimKeywordlist::operator== ( ossimKeywordlist kwl) const

Definition at line 1367 of file ossimKeywordlist.cpp.

References m_map.

1368 {
1369  return (m_map == kwl.m_map);
1370  /*
1371  if(this==&kwl) return true;
1372  std::map<std::string, std::string>::const_iterator iter = m_map.begin();
1373 
1374  while(iter != m_map.end())
1375  {
1376  const char* value = kwl.find((*iter).first.c_str());
1377 
1378  if(ossimString(value) != (*iter).second)
1379  {
1380  return false;
1381  }
1382  ++iter;
1383  }
1384 
1385  return true;
1386  */
1387 }

◆ operator[]() [1/2]

std::string& ossimKeywordlist::operator[] ( const std::string &  key)
inline

Definition at line 146 of file ossimKeywordlist.h.

147  {
148  return m_map[key];
149  }

◆ operator[]() [2/2]

std::string ossimKeywordlist::operator[] ( const std::string &  key) const
inline

Definition at line 150 of file ossimKeywordlist.h.

References ossimString::c_str().

151  {
152  ossimString result = find(key.c_str());
153 
154  return result.c_str();
155  }
const char * find(const char *key) const
const char * c_str() const
Returns a pointer to a null-terminated array of characters representing the string&#39;s contents...
Definition: ossimString.h:396

◆ parseFile()

bool ossimKeywordlist::parseFile ( const ossimFilename file,
bool  ignoreBinaryChars = false 
)
protected

Method to parse files to initialize the list. Method will error on binary characters if "ignoreBinaryChars = false". This is used by ImageHandler factories that can be passed a binary file inadvertently by a user. The "ignoreBinaryChars" flag should be set to true if a text file contains mixed ascii/binary values. Returns true if file was parsed, false on error.

Definition at line 728 of file ossimKeywordlist.cpp.

References ossim::StreamFactoryRegistry::instance(), m_currentlyParsing, parseStream(), and ossimString::string().

Referenced by addFile(), and ossimKeywordlist().

730 {
731  bool result = false;
732 
733  std::shared_ptr<ossim::istream> is = ossim::StreamFactoryRegistry::instance()->
734  createIstream( file.string() );
735  if ( is )
736  {
737  m_currentlyParsing = file;
738  result = parseStream(*is, ignoreBinaryChars);
739  is.reset();
740  }
741 
742  return result;
743 }
static StreamFactoryRegistry * instance()
virtual bool parseStream(ossim::istream &is, bool ignoreBinaryChars)
deprecated method
ossimFilename m_currentlyParsing
const std::string & string() const
Definition: ossimString.h:414

◆ parseStream() [1/2]

bool ossimKeywordlist::parseStream ( ossim::istream is,
bool  ignoreBinaryChars 
)
virtual

◆ parseStream() [2/2]

bool ossimKeywordlist::parseStream ( ossim::istream is)
virtual

Definition at line 1020 of file ossimKeywordlist.cpp.

References ossimString::empty(), ossimString::expandEnvironmentVariable(), KeywordlistParseState_BAD_STREAM, KeywordlistParseState_FAIL, KeywordlistParseState_OK, m_expandEnvVars, m_map, readComments(), readKeyAndValuePair(), readPreprocDirective(), skipWhitespace(), ossimString::string(), and ossimString::trim().

1021 {
1022  if (!is) // Check stream state.
1023  {
1024  return false;
1025  }
1026  ossimString key;
1027  ossimString value;
1028  ossimString sequence;
1030  while(!is.eof() && !is.bad())
1031  {
1032  skipWhitespace(is);
1033  if(is.eof() || is.bad())
1034  return true; // we skipped to end so valid keyword list
1035 
1036  state = readPreprocDirective(is);
1038  return false;
1039 
1040  // if we failed a preprocessor directive parse then try comment parse.
1041  if(state == KeywordlistParseState_FAIL)
1042  {
1043  state = readComments(sequence, is);
1045  return false;
1046  }
1047 
1048  // if we failed a comment parse then try key value parse.
1049  if(state == KeywordlistParseState_FAIL)
1050  {
1051  key = sequence; // just in case there is a 1 token look ahead residual for a single slash test.
1052  ossimKeywordlist::KeywordlistParseState testKeyValueState = readKeyAndValuePair(key, value, is);
1053  if(testKeyValueState == KeywordlistParseState_OK)
1054  {
1055  key = key.trim();
1056  if(key.empty())
1057  return true;
1058 
1059  if ( m_expandEnvVars == true )
1060  value = value.expandEnvironmentVariable();
1061  m_map.insert(std::make_pair(key.string(), value.string()));
1062  }
1063  else if(testKeyValueState & KeywordlistParseState_BAD_STREAM)
1064  {
1065  return false;
1066  }
1067 #if 0
1068  // Commented out to allow an invalid line in keyword list without
1069  // erroring out, effectively skipping bad line. drb - 01 Sep. 2001
1070  else
1071  {
1072  return false;
1073  }
1074 #endif
1075  }
1076  else if(state & KeywordlistParseState_BAD_STREAM)
1077  {
1078  return false;
1079  }
1080  sequence = key = value = "";
1081  }
1082 
1083  return true;
1084 }
KeywordlistParseState readComments(ossimString &sequence, ossim::istream &in) const
void skipWhitespace(ossim::istream &in) const
KeywordlistParseState readPreprocDirective(ossim::istream &in)
ossimString expandEnvironmentVariable() const
If the variable "$(env_var_name)" is found in the string, where "env_var_name" is any system environm...
ossimString trim(const ossimString &valueToTrim=ossimString(" \\)) const
this will strip lead and trailing character passed in.
KeywordlistParseState readKeyAndValuePair(ossimString &key, ossimString &value, ossim::istream &in) const
bool empty() const
Definition: ossimString.h:411
const std::string & string() const
Definition: ossimString.h:414

◆ parseString()

bool ossimKeywordlist::parseString ( const std::string &  inString)
virtual

Definition at line 750 of file ossimKeywordlist.cpp.

References parseStream().

Referenced by ossim::Image::loadJSON(), and ossimSharedLibraryInitialize().

751 {
752  ossim::istringstream in(inString);
753 
754  return parseStream(in);
755 }
virtual bool parseStream(ossim::istream &is, bool ignoreBinaryChars)
deprecated method
std::basic_istringstream< char > istringstream
Class for char input memory streams.
Definition: ossimIosFwd.h:32

◆ print()

std::ostream & ossimKeywordlist::print ( std::ostream &  out) const
virtual

Outputs theErrorStatus as an ossimErrorCode and an ossimString.

Returns
std::ostream&
Note
Derived classes should only have to implement a virtual print, not an operator<< funtion as it's implemented here.

Reimplemented from ossimErrorStatusInterface.

Definition at line 1341 of file ossimKeywordlist.cpp.

References ossimString::c_str(), delimiter_str(), m_map, and writeToStream().

Referenced by ossimHdf5Tool::execute(), operator<<(), and ossimSarModel::print().

1342 {
1343  writeToStream(os);
1344 #if 0
1345  KeywordMap::const_iterator i;
1346 
1347  for(i = m_map.begin(); i != m_map.end(); ++i)
1348  {
1349  os << (*i).first << delimiter_str().c_str() << " "
1350  << (*i).second << std::endl;
1351  }
1352 #endif
1353  return os;
1354 }
virtual void writeToStream(std::ostream &out) const
const char * c_str() const
Returns a pointer to a null-terminated array of characters representing the string&#39;s contents...
Definition: ossimString.h:396
ossimString delimiter_str() const

◆ readComments()

ossimKeywordlist::KeywordlistParseState ossimKeywordlist::readComments ( ossimString sequence,
ossim::istream in 
) const
protected

Definition at line 784 of file ossimKeywordlist.cpp.

References isValidKeywordlistCharacter(), KeywordlistParseState_BAD_STREAM, KeywordlistParseState_FAIL, and KeywordlistParseState_OK.

Referenced by parseStream().

785 {
787  char c = (char)in.peek();
788  if(c == '/')
789  {
790  sequence += (char)in.get();
791  c = in.peek();
792  if(c == '/')
793  {
794  result = KeywordlistParseState_OK;
795  sequence += c;
796  while(!in.bad()&&!in.eof())
797  {
798  c = (char)in.get();
799  if (in.bad() || in.eof())
800  break;
801 
803  {
805  break;
806  }
807  if((c == '\n')|| (c == '\r'))
808  break;
809 
810  sequence += c;
811  }
812  }
813  }
814  return result;
815 }
bool isValidKeywordlistCharacter(ossim_uint8 c) const

◆ readKey()

ossimKeywordlist::KeywordlistParseState ossimKeywordlist::readKey ( ossimString sequence,
ossim::istream in 
) const
protected

Definition at line 863 of file ossimKeywordlist.cpp.

References ossimString::begin(), ossimString::clear(), ossimString::empty(), isValidKeywordlistCharacter(), KeywordlistParseState_BAD_STREAM, KeywordlistParseState_FAIL, KeywordlistParseState_OK, m_delimiter, ossimString::size(), and ossimString::trim().

Referenced by readKeyAndValuePair().

864 {
866  if(!sequence.empty())
867  {
868  if(*(sequence.begin()+(sequence.size()-1)) == m_delimiter)
869  {
870  sequence = ossimString(sequence.begin(), sequence.begin() + (sequence.size()-1));
872  }
873  }
874  // not a comment so read til key delimeter
875  while(!in.eof() && in.good())
876  {
877  ossim_uint8 c = in.get();
879  {
880  if ( (c == '\n') || (c == '\r') )
881  {
882  // Hit end of line with no delimiter.
883  if ( in.peek() == EOF )
884  {
885  //---
886  // Allowing on last line only.
887  // Note the empty key will trigger parseStream to return true.
888  //---
889  sequence.clear();
890  result = KeywordlistParseState_OK;
891  break;
892  }
893  else // Line with no delimiter.
894  {
895  // mal formed input stream for keyword list specification
897  break;
898  }
899  }
900  else if(c != m_delimiter)
901  {
902  sequence += (char)c;
903  }
904  else // at m_delimiter
905  {
906  result = KeywordlistParseState_OK;
907  sequence = sequence.trim();
908  break;
909  }
910  }
911  else
912  {
913  // mal formed input stream for keyword list specification
915  break;
916  }
917  }
918  // we never found a delimeter so we are mal formed
919  if(!sequence.empty()&&(result!=KeywordlistParseState_OK))
920  {
922  }
923  return result;
924 }
void clear()
Erases the entire container.
Definition: ossimString.h:432
std::string::size_type size() const
Definition: ossimString.h:405
std::string::iterator begin()
Definition: ossimString.h:420
ossimString trim(const ossimString &valueToTrim=ossimString(" \\)) const
this will strip lead and trailing character passed in.
bool empty() const
Definition: ossimString.h:411
bool isValidKeywordlistCharacter(ossim_uint8 c) const
unsigned char ossim_uint8

◆ readKeyAndValuePair()

ossimKeywordlist::KeywordlistParseState ossimKeywordlist::readKeyAndValuePair ( ossimString key,
ossimString value,
ossim::istream in 
) const
protected

Definition at line 1011 of file ossimKeywordlist.cpp.

References KeywordlistParseState_BAD_STREAM, readKey(), and readValue().

Referenced by parseStream().

1012 {
1014  if(keyState & KeywordlistParseState_BAD_STREAM) return keyState;
1015  ossimKeywordlist::KeywordlistParseState valueState = readValue(value, in);
1016  return static_cast<ossimKeywordlist::KeywordlistParseState>( (static_cast<int>(keyState) |
1017  static_cast<int>(valueState)) );
1018 }
KeywordlistParseState readKey(ossimString &sequence, ossim::istream &in) const
KeywordlistParseState readValue(ossimString &sequence, ossim::istream &in) const

◆ readPreprocDirective()

ossimKeywordlist::KeywordlistParseState ossimKeywordlist::readPreprocDirective ( ossim::istream in)
protected

Definition at line 818 of file ossimKeywordlist.cpp.

References addFile(), ossimString::after(), ossimString::before(), ossimString::empty(), ossimString::expandEnvironmentVariable(), KeywordlistParseState_FAIL, KeywordlistParseState_OK, m_currentlyParsing, ossimFilename::path(), readValue(), status, ossimString::string(), and ossimString::trim().

Referenced by parseStream().

819 {
821 
822  char c = (char)in.peek();
823  while (c == '#')
824  {
825  // Read the line as one big value:
826  ossimString sequence;
827  status = readValue(sequence, in);
828  if (status)
829  break;
830 
831  ossimString directive = sequence.before(" ");
832 
833  // Check for external KWL include file:
834  if (directive == "#include")
835  {
836  ossimFilename includeFile = sequence.after(" ");
837  if (includeFile.empty())
838  break; // ignore bogus preproc line
839  includeFile.trim("\"");
840  includeFile.expandEnvironmentVariable();
841 
842  // The filename can be either relative to the current file being parsed or absolute:
843  if (includeFile.string()[0] != '/')
844  includeFile = m_currentlyParsing.path() + "/" + includeFile;
845 
846  // Save the current path in case the new one contains it's own include directive!
847  ossimFilename savedCurrentPath = m_currentlyParsing;
848  addFile(includeFile); // Quietly ignore any errors loading external KWL.
849  m_currentlyParsing = savedCurrentPath;
850  }
851 
852 // else if (directive == "#add_new_directive_here")
853 // {
854 // process directive
855 // }
856 
858  break;
859  }
860  return status;
861 }
ossimString before(const ossimString &str, std::string::size_type pos=0) const
METHOD: before(str, pos) Returns string beginning at pos and ending one before the token str If strin...
bool addFile(const char *file)
ossimString expandEnvironmentVariable() const
If the variable "$(env_var_name)" is found in the string, where "env_var_name" is any system environm...
ossimString trim(const ossimString &valueToTrim=ossimString(" \\)) const
this will strip lead and trailing character passed in.
return status
ossimFilename m_currentlyParsing
bool empty() const
Definition: ossimString.h:411
ossimString after(const ossimString &str, std::string::size_type pos=0) const
METHOD: after(str, pos) Returns string immediately after the token str.
ossimFilename path() const
KeywordlistParseState readValue(ossimString &sequence, ossim::istream &in) const
const std::string & string() const
Definition: ossimString.h:414

◆ readValue()

ossimKeywordlist::KeywordlistParseState ossimKeywordlist::readValue ( ossimString sequence,
ossim::istream in 
) const
protected

Definition at line 926 of file ossimKeywordlist.cpp.

References ossimString::begin(), ossimString::end(), isValidKeywordlistCharacter(), KeywordlistParseState_BAD_STREAM, KeywordlistParseState_OK, ossimString::size(), and ossimString::string().

Referenced by readKeyAndValuePair(), and readPreprocDirective().

927 {
929 
930  ossim_int32 quoteCount = 0; // mark as not set
931 
932  // make sure we check for a blank value
933  while(!in.eof()&&!in.bad())
934  {
935  if(in.peek() == ' '||
936  in.peek() == '\t')
937  {
938  in.ignore();
939  }
940  else if(in.peek() == '\n' ||
941  in.peek() == '\r')
942  {
943  in.ignore();
944  return result;
945  }
946  else
947  {
948  break;
949  }
950  }
951  // The ifstream object will end in '�' (character 255 or -1) if the end-of-file indicator
952  // will not be set(e.g \n). In this case, end-of-file conditions would never be detected.
953  // add EOF (which is actually the integer -1 or 255) check here.
954  // Reference link http://www.cplusplus.com/forum/general/33821/
955  while(!in.eof()&&!in.bad()&&in.peek()!=EOF)
956  {
957  ossim_uint8 c = in.get();
959  {
960  if(((c == '\n'||c=='\r') && !quoteCount) || in.eof())
961  {
962  break;
963  }
964  sequence += (char)c;
965  if(sequence.size() >2)
966  {
967  if(quoteCount < 1)
968  {
969  //---
970  // If string has leading tripple quoted bump the "quoteCount" so
971  // we start skipping line breaks, preserving paragraph style strings.
972  //---
973  if(ossimString(sequence.begin(), sequence.begin()+3) == "\"\"\"")
974  {
975  ++quoteCount;
976  }
977  }
978  else // check for ending quotes
979  {
980  if(ossimString(sequence.begin() + sequence.size()-3, sequence.end()) == "\"\"\"")
981  {
982  ++quoteCount;
983  }
984  }
985  }
986  if(quoteCount > 1)
987  {
988  //---
989  // Have leading and trailing tripple quotes. Some tiff writers, e.g. Space
990  // Imaging are using four quotes. Below code strips all quotes from each end.
991  //---
992  char quote = '"';
993  std::string::size_type startPos = sequence.string().find_first_not_of(quote);
994  std::string::size_type stopPos = sequence.string().find_last_not_of(quote);
995  if ( ( startPos != std::string::npos ) && (stopPos != std::string::npos) )
996  {
997  sequence = sequence.string().substr( startPos, stopPos-startPos+1 );
998  }
999  break;
1000  }
1001  }
1002  else
1003  {
1005  break;
1006  }
1007  }
1008  return result;
1009 }
std::string::iterator end()
Definition: ossimString.h:423
std::string::size_type size() const
Definition: ossimString.h:405
std::string::iterator begin()
Definition: ossimString.h:420
bool isValidKeywordlistCharacter(ossim_uint8 c) const
unsigned char ossim_uint8
int ossim_int32
const std::string & string() const
Definition: ossimString.h:414

◆ remove() [1/2]

void ossimKeywordlist::remove ( const char *  key)

Definition at line 632 of file ossimKeywordlist.cpp.

References m_map.

Referenced by ossimEpsgProjectionFactory::createProjection(), ossimEpsgProjectionDatabase::createProjFromFormatBRecord(), and getKeyValue().

633 {
634  ossimString k = key?key:"";
635 
636  KeywordMap::iterator i = m_map.find(k);
637 
638  if(i != m_map.end())
639  {
640  m_map.erase(i);
641  }
642 }

◆ remove() [2/2]

void ossimKeywordlist::remove ( const char *  prefix,
const char *  key 
)

Definition at line 644 of file ossimKeywordlist.cpp.

References m_map.

645 {
646  if (key)
647  {
648  ossimString k;
649  if (prefix) k = prefix;
650  k += key;
651 
652  KeywordMap::iterator i = m_map.find(k);
653 
654  if(i != m_map.end())
655  {
656  m_map.erase(i);
657  }
658  }
659 }

◆ removeKeysThatMatch()

void ossimKeywordlist::removeKeysThatMatch ( const ossimString regularExpression)

Definition at line 1178 of file ossimKeywordlist.cpp.

References ossimString::c_str(), ossimRegExp::compile(), ossimRegExp::find(), and m_map.

Referenced by ossimSlopeTool::initProcessingChain().

1179 {
1180  KeywordMap::const_iterator i;
1181  std::vector<ossimString> result;
1182  ossimRegExp regExp;
1183 
1184  regExp.compile(regularExpression.c_str());
1185 
1186  for(i = m_map.begin(); i != m_map.end(); ++i)
1187  {
1188  if(regExp.find( (*i).first.c_str()))
1189  {
1190  result.push_back((*i).first);
1191  }
1192  }
1193  for(ossim_uint32 i2 = 0; i2 < result.size(); ++i2)
1194  {
1195  remove(result[i2]);
1196  }
1197 }
unsigned int ossim_uint32
void compile(const char *)
const char * c_str() const
Returns a pointer to a null-terminated array of characters representing the string&#39;s contents...
Definition: ossimString.h:396
bool find(const char *)

◆ replaceSpecialCharacters()

void ossimKeywordlist::replaceSpecialCharacters ( ossimString value) const
protected

Definition at line 1528 of file ossimKeywordlist.cpp.

References ossimString::begin(), and ossimString::end().

Referenced by toXML().

1529 {
1530  ossimString::iterator iter = value.begin();
1531 
1532  while(iter!=value.end())
1533  {
1534  if(!(isdigit(*iter) ||
1535  isalpha(*iter)||
1536  (*iter=='/')))
1537  {
1538  *iter = '_';
1539  }
1540  ++iter;
1541  }
1542 }
std::string::iterator iterator
Definition: ossimString.h:27
std::string::iterator end()
Definition: ossimString.h:423
std::string::iterator begin()
Definition: ossimString.h:420

◆ setExpandEnvVarsFlag()

void ossimKeywordlist::setExpandEnvVarsFlag ( bool  flag)

If set to true, then strings found having the format "$(env_var_name)" are expanded in place.

Definition at line 111 of file ossimKeywordlist.cpp.

References m_expandEnvVars.

Referenced by ossimBatchTest::execute(), ossimChipperUtil::ossimChipperUtil(), ossimChipProcTool::ossimChipProcTool(), ossimHillshadeTool::ossimHillshadeTool(), and ossimPreferences::ossimPreferences().

112 {
113  m_expandEnvVars = flag;
114 }

◆ skipWhitespace()

void ossimKeywordlist::skipWhitespace ( ossim::istream in) const
protected

Definition at line 773 of file ossimKeywordlist.cpp.

Referenced by parseStream().

774 {
775  int c = in.peek();
776  while( !in.fail() &&
777  ( (c == ' ') || (c == '\t') || (c == '\n') || (c == '\r') ) )
778  {
779  in.ignore(1);
780  c = in.peek();
781  }
782 }

◆ stripPrefixFromAll()

void ossimKeywordlist::stripPrefixFromAll ( const ossimString regularExpression)

Definition at line 1281 of file ossimKeywordlist.cpp.

References addPair(), ossimString::c_str(), clear(), ossimRegExp::compile(), ossimRegExp::end(), ossimRegExp::find(), m_map, and ossimRegExp::start().

Referenced by ossimWktProjectionFactory::createProjection(), ossimGpkgWriter::loadState(), and ossimKakaduJpipInfo::print().

1282 {
1283  ossimKeywordlist tempKwl = *this;
1284 
1285  clear();
1286 
1287  KeywordMap::const_iterator values = tempKwl.m_map.begin();
1288  ossimRegExp regExp;
1289 
1290  regExp.compile(regularExpression.c_str());
1291 
1292  while(values != tempKwl.m_map.end())
1293  {
1294  std::string newKey = (*values).first;
1295  if(regExp.find( (*values).first.c_str()))
1296  {
1297  newKey.erase(newKey.begin()+regExp.start(),
1298  newKey.begin()+regExp.start()+regExp.end());
1299 
1300  addPair(newKey, (*values).second, true);
1301  }
1302  else
1303  {
1304  addPair(newKey, (*values).second, true);
1305  }
1306  ++values;
1307  }
1308 }
Represents serializable keyword/value map.
void addPair(const std::string &key, const std::string &value, bool overwrite=true)
void compile(const char *)
ossim_uint32 start() const
Definition: ossimRegExp.h:209
ossim_uint32 end() const
Definition: ossimRegExp.h:217
const char * c_str() const
Returns a pointer to a null-terminated array of characters representing the string&#39;s contents...
Definition: ossimString.h:396
bool find(const char *)

◆ toJSON()

void ossimKeywordlist::toJSON ( std::ostream &  out,
const std::string &  rootTag = "info" 
) const

Outputs in json format.

Parameters
outStream to write to.
rootTagname of the root json element/tag

Definition at line 1624 of file ossimKeywordlist.cpp.

1625 {
1626  const std::string C = ": "; // colon
1627  const std::string DQ = "\""; // double Quote
1628  const std::string LB = "{"; // left bracket
1629  const std::string CNL = ",\n"; // coma, new line
1630  const std::string NL = "\n"; // new line
1631  const std::string RB = "}"; // left bracket
1632  const std::string S = " "; // space
1633  ossim_uint32 nameCount = 0;
1634  ossimString lastObject;
1635  ossim_uint32 indentCount = 3;
1636  ossim_uint32 indentOffset = 3;
1637 
1638  bool stringify = true;
1639  bool closeObject = false;
1640  std::vector<ossimString> objectStack;
1641 
1642  // Opening bracket:
1643  out << LB;
1644 
1645  if( rootTag.size() )
1646  {
1647  if ( stringify )
1648  {
1649  indentOffset = indentCount;
1650  std::string indent(indentCount, ' ');
1651  out << NL << indent;
1652  }
1653  else
1654  {
1655  out << NL;
1656  }
1657  // Note: not adding rootTag to object stack
1658  out << DQ << rootTag << DQ << C << LB << NL;
1659  }
1660 
1661  ossimKeywordlist::KeywordMap::const_iterator iter = m_map.begin();
1662  while(iter != m_map.end())
1663  {
1664  bool outputValue = true;
1665  ossimString key = iter->first;
1666  ossimString value = iter->second;
1667  value = value.trim(); // remove spaces
1668 
1669 #if 0
1670  if(key.contains("unformatted_tag_data"))
1671  {
1672  ossimString temp = value.trim();
1673  if(ossimString(temp.begin(), temp.begin()+5) == "<?xml")
1674  {
1675  value = "data not converted";
1676  outputValue = false;
1677  }
1678  }
1679 #endif
1680 
1681  if ( outputValue && key.size() )
1682  {
1683  std::vector<ossimString> keys;
1684  key.split(keys,".");
1685 
1686  if ( keys.size() )
1687  {
1688  // The last key is the name so grab it now and pop it off the stack:
1689  ossimString name = keys[keys.size()-1];
1690  keys.pop_back();
1691 
1692  bool sameObject = isSame( keys, objectStack );
1693  if ( !sameObject && keys.size() )
1694  {
1695  for ( ossim_uint32 i = 0; i < keys.size(); ++i )
1696  {
1697  if ( i < objectStack.size() )
1698  {
1699  if ( keys[i] == objectStack[i] )
1700  {
1701  // On stack already. Nothng to do. Go to next key.
1702  continue;
1703  }
1704  else
1705  {
1706  // Different object:
1707  while ( i < objectStack.size() )
1708  {
1709  // Write bracket, then pop:
1710  if ( stringify )
1711  {
1712  std::string indent(indentOffset+(indentCount*objectStack.size()), ' ');
1713  out << NL << indent << RB;
1714  }
1715  else
1716  {
1717  out << NL << RB;
1718  }
1719  objectStack.pop_back();
1720  nameCount = 0;
1721  closeObject = true;
1722  if ( objectStack.size() )
1723  {
1724  lastObject = objectStack[objectStack.size()-1];
1725  }
1726  else
1727  {
1728  lastObject.clear();
1729  }
1730  }
1731  }
1732  }
1733 
1734  //---
1735  // New object:
1736  // If we had written a key:value for previos object, do a
1737  // newline and zero it out.
1738  //---
1739  if ( nameCount )
1740  {
1741  out << CNL;
1742  nameCount = 0;
1743  }
1744 
1745  objectStack.push_back( keys[i] );
1746 
1747  if ( closeObject )
1748  {
1749  out << CNL;
1750  closeObject = false;
1751  }
1752 
1753  if ( stringify )
1754  {
1755  std::string indent(indentOffset+(indentCount*objectStack.size()), ' ');
1756  out << indent;
1757  }
1758  out << DQ << keys[i] << DQ << C << LB << NL;
1759  }
1760 
1761  // Final check if keys shrunk, pop objects off the object stack.
1762  while ( keys.size() < objectStack.size() )
1763  {
1764  // Write bracket then pop:
1765  if ( stringify )
1766  {
1767  std::string indent(indentOffset+(indentCount*objectStack.size()), ' ');
1768  out << NL << indent << RB;
1769  }
1770  else
1771  {
1772  out << NL << RB;
1773  }
1774  objectStack.pop_back();
1775  nameCount = 0;
1776  closeObject = true;
1777  if ( objectStack.size() )
1778  {
1779  lastObject = objectStack[objectStack.size()-1];
1780  }
1781  else
1782  {
1783  lastObject.clear();
1784  }
1785  }
1786  }
1787 
1788  if ( objectStack.size() )
1789  {
1790  if ( lastObject == objectStack[objectStack.size()-1] )
1791  {
1792  out << CNL;
1793  closeObject = false;
1794  }
1795  }
1796  else if ( nameCount ) // No objects loaded on the stack.
1797  {
1798  out << CNL;
1799  }
1800 
1801  // Output "key": "value"
1802  if ( stringify )
1803  {
1804  std::string indent(indentOffset+indentCount*(objectStack.size()+1), ' ');
1805  out << indent;
1806  }
1807  out << DQ << name << DQ << C << DQ << value << DQ;
1808 
1809  if ( objectStack.size() )
1810  {
1811  lastObject = objectStack[objectStack.size()-1];
1812  }
1813  else
1814  {
1815  lastObject.clear();
1816  }
1817 
1818  ++nameCount;
1819  }
1820  }
1821  ++iter;
1822 
1823  } // Matches: while(iter != m_map.end())
1824 
1825  // Close out brackets:
1826  ossim_uint32 stackSize = objectStack.size();
1827  if ( stackSize )
1828  {
1829  for ( ossim_uint32 i = stackSize; i > 0; --i )
1830  {
1831  if ( stringify )
1832  {
1833  std::string indent(indentOffset+indentCount*i, ' ');
1834  out << NL << indent << RB;
1835  }
1836  else
1837  {
1838  out << NL << RB;
1839  }
1840  }
1841  }
1842 
1843  if( rootTag.size() )
1844  {
1845  if ( stringify )
1846  {
1847  std::string indent(indentCount, ' ');
1848  out << NL << indent << RB;
1849  }
1850  else
1851  {
1852  out << NL << RB;
1853  }
1854  }
1855 
1856  // Closing bracket, newline with flush:
1857  out << NL << RB << std::endl;
1858 }
void clear()
Erases the entire container.
Definition: ossimString.h:432
bool contains(char aChar) const
Definition: ossimString.h:58
void split(std::vector< ossimString > &result, const ossimString &separatorList, bool skipBlankFields=false) const
Splits this string into a vector of strings (fields) using the delimiter list specified.
std::string::size_type size() const
Definition: ossimString.h:405
std::string::iterator begin()
Definition: ossimString.h:420
unsigned int ossim_uint32
ossimString trim(const ossimString &valueToTrim=ossimString(" \\)) const
this will strip lead and trailing character passed in.
bool isSame(const std::vector< ossimString > &a, const std::vector< ossimString > &b) const

◆ toString() [1/2]

ossimString ossimKeywordlist::toString ( ) const
virtual

Definition at line 507 of file ossimKeywordlist.cpp.

References ossimString::c_str(), delimiter_str(), m_map, and writeToStream().

Referenced by ossim::Image::saveJSON(), ossimStringListProperty::valueToString(), and ossimFontProperty::valueToString().

508 {
509  std::ostringstream out;
510  writeToStream(out);
511 
512 #if 0
513  KeywordMap::const_iterator i;
514  ossimString result;
515 
516  for(i = m_map.begin(); i != m_map.end(); i++)
517  {
518  result += (*i).first;
519  result += delimiter_str().c_str();
520  result += " ";
521  result += (*i).second;
522  result += '\n';
523  }
524 #endif
525  return ossimString(out.str());
526 }
std::basic_ostringstream< char > ostringstream
Class for char output memory streams.
Definition: ossimIosFwd.h:35
virtual void writeToStream(std::ostream &out) const
const char * c_str() const
Returns a pointer to a null-terminated array of characters representing the string&#39;s contents...
Definition: ossimString.h:396
ossimString delimiter_str() const

◆ toString() [2/2]

void ossimKeywordlist::toString ( ossimString result) const
virtual

Definition at line 528 of file ossimKeywordlist.cpp.

References ossimString::c_str(), delimiter_str(), m_map, and writeToStream().

529 {
530  std::ostringstream out;
531  writeToStream(out);
532 
533  result = out.str();
534 #if 0
535  KeywordMap::const_iterator i;
536 
537  for(i = m_map.begin(); i != m_map.end(); i++)
538  {
539  result += (*i).first;
540  result += delimiter_str().c_str();
541  result += " ";
542  result += (*i).second;
543  result += '\n';
544  }
545 #endif
546 }
std::basic_ostringstream< char > ostringstream
Class for char output memory streams.
Definition: ossimIosFwd.h:35
virtual void writeToStream(std::ostream &out) const
const char * c_str() const
Returns a pointer to a null-terminated array of characters representing the string&#39;s contents...
Definition: ossimString.h:396
ossimString delimiter_str() const

◆ toXML()

void ossimKeywordlist::toXML ( std::ostream &  out,
const std::string &  rootTag = "info" 
) const

Outputs in xml format.

Parameters
outStream to write to.
rootTagname of the root XML element/tag

Definition at line 1544 of file ossimKeywordlist.cpp.

References ossimXmlNode::addNode(), ossimString::begin(), ossimString::c_str(), ossimString::contains(), ossimRefPtr< T >::get(), ossimXmlNode::getChildNodes(), isSpecialXmlCharacters(), isValidTag(), ossimString::join(), m_map, replaceSpecialCharacters(), ossimXmlNode::setCDataFlag(), ossimXmlNode::setTag(), ossimString::split(), ossimString::substitute(), and ossimString::trim().

1545 {
1546  std::string rootTagStr = rootTag;
1547  if (!isValidTag(rootTagStr))
1548  {
1549  rootTagStr = "info";
1550  }
1551 
1552  ossimRefPtr<ossimXmlNode> metadata = new ossimXmlNode;
1553  metadata->setTag("metadata");
1554  ossimKeywordlist::KeywordMap::const_iterator iter = m_map.begin();
1555  while(iter != m_map.end())
1556  {
1557  ossimString path = iter->first;
1558  bool outputValue = true;
1559  ossimString value = iter->second;
1560  if(path.contains("unformatted_tag_data"))
1561  {
1562  ossimString temp = value.trim();
1563  if(ossimString(temp.begin(), temp.begin()+5) == "<?xml")
1564  {
1565  value = "XML not converted";
1566  outputValue = false;
1567  }
1568  }
1569 
1570  if(outputValue)
1571  {
1572  bool tagOk = true;
1573  path = path.substitute(".", "/", true);
1575  std::vector<ossimString> splitValues;
1576  path.split(splitValues,"/");
1577  if(splitValues.size())
1578  {
1579  splitValues[splitValues.size()-1] = splitValues[splitValues.size()-1].downcase();
1580  ossim_uint32 idx = 0;
1581  for(idx = 0; ((idx < splitValues.size()-1)&&tagOk);++idx)
1582  {
1583  if(!isValidTag(splitValues[idx]))
1584  {
1585  tagOk = false;
1586  }
1587  splitValues[idx] = splitValues[idx].upcase();
1588  }
1589  }
1590  if(tagOk)
1591  {
1592  path.join(splitValues, "/");
1593  ossimRefPtr<ossimXmlNode> node = metadata->addNode(path.c_str(), value);
1594  if(isSpecialXmlCharacters(value))
1595  {
1596  node->setCDataFlag(true);
1597  }
1598  }
1599  }
1600  ++iter;
1601  }
1602 
1603  if( 1 ) // tmp dbr !m_includeMetadataTagName)
1604  {
1605  out << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" << std::endl
1606  << "<" << rootTagStr << ">\n";
1607 
1608  const ossimXmlNode::ChildListType& children = metadata->getChildNodes();
1609  ossimXmlNode::ChildListType::const_iterator iter = children.begin();
1610  while(iter != children.end())
1611  {
1612  out << *(iter->get());
1613  ++iter;
1614  }
1615  out << "\n</" << rootTagStr << ">" << std::endl;
1616  }
1617  else
1618  {
1619  out << *(metadata.get()) << std::endl;
1620  }
1621 }
void setTag(const ossimString &tag)
ossimString substitute(const ossimString &searchKey, const ossimString &replacementValue, bool replaceAll=false) const
Substitutes searchKey string with replacementValue and returns a string.
const ossimString & join(const std::vector< ossimString > &stringList, const ossimString &separator)
const ossimXmlNode::ChildListType & getChildNodes() const
bool contains(char aChar) const
Definition: ossimString.h:58
void split(std::vector< ossimString > &result, const ossimString &separatorList, bool skipBlankFields=false) const
Splits this string into a vector of strings (fields) using the delimiter list specified.
ossimRefPtr< ossimXmlNode > addNode(const ossimString &relPath, const ossimString &text="")
std::vector< ossimRefPtr< ossimXmlNode > > ChildListType
Definition: ossimXmlNode.h:30
bool isValidTag(const std::string &value) const
std::string::iterator begin()
Definition: ossimString.h:420
unsigned int ossim_uint32
ossimString trim(const ossimString &valueToTrim=ossimString(" \\)) const
this will strip lead and trailing character passed in.
bool isSpecialXmlCharacters(const ossimString &value) const
void setCDataFlag(bool value)
void replaceSpecialCharacters(ossimString &value) const
const char * c_str() const
Returns a pointer to a null-terminated array of characters representing the string&#39;s contents...
Definition: ossimString.h:396

◆ trimAllValues() [1/2]

ossimKeywordlist & ossimKeywordlist::trimAllValues ( const ossimString valueToTrim = ossimString(" \t\n\r"))

Definition at line 1426 of file ossimKeywordlist.cpp.

References m_map, ossimString::string(), and ossimString::trim().

Referenced by trimAllValues().

1427 {
1428  KeywordMap::iterator iter = m_map.begin();
1429 
1430  while(iter != m_map.end())
1431  {
1432  iter->second = ossimString(iter->second).trim(valueToTrim).string();
1433  ++iter;
1434  }
1435 
1436  return *this;
1437 }
ossimString trim(const ossimString &valueToTrim=ossimString(" \\)) const
this will strip lead and trailing character passed in.
const std::string & string() const
Definition: ossimString.h:414

◆ trimAllValues() [2/2]

ossimKeywordlist ossimKeywordlist::trimAllValues ( const ossimString valueToTrim = ossimString(" \t\n\r")) const

Definition at line 1439 of file ossimKeywordlist.cpp.

References trimAllValues().

1440 {
1441  ossimKeywordlist result(*this);
1442  result.trimAllValues(valueToTrim);
1443  return result;
1444 }
Represents serializable keyword/value map.

◆ upcaseKeywords()

ossimKeywordlist & ossimKeywordlist::upcaseKeywords ( )

Definition at line 1410 of file ossimKeywordlist.cpp.

References m_map, ossimString::string(), and ossimString::upcase().

1411 {
1412  KeywordMap tempMap;
1413  KeywordMap::iterator iter = m_map.begin();
1414 
1415  while(iter != m_map.end())
1416  {
1417  ossimString k(iter->first);
1418  tempMap.insert(std::make_pair(k.upcase().string(), iter->second));
1419  ++iter;
1420  }
1421  m_map = tempMap;
1422 
1423  return *this;
1424 }
std::map< std::string, std::string > KeywordMap

◆ write()

bool ossimKeywordlist::write ( const char *  file,
const char *  comment = 0 
) const
virtual

Methods to dump the ossimKeywordlist to a file on disk.

Parameters
fileName of output file.
commentOptional string that will be written to line 1 as a C++-style comment. A "//" is prepended to the input string.
Returns
true on success, false on error.

Definition at line 479 of file ossimKeywordlist.cpp.

References ossimString::c_str(), ossimNotify(), ossimNotifyLevel_WARN, and writeToStream().

Referenced by ossimHdf5Tool::execute(), ossimSubImageTool::execute(), ossimIgenGenerator::generateGeoTiledSpecList(), ossimIgenGenerator::generateNoTiledSpecList(), ossimIgenGenerator::generatePixelTiledSpecList(), ossimChipProcTool::processRemainingArgs(), ossimAutRegUtil::saveAdjustment(), ossimImageHandler::saveImageGeometry(), ossimHistogramSource::saveState(), ossimOverviewSequencer::writeHistogram(), and ossimImageHandler::writeValidImageVertices().

481 {
482  std::ofstream filename(file);
483  if (!filename)
484  {
486  <<"ossimKeywordlist::write, Error opening file: "
487  << file << std::endl;
488  return false;
489  }
490 
491  if ( comment != 0 )
492  {
493  ossimString commentStr("// ");
494  commentStr += comment;
495 
496  // Write out the input comment to the first line.
497  filename << commentStr.c_str() << std::endl;
498  }
499 
500  writeToStream(filename);
501 
502  filename.close();
503 
504  return true;
505 }
virtual void writeToStream(std::ostream &out) const
std::basic_ofstream< char > ofstream
Class for char output file streams.
Definition: ossimIosFwd.h:47
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)

◆ writeToStream()

void ossimKeywordlist::writeToStream ( std::ostream &  out) const
virtual

Definition at line 548 of file ossimKeywordlist.cpp.

References ossimString::c_str(), delimiter_str(), ossimString::empty(), ossimRegExp::find(), and m_map.

Referenced by print(), ossimMapViewController::saveState(), toString(), ossimFontProperty::valueToString(), and write().

549 {
550  KeywordMap::const_iterator i;
551  ossimString value;
552  ossimRegExp reg("\n|\r| $|^ ");
553  for(i = m_map.begin(); i != m_map.end(); ++i)
554  {
555  value = (*i).second;
556  if(!value.empty())
557  {
558  if(reg.find(value))
559  {
560  value = "\"\"\"" + value + "\"\"\"";
561  }
562  }
563  // value = value.substitute('\n', "\\\n", true);
564  out << (*i).first << delimiter_str().c_str() << " "
565  << value << std::endl;
566  }
567 }
const char * c_str() const
Returns a pointer to a null-terminated array of characters representing the string&#39;s contents...
Definition: ossimString.h:396
bool empty() const
Definition: ossimString.h:411
ossimString delimiter_str() const

Friends And Related Function Documentation

◆ operator<<

OSSIMDLLEXPORT friend std::ostream& operator<< ( std::ostream &  os,
const ossimKeywordlist kwl 
)
friend

Definition at line 1359 of file ossimKeywordlist.cpp.

1361 {
1362  kwl.print(os);
1363 
1364  return os;
1365 }
virtual std::ostream & print(std::ostream &os) const
Outputs theErrorStatus as an ossimErrorCode and an ossimString.

Member Data Documentation

◆ m_currentlyParsing

ossimFilename ossimKeywordlist::m_currentlyParsing
protected

Definition at line 603 of file ossimKeywordlist.h.

Referenced by parseFile(), and readPreprocDirective().

◆ m_delimiter

char ossimKeywordlist::m_delimiter
protected

Definition at line 595 of file ossimKeywordlist.h.

Referenced by change_delimiter(), delimiter_str(), and readKey().

◆ m_expandEnvVars

bool ossimKeywordlist::m_expandEnvVars
protected

◆ m_map

KeywordMap ossimKeywordlist::m_map
protected

◆ m_preserveKeyValues

bool ossimKeywordlist::m_preserveKeyValues
protected

Definition at line 598 of file ossimKeywordlist.h.

◆ NULL_KW

const std::string ossimKeywordlist::NULL_KW = ""
static

Definition at line 74 of file ossimKeywordlist.h.

Referenced by findKey().


The documentation for this class was generated from the following files: