MapLink Pro 11.1.1.0.
Envitia MapLink Pro: The Ultimate Mapping Application Toolkit
Loading...
Searching...
No Matches
TSLMDMandatoryFieldsHelper Class Reference

Detailed Description

This helper class is used to create a TSLMDMetadata object and populate the mandatory fields required to form a valid metadata object.

Public Types

enum  TSLTemporalExtentPrimitiveCreationTypeEnum {
  TSLTemporalExtentPrimitiveCreationTypeTSLTMPrimitive = 0 , TSLTemporalExtentPrimitiveCreationTypeTSLTMGeometricPrimitive = 1 , TSLTemporalExtentPrimitiveCreationTypeTSLTMInstant = 2 , TSLTemporalExtentPrimitiveCreationTypeTSLTMPeriod = 3 ,
  TSLTemporalExtentPrimitiveCreationTypeTSLTMTopologicalPrimitive = 4 , TSLTemporalExtentPrimitiveCreationTypeTSLTMEdge = 5 , TSLTemporalExtentPrimitiveCreationTypeTSLTMNode = 6
}
 

Static Public Member Functions

static bool createMetadata (const char *fileIdentifier=0, const char *language=0, TSLMDCharacterSetCode characterSet=TSLMDCharacterSetCodeNULL, const char *metadataStandardName=0, const char *metadataStandardVersion=0)
 
static bool firstContact (TSLCIRoleCode role, const char *organisationName=0, const char *individualName=0, const char *positionName=0)
 
static bool dateStamp (const char *century, const char *year=0, const char *month=0, const char *day=0)
 
static bool dateStamp (const char *century, const char *year, const char *month, const char *day, const char *hour, const char *minute=0, const char *second=0)
 
static bool firstDataQualityInfo (TSLMDScopeCode scope_level, const char *lineage_statement=0, const char *lineage_processStep_description=0)
 
static bool distributionInfo_DistributionFormat (const char *name, const char *version)
 
static bool distributionInfo_FirstTransferOptions (const char *firstOnline_Linkage_Url)
 
static bool firstIdentificationInfo (const char *citation_Title, const char *abstract, TSLMDSpatialRepresentationTypeCode firstSpatialRepresentationType, const char *firstLanguage, TSLMDCharacterSetCode firstCharacterSet, TSLMDTopicCategoryCode firstTopicCategory)
 
static bool firstIdentificationInfo_Citation_FirstDate (TSLCIDateTypeCode dateType, const char *date_Century, const char *date_Year=0, const char *date_Month=0, const char *date_Day=0)
 
static bool firstIdentificationInfo_Citation_FirstDate (TSLCIDateTypeCode dateType, const char *date_Century, const char *date_Year, const char *date_Month, const char *date_Day, const char *date_Hour, const char *date_Minute=0, const char *date_Second=0)
 
static bool firstIdentificationInfo_FirstPointOfContact (TSLCIRoleCode role, const char *organisationName=0, const char *individualName=0, const char *positionName=0)
 
static bool firstIdentificationInfo_FirstSpatialResolution (int equivalentScale_Denominator, double distance_Value, const char *distance_Uom_UomName, const char *distance_Uom_UomSymbol, TSLMeasureType distance_Uom_MeasureType)
 
static bool firstIdentificationInfo_FirstExtent_FirstGeographicElement (double westBoundingLongitude_Value, double eastBoundingLongitude_Value, double southBoundingLatitude_Value, double northBoundingLatitude_Value, const char *uomName, const char *uomSymbol, TSLMeasureType measureType)
 
static bool firstIdentificationInfo_FirstExtent_FirstGeographicElement (const char *geographicIdentifier_Code, bool createGeographicIdentifierAsTSLMDIdentifier=true)
 
static bool firstIdentificationInfo_FirstExtent_FirstTemporalElement (TSLTemporalExtentPrimitiveCreationTypeEnum primitive_CreationType)
 
