Classification Class Reference

Classification information for data elements and views. More...

#include <Classification.h>

Inheritance diagram for Classification:

Inheritance graph

List of all members.

Public Member Functions

virtual bool setClassification (const std::string &classificationText)=0
virtual void setClassification (const Classification *pClassification)=0
virtual const std::string & getLevel () const =0
virtual void setLevel (const std::string &myLevel)=0
virtual bool hasGreaterLevel (const Classification *pClassification) const =0
virtual const std::string & getSystem () const =0
virtual void setSystem (const std::string &mySystem)=0
virtual const std::string & getCodewords () const =0
virtual void setCodewords (const std::string &myCodewords)=0
virtual const std::string & getFileControl () const =0
virtual void setFileControl (const std::string &myFileControl)=0
virtual const std::string & getFileReleasing () const =0
virtual void setFileReleasing (const std::string &myFileReleasing)=0
virtual const std::string & getClassificationReason () const =0
virtual void setClassificationReason (const std::string &myClassificationReason)=0
virtual const std::string & getDeclassificationType () const =0
virtual void setDeclassificationType (const std::string &myDeclassificationType)=0
virtual const DateTimegetDeclassificationDate () const =0
virtual void setDeclassificationDate (const DateTime *myDeclassificationDate)=0
virtual const std::string & getDeclassificationExemption () const =0
virtual void setDeclassificationExemption (const std::string &myDeclassificationExemption)=0
virtual const std::string & getFileDowngrade () const =0
virtual void setFileDowngrade (const std::string &myFileDowngrade)=0
virtual const std::string & getCountryCode () const =0
virtual void setCountryCode (const std::string &myCountryCode)=0
virtual const DateTimegetDowngradeDate () const =0
virtual void setDowngradeDate (const DateTime *myDowngradeDate)=0
virtual const std::string & getDescription () const =0
virtual void setDescription (const std::string &myDescription)=0
virtual const std::string & getAuthority () const =0
virtual void setAuthority (const std::string &myAuthority)=0
virtual const std::string & getAuthorityType () const =0
virtual void setAuthorityType (const std::string &myAuthorityType)=0
virtual const DateTimegetSecuritySourceDate () const =0
virtual void setSecuritySourceDate (const DateTime *mySecuritySourceDate)=0
virtual const std::string & getSecurityControlNumber () const =0
virtual void setSecurityControlNumber (const std::string &mySecurityControlNumber)=0
virtual const std::string & getFileCopyNumber () const =0
virtual void setFileCopyNumber (const std::string &myFileCopyNumber)=0
virtual const std::string & getFileNumberOfCopies () const =0
virtual void setFileNumberOfCopies (const std::string &myFileNumberOfCopies)=0
virtual void getClassificationText (std::string &classificationText) const =0
virtual bool compare (const Classification *pClassification) const =0
virtual bool isValid (std::string &errorMessage) const =0

Protected Member Functions

virtual ~Classification ()


Detailed Description

Classification information for data elements and views.

The Classification serves as an attribute for other data objects. It captures the security classification data needed to handle and mark the other data objects. There currently is no straight-forward mechanism to maintain the classification of the classification itself.

Most of the interface is based upon the NITF 2.1 classification attributes collection, with some modifications for flexibility or complexity reduction. Additional attributes can be added using the DynamicObject inherited interfaces.

This subclass of Subject will notify upon the following conditions:

See also:
DynamicObject, DataElement

Definition at line 43 of file Classification.h.


Constructor & Destructor Documentation

virtual Classification::~Classification (  )  [protected, virtual]

This should be destroyed by calling ObjectFactory::destroyObject.

Definition at line 589 of file Classification.h.


Member Function Documentation

virtual bool Classification::setClassification ( const std::string &  classificationText  )  [pure virtual]

Sets all classification fields and attributes to those contained in a given text string.

Any additional attributes contained in this classification object will be lost.

Parameters:
classificationText The classification text from which to set this object's values. The string format should be identical to the format generated by getClassificationText().
Returns:
Returns true if the classification was successfully set from the given string. Returns false if any of the following conditions are met:
  • classificationText is empty.
  • One or more field entries specified in classificationText is not contained in the security markings files in the SupportFiles directory.
  • The "REL TO" file releasing is specified without valid country codes.
If false is returned, the classification fields and attributes of this classification object are not changed.
Subject Notifications:
This method notifies Subject::signalModified() if successful.
See also:
setClassification(const Classification*)

virtual void Classification::setClassification ( const Classification pClassification  )  [pure virtual]

Sets all classification fields and attributes to that of another classification object.

Parameters:
pClassification The classification object from which to set this object's values.
Subject Notifications:
This method will notify Subject::signalModified.
See also:
setClassification(const std::string&)

virtual const std::string& Classification::getLevel (  )  const [pure virtual]

Returns the classification level.

Returns:
A string reference with the data's classification level. Valid values are T (Top Secret), S (Secret), R (Restricted), C (Confidential), and U (Unclassified).
See also:
hasGreaterLevel()

virtual void Classification::setLevel ( const std::string &  myLevel  )  [pure virtual]

Sets the classification level for the data represented by this object.

Parameters:
myLevel This shall contain a valid value representing the classification level of the entire data. Valid values are T (Top Secret), S (Secret), R (Restricted), C (Confidential), and U (Unclassified).
Subject Notifications:
This method will notify Subject::signalModified.

virtual bool Classification::hasGreaterLevel ( const Classification pClassification  )  const [pure virtual]

Compares the level of another classification object with this object.

The order of classification levels is as follows, from greatest to least: T (Top Secret), S (Secret), R (Restricted), C (Confidential), and U (Unclassified).

Parameters:
pClassification The classification object for which to compare against this object.
Returns:
True is returned if this object has a level that is greater that the given object. False is returned if this object has a classification level less than or equal to the given object.

virtual const std::string& Classification::getSystem (  )  const [pure virtual]

Access the security classification.

This contains valid values indicating the national or multinational security system used to classify the file.

Returns:
A string indicating the national or multinational system used to classify the data.

virtual void Classification::setSystem ( const std::string &  mySystem  )  [pure virtual]

Set the security classification, indicating the national or multinational security system used to classify the file.

Parameters:
mySystem This contains valid values indicating the national or multinational security system used to classify the file.
Subject Notifications:
This method will notify Subject::signalModified.

virtual const std::string& Classification::getCodewords (  )  const [pure virtual]

Access the security compartments associated with the data.

Returns:
The security compartments associated with the data.

virtual void Classification::setCodewords ( const std::string &  myCodewords  )  [pure virtual]

Set the security compartments associated with the data.

Parameters:
myCodewords The security codewords associated with the data. Values include one or more of the tri/digraphs found in DIAM 65-19. Multiple entries shall be separated by a single space.
Subject Notifications:
This method will notify Subject::signalModified.

virtual const std::string& Classification::getFileControl (  )  const [pure virtual]

Return the additional security control and/or handling instructions.

Returns:
The security control and/or handling instructions associated with the data.

virtual void Classification::setFileControl ( const std::string &  myFileControl  )  [pure virtual]

Set the additional security control and/or handling instructions.

Parameters:
myFileControl The security control and/or handling instructions associated with the data.
Subject Notifications:
This method will notify Subject::signalModified.

virtual const std::string& Classification::getFileReleasing (  )  const [pure virtual]

Return a string of country and/or multilateral entity codes to which countries and/or multilateral entities the data is authorized for release.

Valid items in the list are one or more country codes found in FIPS 10-4 and/or codes identifying multilateral entries as found in DIAM 65-19.

Returns:
A string documenting the countries and/or groups to which the data may be released.

virtual void Classification::setFileReleasing ( const std::string &  myFileReleasing  )  [pure virtual]

Set the string of valid country and/or multilateral entity codes to which countries and/or multilateral entities the data is authorized for release.

This method should be called after calling the setCountryCode() method.