static bool firstIdentificationInfo_FirstExtent_FirstVerticalElement (double minimumValue, double maximumValue, const char *unitOfMeasure_UomName, const char *unitOfMeasure_UomSymbol, TSLMeasureType unitOfMeasure_MeasureType, const char *verticalDatum_datumID_code)
 
static bool firstReferenceSystemInfo (bool createAsTSLMDCRS=false)
 
static TSLMDMetadatagetMetadata ()
 

Member Enumeration Documentation

◆ TSLTemporalExtentPrimitiveCreationTypeEnum

Enumerator
TSLTemporalExtentPrimitiveCreationTypeTSLTMPrimitive 
TSLTemporalExtentPrimitiveCreationTypeTSLTMGeometricPrimitive 
TSLTemporalExtentPrimitiveCreationTypeTSLTMInstant 
TSLTemporalExtentPrimitiveCreationTypeTSLTMPeriod 
TSLTemporalExtentPrimitiveCreationTypeTSLTMTopologicalPrimitive 
TSLTemporalExtentPrimitiveCreationTypeTSLTMEdge 
TSLTemporalExtentPrimitiveCreationTypeTSLTMNode 

Member Function Documentation

◆ createMetadata()

static bool TSLMDMandatoryFieldsHelper::createMetadata ( const char * fileIdentifier = 0,
const char * language = 0,
TSLMDCharacterSetCode characterSet = TSLMDCharacterSetCodeNULL,
const char * metadataStandardName = 0,
const char * metadataStandardVersion = 0 )
static

This method creates a TSLMDMetadata object which the helper class can populate. This method must be called before any other method and is mandatory.

Although each of the parameters of this method refer to member attributes that are optional (they are held by reference by TSLMDMetadata) they are recommended for valid metadata by the ISO19115 standard.

Parameters:

fileIdentifier : Unique identifier for this metadata file language : Language used for documenting metadata characterSet : Full name of the character coding standard used for the metadata set metadataStandardName : Name of the metadata standard (including profile name) used metadataStandardVersion : Version (profile) of the metadata standard used

◆ dateStamp() [1/2]

static bool TSLMDMandatoryFieldsHelper::dateStamp ( const char * century,
const char * year,
const char * month,
const char * day,
const char * hour,
const char * minute = 0,
const char * second = 0 )
static

This method sets the 'dateStamp' mandatory attribute on the TSLMDMetadata object held by this helper. The 'century' and 'hour' parameters are the only mandatory attributes required, the rest may be 0. This method will create the derived type TSLDateTime, as opposed to the other dateStamp method which will create the base TSLDate object. Calling one or the other of these methods is mandatory.

Parameters:

century : year : month : day : hour : minute : second :

◆ dateStamp() [2/2]

static bool TSLMDMandatoryFieldsHelper::dateStamp ( const char * century,
const char * year = 0,
const char * month = 0,
const char * day = 0 )
static

This method sets the 'dateStamp' mandatory attribute on the TSLMDMetadata object held by this helper. The 'century' parameter is the only mandatory attribute required. This method will create the base type TSLDate, as opposed to the other dateStamp method which will create the derived TSLDate Time object. Calling one or the other of these methods is mandatory.

Parameters:

century : year : month : day :

◆ distributionInfo_DistributionFormat()

static bool TSLMDMandatoryFieldsHelper::distributionInfo_DistributionFormat ( const char * name,
const char * version )
static

This method sets the recommended attributes of the TSLMDFormat object contained by a the TSLMDDistribution object under the rolename distribution Format, which is in turn owned by the name distributionInfo by the base TSLMDMetadata object. Calling this method is not mandatory.

Parameters :

name : Name of the data transfer format(s) version : Version of the format (date, number, etc.)

◆ distributionInfo_FirstTransferOptions()

static bool TSLMDMandatoryFieldsHelper::distributionInfo_FirstTransferOptions ( const char * firstOnline_Linkage_Url)
static

This method sets the recommended attribute of the TSLCIOnlineResource object contained by TSLMDDigitalTransferOptions object by the attribute 'onLine', which is owned by the TSLMDDistribution object under the rolename transfer Options, which is in turn owned by the name distributionInfo by the base TSLMDMetadata object. Calling this method is not mandatory.