Parameters:
myFileReleasing A string documenting the countries and/or groups to which the data may be released. Valid items in the list are one or more country codes found in FIPS 10-4 and/or codes identifying multilateral entries as found in DIAM 65-19. If "NOFORN" is specified, then text set in setCountryCode() is removed from the classification. If "NOFORN" and "REL\\ TO" are specified, then text set in setCountryCode() and "REL\\ TO" are removed from the classification.
Subject Notifications:
This method will notify Subject::signalModified.
See also:
setCountryCode()

virtual const std::string& Classification::getClassificationReason (  )  const [pure virtual]

Return a string indicating the reason for classification.

Valid values are "A" through "G", as defined by E.O. 12598, Section 1.5 (a) to (g).

Returns:
A string indicating the reason for classification.

virtual void Classification::setClassificationReason ( const std::string &  myClassificationReason  )  [pure virtual]

Set a string indicating the reason for classification.

Valid values are "A" through "G", as defined by E.O. 12598, Section 1.5 (a) to (g).

Subject Notifications:
This method will notify Subject::signalModified.

virtual const std::string& Classification::getDeclassificationType (  )  const [pure virtual]

Return a string indicating how this file should be declassified or downgraded.

DD (Declassify on a specific date) DE (Declassify upon occurrence of an event) GD (Downgrade on a specific date) GE (Downgrade upon occurrence of an event) O (OADR) X (Exempt)

Returns:
A string indicating how this file should be declassified or downgraded.

virtual void Classification::setDeclassificationType ( const std::string &  myDeclassificationType  )  [pure virtual]

Set a string indicating how this file should be declassified or downgraded.

Parameters:
myDeclassificationType A string indicating how this file should be declassified or downgraded. DD (Declassify on a specific date) DE (Declassify upon occurrence of an event) GD (Downgrade on a specific date) GE (Downgrade upon occurrence of an event) O (OADR) X (Exempt)
Subject Notifications:
This method will notify Subject::signalModified.

virtual const DateTime* Classification::getDeclassificationDate (  )  const [pure virtual]

Return the date on which the data is to be declassified.

This value is only meaningful if the declassification type is DD. Otherwise, NULL is returned.

Returns:
A pointer to a date object, giving the date (if any) when the data can be declassified.

virtual void Classification::setDeclassificationDate ( const DateTime myDeclassificationDate  )  [pure virtual]

Set the date on which the data is to be declassified.

Parameters:
myDeclassificationDate A pointer to a date object, giving the date (if any) when the data can be declassified. Passing NULL means the data is not to be automatically declassified on any given date.
Subject Notifications:
This method will notify Subject::signalModified.

virtual const std::string& Classification::getDeclassificationExemption (  )  const [pure virtual]

Returns the reason the data is exempt from automatic declassification.

Valid values are X1 through X8 and X251 through X259. X1 through X8 correspond to the declassification exemptions found in DOD 5200.1-R, paragraphs 4-202b(1) through (8) for material emempt from the 10-year rule. X251 through X259 correspond to the declassification exemptions found in DOD 5200.1-R, paragraphs 4-301a(1) through (9) for permanently valuable material exempt from the 25-year declassification system. If this field is all spaces, it implies that a file declassification exemption does not apply.

Returns:
The declassification exemption reason, if any.

virtual void Classification::setDeclassificationExemption ( const std::string &  myDeclassificationExemption  )  [pure virtual]

Set the declassification exemption reason.

Valid values are X1 through X8 and X251 through X259. X1 through X8 correspond to the declassification exemptions found in DOD 5200.1-R, paragraphs 4-202b(1) through (8) for material emempt from the 10-year rule. X251 through X259 correspond to the declassification exemptions found in DOD 5200.1-R, paragraphs 4-301a(1) through (9) for permanently valuable material exempt from the 25-year declassification system. If this field is all spaces, it implies that a file declassification exemption does not apply.

Parameters:
myDeclassificationExemption The declassification exemption reason.
Subject Notifications:
This method will notify Subject::signalModified.

virtual const std::string& Classification::getFileDowngrade (  )  const [pure virtual]

Returns the classification level to which the data is to be downgraded.