Parameters :

firstOnline_Linkage_Url : URL held by the TSLURL object owned by the first TSLCIOnlineReource of the TSLMDDigitalTransferOptions. Location (address) for on-line access using a Uniform Resource Locator address or similar addressing scheme such as http://www.statkart.no/isotc211

◆ firstContact()

static bool TSLMDMandatoryFieldsHelper::firstContact ( TSLCIRoleCode role,
const char * organisationName = 0,
const char * individualName = 0,
const char * positionName = 0 )
static

This method sets the first 'contact' mandatory attribute of type TSLCIResponsibleParty on the TSLMDMetadata object held by this helper. For a valid TSLMDMetadata object, at least one 'contact' must be set. The role parameter defines the role of this contact, a mandatory attribute of TSLCIResponisbleParty. For valid metadata, at least one of the remaining parameters must be passed, an organisationName, an individualName or a positionName. Calling this method is mandatory.

Parameters:

role : function performed by the responsible party organisationName : Name of the responsible organization individualName : Name of the responsible person - surname, given name, title separated by a delimiter positionName : role or position of the responsible person

◆ firstDataQualityInfo()

static bool TSLMDMandatoryFieldsHelper::firstDataQualityInfo ( TSLMDScopeCode scope_level,
const char * lineage_statement = 0,
const char * lineage_processStep_description = 0 )
static

This method will add to the held TSLMDMetadata object, a TSLDQDataQuality object under the relation 'dataQualityInfo'. It will also add a TSLLILineage object to this TSLDQDataQuality object, which is a recommended field according to the ISO19115 standard if and only if scope_level = TSLMDScope Codedataset. The scope_level parameter of this method is to set the 'level' attribute of the TSLDQScope object held by this TSLDQDataQuality instance. Calling this method is not mandatory.

If scope_level = TSLMDScopeCodedataset, then there is a further condition for valid metadata; Either the source, processStep or statement roles of the added TSLLILineage must be set. To set the statement, pass a text string for the lineage_statement, to set the processStep, pass a text string for the lineage_processStep_description and to set a source, pass both parameters as 0 (NULL). Providing either of the two optional parameters will have no effect if the scope_level != TSLMDScopeCodedataset.

Parameters:

scope_level : Hierarchical level of the data specified by the scope. lineage_statement : general explanation of the data producer's knowledge about the lineage of a dataset lineage_processStep_description : description of the event, including related parameters or tolerances.

◆ firstIdentificationInfo()

static bool TSLMDMandatoryFieldsHelper::firstIdentificationInfo ( const char * citation_Title,
const char * abstract,
TSLMDSpatialRepresentationTypeCode firstSpatialRepresentationType,
const char * firstLanguage,
TSLMDCharacterSetCode firstCharacterSet,
TSLMDTopicCategoryCode firstTopicCategory )
static

This method sets the first 'identifcationInfo' mandatory role on the TSLMDMetadata object held by this helper. For a valid TSLMDMetadata object, at least one 'identificationInfo' must be set. NOTE Although TSLMDService Identification would appear to be valid as the first 'identificationInfo', the ISO19115 standard states that it should be a TSLMDDataIdentification.

Parameters :

citation_Title : Sets the 'title' attribute of the TSLCICitation held as a mandatory role of the TSLMDMetadata object. Name by which the cited resource is known abstract : Sets the 'abstract' mandatory attribute of the TSLCICitation object owned by the first TSLMDDataIdentification object as role 'citation' (through its parent TSLMDIdentification), which is in turn owned by the TSLMDMetadata object as the first 'identificationInfo'. Brief narrative summary of the content of the resource(s) firstSpatialRepresentationType : Sets the first entry in the mandatory attribute 'spatialRepresentationType' of the TSLMDDataIdentification object created and set on the TSLMDMetadata object. For valid metadata, at least of each must be set. Method used to spatially represent geographic information. firstLanguage : Sets the first entry in the mandatory attribute 'language' of the TSLMDDataIdentification object created and set on the TSLMDMetadata object. For valid metadata, at least of each must be set. Language(s) used within the dataset. firstCharacterSet : Sets the the first entry in the 'characterSet' attribute held on the TSLMDDataIdentification object. Although this may not appear to be a mandatory field, the ISO19115 standard specifies this as necessary for valid metadata. Full name of the character coding standard used for the dataset. firstTopicCategory : Sets the first entry in the mandatory attribute 'topic Category' of the TSLMDDataIdentification object created and set on the TSLMDMetadata object. For valid metadata, at least of each must be set. Main theme(s) of the dataset.

◆ firstIdentificationInfo_Citation_FirstDate() [1/2]

static bool TSLMDMandatoryFieldsHelper::firstIdentificationInfo_Citation_FirstDate ( TSLCIDateTypeCode dateType,
const char * date_Century,
const char * date_Year,
const char * date_Month,
const char * date_Day,
const char * date_Hour,
const char * date_Minute = 0,
const char * date_Second = 0 )
static

This method sets the actual 'date' attribute held on the first TSLCIDate object, which is in turn owned by the TSLCICitation object as attribute 'date', owned by the first TSLMDDataIdentification object as role 'citation' (through its parent TSLMDIdentification), owned by TSLMDMetadata as the first 'identificationInfo'.The 'century' and 'hour' parameters are the only mandatory attributes required, the rest may be 0. This method will create the derived type TSLDateTime, as opposed to the other firstIdentificationInfo _Citation_FirstDate method which will create the base TSLDate object. Calling one or the other of these methods is mandatory.

Parameters:

century : year : month : day : hour : minute : second :

◆ firstIdentificationInfo_Citation_FirstDate() [2/2]

static bool TSLMDMandatoryFieldsHelper::firstIdentificationInfo_Citation_FirstDate ( TSLCIDateTypeCode dateType,
const char * date_Century,
const char * date_Year = 0,
const char * date_Month = 0,
const char * date_Day = 0 )
static

This method sets the actual 'date' attribute held on the first TSLCIDate object, which is in turn owned by the TSLCICitation object as attribute 'date', owned by the first TSLMDDataIdentification object as role 'citation' (through its parent TSLMDIdentification), owned by TSLMDMetadata as the first 'identificationInfo'.The 'century' parameter is the only mandatory attribute required. This method will create the base type TSLDate, as opposed to the other firstIdentificationInfo_Citation_FirstDate method which will create the derived TSLDateTime object. Calling one or the other of these methods is mandatory.

Parameters:

century : year : month : day :

◆ firstIdentificationInfo_FirstExtent_FirstGeographicElement() [1/2]

static bool TSLMDMandatoryFieldsHelper::firstIdentificationInfo_FirstExtent_FirstGeographicElement ( const char * geographicIdentifier_Code,
bool createGeographicIdentifierAsTSLMDIdentifier = true )
static

This method sets the first geographicExtent owned by a TSLEXExtent as a role, which is held as attribute 'extent' on TSLMDDataIdentification, which in turn is owned by TSLMDMetadata as the first entry in the role 'identificationInfo'. The geographicExtent is a collection (TSLMDCollection) of the abstract type 'TSEXGeographicExtent'. Although this is a 0..* collection, for valid metadata the first entry must be set according to the ISO19115 standard. Similarly this standard specifies that this first entry must be either of derived type TSLEXGeographicDescription or TSLEXBounding Box and not of type TSLEXBoundingPolygon for valid metadata. This method sets the first entry as type TSLEXGeographicDescription.

A TSLEXGeographicDescription has an attribute 'geographicIdentifier' which can hold either an object of type TSLMDIdentifier or TSLRSIdentifier. In either case the only mandatory attribute is 'code'.

Parameters :

geographicIdentifier_Code : Alphanumeric value identifying an instance in the namespace createGeographicIdentifierAsTSLMDIdentifier : If true then the geographic Identifier is created as a TSLMDIdentifier, if false it is created as a TSLRSIdentifier.