Returns:
A string with the classification level to which the data can be downgraded. Valid values are S (Secret), C (Confidential), and R (Restricted). If all spaces, then security downgrading does not apply.

virtual void Classification::setFileDowngrade ( const std::string &  myFileDowngrade  )  [pure virtual]

Set the classification level to which the data is to be downgraded.

Parameters:
myFileDowngrade A string with the classification level to which the data can be downgraded. Valid values are S (Secret), C (Confidential), and R (Restricted). If all spaces, then security downgrading does not apply.
Subject Notifications:
This method will notify Subject::signalModified.

virtual const std::string& Classification::getCountryCode (  )  const [pure virtual]

Return the country code.

Used in conjunction with "REL TO" under file releasing attributes.

Returns:
Returns the list of country codes that will be shown in the "REL TO" section of the classification text
See also:
getClassificationText()

virtual void Classification::setCountryCode ( const std::string &  myCountryCode  )  [pure virtual]

Set the country code.

Used in conjunction with "REL TO" under file releasing attributes. This method should be called prior to calling the setFileReleasing() method.

Parameters:
myCountryCode The country code. Each country code should be separated by a space. If the country code is not empty and does not contain "USA", then "USA" will be prepended to the country code.
Subject Notifications:
This method will notify Subject::signalModified.
See also:
setFileReleasing()

virtual const DateTime* Classification::getDowngradeDate (  )  const [pure virtual]

Return the date on which the data is to be downgraded, if applicable.

If not, then NULL is returned.

Returns:
Pointer to a DateTime interface object giving the downgrade date for the data.

virtual void Classification::setDowngradeDate ( const DateTime myDowngradeDate  )  [pure virtual]

Set the date on which the data is to be downgraded, if applicable.

If not, then NULL should be used.

Parameters:
myDowngradeDate Pointer to a DateTime interface object giving the downgrade date for the data.
Subject Notifications:
This method will notify Subject::signalModified.

virtual const std::string& Classification::getDescription (  )  const [pure virtual]

Return a description regarding any classification issues.

This includes additional information about identification of a declassification or downgrading event or identifying multiple classification sources and/or other special handling rules.

Returns:
A free-form string with any additional classification description.

virtual void Classification::setDescription ( const std::string &  myDescription  )  [pure virtual]

Set the free-form text description for the classification.

Parameters:
myDescription Description regarding any classification issues. This includes additional information about identification of a declassification or downgrading event or identifying multiple classification sources and/or other special handling rules.
Subject Notifications:
This method will notify Subject::signalModified.

virtual const std::string& Classification::getAuthority (  )  const [pure virtual]

Access the classification authority for the file dependent upon the value in the Authority Type.

Values are free-form text which should contain the following information: original classification authority name and position or personal identifier if the value in Authority Type is O; title of the document or security classification guide used to classify the file if the value in Authority Type is D; and Derive-Multiple if the file classification was derived from multiple sources. In the latter case, the file originator will maintain a record of the source used in accordance with existing security directives. One of the multiple sources may also be identified in File Classification Text if desired.

Returns:
A string identifying the classification authority.

virtual void Classification::setAuthority ( const std::string &  myAuthority  )  [pure virtual]

Set the classification authority for the file dependent upon the value in the Authority Type.

Values are free-form text which should contain the following information: original classification authority name and position or personal identifier if the value in Authority Type is O; title of the document or security classification guide used to classify the file if the value in Authority Type is D; and Derive-Multiple if the file classification was derived from multiple sources. In the latter case, the file originator will maintain a record of the source used in accordance with existing security directives. One of the multiple sources may also be identified in Description if desired.

Parameters:
myAuthority A string giving the authorities, if any.
Subject Notifications:
This method will notify Subject::signalModified.

virtual const std::string& Classification::getAuthorityType (  )  const [pure virtual]

Return the indication of the type of authority used to classify the file.

O (original classification authority), D (derivative from a single source), and M (derivative from multiple sources).

Returns:
A string containing the code for the authority type.

virtual void Classification::setAuthorityType ( const std::string &  myAuthorityType  )  [pure virtual]