◆ firstIdentificationInfo_FirstExtent_FirstGeographicElement() [2/2]

static bool TSLMDMandatoryFieldsHelper::firstIdentificationInfo_FirstExtent_FirstGeographicElement ( double westBoundingLongitude_Value,
double eastBoundingLongitude_Value,
double southBoundingLatitude_Value,
double northBoundingLatitude_Value,
const char * uomName,
const char * uomSymbol,
TSLMeasureType measureType )
static

This method sets the first geographicExtent owned by a TSLEXExtent as a role, which is held as attribute 'extent' on TSLMDDataIdentification, which in turn is owned by TSLMDMetadata as the first entry in the role 'identificationInfo'. The geographicExtent is a collection (TSLMDCollection) of the abstract type 'TSEXGeographicExtent'. Although this is a 0..* collection, for valid metadata the first entry must be set according to the ISO19115 standard. Similarly this standard specifies that this first entry must be either of derived type TSLEXGeographicDescription or TSLEXBounding Box and not of type TSLEXBoundingPolygon for valid metadata. This method sets the first entry as type TSLEXGeographicBoundingBox.

The parameters of this method set the values held as TSLAngles in TSLEXGeographicBoundingBox.

Parameters :

westBoundingLongitude_Value : eastBoundingLongitude_Value : northBoundingLatitude_Value : southBoundingLatitude_Value : uomName : Name of the unit of measure for each of the angle values uomSymbol : Symbol of the unit of measure for each of the angle values measureType : Type of measure that the angle values exist as.

◆ firstIdentificationInfo_FirstExtent_FirstTemporalElement()

static bool TSLMDMandatoryFieldsHelper::firstIdentificationInfo_FirstExtent_FirstTemporalElement ( TSLTemporalExtentPrimitiveCreationTypeEnum primitive_CreationType)
static

This method sets the first temporalElement owned by a TSLEXExtent as a role, which is held as attribute 'extent' on TSLMDDataIdentification, which in turn is owned by TSLMDMetadata as the first entry in the role 'identification Info'. The temporalExtent is a collection (TSLMDCollection) of the type 'TSEXTemporalExtent'. Although this is a 0..* collection, for valid metadata the first entry must be set according to the ISO19115 standard OR the first entry in the verticalExtent role must be set. THEREFORE either 'setMetadata_ FirstIdentificationInfo_Extent_FirstVerticalElement' OR 'setMetadata_First IdentificationInfo_Extent_FirstTemporalElement' should be called, but calling both will still be valid.

A TSLEXTemporalExtent object contains an attribute of type TSLTMPrimitive, which is derived from by many classes. None of the derived classes or TSLTMPrimitive itself contain any mandatory attributes or roles. This call will create either a TSLTMPrimitive or any of its derivatives depending on the 'primitive_CreationType' parameter, the enumeration specifies which class to create.

Parameters :

primitive_CreationType : Enumeration defined in this helper class to specify which type of object to create for the 'extent' attribute of TSLEXTemporal Extent. Defined as the date and time for the content of the dataset

◆ firstIdentificationInfo_FirstExtent_FirstVerticalElement()

static bool TSLMDMandatoryFieldsHelper::firstIdentificationInfo_FirstExtent_FirstVerticalElement ( double minimumValue,
double maximumValue,
const char * unitOfMeasure_UomName,
const char * unitOfMeasure_UomSymbol,
TSLMeasureType unitOfMeasure_MeasureType,
const char * verticalDatum_datumID_code )
static

This method sets the first verticalElement owned by a TSLEXExtent as a role, which is held as attribute 'extent' on TSLMDDataIdentification, which in turn is owned by TSLMDMetadata as the first entry in the role 'identification Info'. The verticalElement is a collection (TSLMDCollection) of the type 'TSEXVerticalExtent'. Although this is a 0..* collection, for valid metadata the first entry must be set according to the ISO19115 standard OR the first entry in the temporalElement role must be set. THEREFORE either 'setMetadata_ FirstIdentificationInfo_Extent_FirstVerticalElement' OR 'setMetadata_First IdentificationInfo_Extent_FirstTemporalElement' should be called, but calling both will still be valid.

Parameters :

minimumValue : Set the maxiumumValue attribute on the TSLEXVerticalExtent object. Lowest vertical extent contained in the dataset maximumValue : Set the maxiumumValue attribute on the TSLEXVerticalExtent object. Highest vertical extent contained in the dataset unitOfMeasure_uomName : Name of the vertical units used for vertical extent information Eg: metres, feet, millimetres, hectopascals unitOfMeasure_uomSymbol : Symbol of the vertical units used for vertical extent information Eg: metres, feet, millimetres, hectopascals unitOfMeasure_MeasureType : MeasureType of the vertical units used for vertical extent information. verticalDatum_datumID_code : 'Alphanumeric value identifying an instance in the namespace' of the TSLRSIdentifer held as 'datumID' which is held on the TSLSCVerticalDatum described as 'provides information about the origin from which the maximum and minimum elevation values are measured'

◆ firstIdentificationInfo_FirstPointOfContact()

static bool TSLMDMandatoryFieldsHelper::firstIdentificationInfo_FirstPointOfContact ( TSLCIRoleCode role,
const char * organisationName = 0,
const char * individualName = 0,
const char * positionName = 0 )
static

This method sets the first 'pointOfContact' mandatory attribute on the first TSLDataIdentification object held as 'identificationInfo' on the TSLMDMetadata object held by this helper. For a valid TSLMDMetadata object, at least one 'pointOfContact' must be set. The role parameter defines the role of this contact, a mandatory attribute of TSLCIResponisbleParty. For valid metadata, at least one of the remaining parameters must also be passed, an organisationName, an individualName or a positionName.

Parameters :

role : Function performed by the responsible party organisationName : Name of the responsible organization individualName : Name of the responsible person - surname, given name, title separated by a delimiter positionName : role or position of the responsible person

◆ firstIdentificationInfo_FirstSpatialResolution()

static bool TSLMDMandatoryFieldsHelper::firstIdentificationInfo_FirstSpatialResolution ( int equivalentScale_Denominator,
double distance_Value,
const char * distance_Uom_UomName,
const char * distance_Uom_UomSymbol,
TSLMeasureType distance_Uom_MeasureType )
static

This method sets the first 'spatialResolution' mandatory attribute on the first TSLDataIdentification object held as 'identificationInfo' on the TSLMDMetadata object held by this helper. For a valid TSLMDMetadata object, it is not necessary to provide a spatialResolution, but the ISO19115 standard recommends it. Calling this method is Optional, not mandatory.

Parameters :

equivalentScale_Denominator : Sets the denominator attribute held by the TSLMDRepresentativeFractionon the TSLMDResolution object. The number below the line in a vulgar fraction distance_Value : Ground sample distance. Sets the value for TSLDistance measurement. distance_Uom_UomName : Name of the unit of measure of the distance measurement distance_Uom_UomSymbol : Symbol of the unit of measure of the distance measurement distance_Uom_MeasureType : Measure type of the distance measurement

◆ firstReferenceSystemInfo()

static bool TSLMDMandatoryFieldsHelper::firstReferenceSystemInfo ( bool createAsTSLMDCRS = false)
static

This optionally called method adds a first entry into the 'referenceSystem Info' collection on the TSLMDMetadata object. This entry can either be of the type TSLMDReferenceSystem or TSLMDCRS and the sole parameter specifies which. This method is optional and not mandatory.

Parameters : createAsTSLMDCRS : If true, the entry is create as a TSLMDCRS, if false, it is created as a TSLMDReferenceSystem.

◆ getMetadata()

static TSLMDMetadata * TSLMDMandatoryFieldsHelper::getMetadata ( )
static

Returns the TSLMDMetadata object created by calling 'createMetadata' and populated using the other helper functions. The helper relinquishes ownership of the object when this method is called. Returns 0 on error.