Set the code for the type of authority used to classify the file.

Parameters:
myAuthorityType Indication of the type of authority used to classify the file. O(original classification authority), D(derivative from a single source), and M(derivative from multivple sources)
Subject Notifications:
This method will notify Subject::signalModified.

virtual const DateTime* Classification::getSecuritySourceDate (  )  const [pure virtual]

Return the date of the source used to derive the classification of the data.

Returns:
The date of the source used to derive the classification of the data. In the case of multiple sources, the date of the most recent source is used.

virtual void Classification::setSecuritySourceDate ( const DateTime mySecuritySourceDate  )  [pure virtual]

Set the date of the source used to derive the classification of the data.

In the case of multiple sources, the date of the most recent source should be used.

Parameters:
mySecuritySourceDate The date of the source used to derive the classification of the data.
Subject Notifications:
This method will notify Subject::signalModified.

virtual const std::string& Classification::getSecurityControlNumber (  )  const [pure virtual]

Return the security control number associated with the data.

Returns:
The security control number associated with the data. This value shall be accordance with the regulations governing the appropriate security channel(s).

virtual void Classification::setSecurityControlNumber ( const std::string &  mySecurityControlNumber  )  [pure virtual]

Set the security control number associated with the data.

Parameters:
mySecurityControlNumber The security control number associated with the data. This value shall be accordance with the regulations governing the appropriate security channel(s).
Subject Notifications:
This method will notify Subject::signalModified.

virtual const std::string& Classification::getFileCopyNumber (  )  const [pure virtual]

Return the file copy number associated with the data.

Returns:
The file copy number associated with the data. If zero, then the data is not subject to file copy tracking.

virtual void Classification::setFileCopyNumber ( const std::string &  myFileCopyNumber  )  [pure virtual]

Set the file copy number associated with the data.

Parameters:
myFileCopyNumber The file copy number associated with the data. If zero, then the data is not subject to file copy tracking.
Subject Notifications:
This method will notify Subject::signalModified.

virtual const std::string& Classification::getFileNumberOfCopies (  )  const [pure virtual]

Return the number of copies associated with the data.

Returns:
The number of copiesassociated with the data. If zero, then the data is not subject to file copy tracking.

virtual void Classification::setFileNumberOfCopies ( const std::string &  myFileNumberOfCopies  )  [pure virtual]

Return the number of copies associated with the data.

Parameters:
myFileNumberOfCopies The number of copies associated with the data. If zero, then the data is not subject to file copy tracking.
Subject Notifications:
This method will notify Subject::signalModified.

virtual void Classification::getClassificationText ( std::string &  classificationText  )  const [pure virtual]

Retrieves a text string containing the classification settings.

Parameters:
classificationText The string to contain the classification text. Any text existing in the string is erased. The string is formatted as follows:
  • The classification level is the first field in the string.
  • The "//" delimiter separates fields.
  • The "/" delimiter separates entries within a single field.
  • If applicable, the "REL TO" file releasing is followed by a space and then the country codes.
  • The ", " delimiter separates country codes.
  • If applicable, the declassification date is in "%Y%m%d" format, as used by DateTime::getFormattedUtc().

virtual bool Classification::compare ( const Classification pClassification  )  const [pure virtual]

Compares all values and attribues in this Classification object with those of another Classification object.

This method compares both Classification field values and DynamicObject attributes.

Parameters:
pClassification The Classification object with which to compare the values and attributes in this Classification object. This method does nothing and returns false if NULL is passed in.
Returns:
Returns true if all values and attributes in pClassification are the same as the values and attributes in this Classification object; otherwise returns false.
See also:
DynamicObject::compare()

virtual bool Classification::isValid ( std::string &  errorMessage  )  const [pure virtual]

Queries whether the classification is valid.

Currently this method only ensures that a TS classification has codewords.

Parameters:
errorMessage A string which will be populated with the reason why the classification is invalid. This string is presentable to the user and will be left unchanged if the classification is valid.
Returns:
True if the classification is valid, otherwise false.


Software Development Kit - Opticks 4.9.0 Build 16218