Loading...
Searching...
No Matches
casacore::RecordTransformable Class Referenceabstract
casa package (libcasa_casa) » Utilities_module

More...

`#include <RecordTransformable.h>`

## Public Member Functions

virtual | ~RecordTransformable ()
| The destructor must be virtual so that the destructor of derived classes is actually used.
virtual Bool | toRecord (String &error, RecordInterface &outRecord) const =0
| Convert the class to an Record representation.
virtual Bool | fromRecord (String &error, const RecordInterface &inRecord)=0
| Initialise the class from a Record representation.
virtual Bool | fromString (String &error, const String &inString)
| Initialise the class from a String representation.
virtual const String & | ident () const
| Specify the identification of the record (e.g.

## Detailed Description

Interface class for converting to/from records

### Intended use:

Public interface

### Review Status

Reviewed By:
  UNKNOWN
Date Reviewed:
  before2004/08/25
Test programs:
  tRecordTransformable

### Prerequisite

- RecordInterface

### Etymology

This class defines the interface that a class should use if the can be transformed into a record representation.

### Synopsis

This abstract base class is intended to be publicly inherited by classes that contain functions which can represent the object as a record (these functions should be called toRecord and fromRecord). Examples of records are:

- Record
- TableRecord

This interface defines two functions that convert between a RecordInterface and the class that inherits these functions. These functions are often used to parse input that is beyond the programs control e.g. user input from glish or Table records that may have been generated elsewhere. Hence exceptions should not thrown be thrown by these functions. Instead the function should return False and append an error message to the supplied String when the transformation cannot be accomplished.

Warning: Converting to/from a GlishRecord requires an extra step; First a Record should be used which can thereafter be converted to/from a GlishRecord using the appropriate GlishRecord functions;

### Example

The following example prints out a class using its record representation. This example is in the file tRecordTransformable.cc

void printAsRecord(const RecordTransformable & myClass) {
String errorMessage;
Record rec;
if (!myClass.toRecord(errorMessage, rec)) {
cout << "Cannot convert class to a Record. The reason is:" << endl;
cout << errorMessage << endl;
} else {
cout << rec.ndefined() << endl;
}
}
casacore::RecordTransformable
Definition RecordTransformable.h:104
casacore::RecordTransformable::toRecord
virtual Bool toRecord(String &error, RecordInterface &outRecord) const =0
Convert the class to an Record representation.
casacore::String
String: the storage and methods of handling collections of characters.
Definition String.h:223
casacore::Record
Record()

### Motivation

This class was designed to standardise the function interface for converting between an object and its record representation.

### To Do

- Nothing I hope!

Definition at line 103 of file RecordTransformable.h.

## Constructor & Destructor Documentation

## ~RecordTransformable()

virtual casacore::RecordTransformable::~RecordTransformable | ( |  | ) |

virtual

The destructor must be virtual so that the destructor of derived classes is actually used.

## Member Function Documentation

## fromRecord()

virtual Bool casacore::RecordTransformable::fromRecord | ( | String & | error,
|  | const RecordInterface & | inRecord )

pure virtual

Initialise the class from a Record representation.

The input record should contain the fields that are required by the class. Other fields will be ignored. If the transformation succeeds then the error String is unchanged and the function returns True. Otherwise the function returns False and appends an error message to the supplied String giving the reason why the conversion failed.

Implemented in casacore::FunctionHolder< T >, casacore::FunctionHolder< DComplex >, casacore::FunctionHolder< Double >, casacore::FunctionOrder< T >, casacore::ImageInfo, casacore::LSQMatrix, casacore::MeasureHolder, casacore::ObsInfo, and casacore::QuantumHolder.

References casacore::RecordInterface().

## fromString()

virtual Bool casacore::RecordTransformable::fromString | ( | String & | error,
|  | const String & | inString )

virtual

Initialise the class from a String representation.

A string cannot contain enough information for many objects. Hence the default implementation of this class returns False, indicating that the class could not be initialised and an error message is appended to the supplied string. If the class can be initialised from a string then this function should be overridden.

Reimplemented in casacore::FunctionHolder< T >, casacore::FunctionHolder< DComplex >, casacore::FunctionHolder< Double >, casacore::FunctionOrder< T >, casacore::MeasureHolder, and casacore::QuantumHolder.

## ident()

virtual const String & casacore::RecordTransformable::ident | ( |  | ) | const

virtual

Specify the identification of the record (e.g.

'meas', 'quant'). The default implementation returns a empty string.

Reimplemented in casacore::FunctionHolder< T >, casacore::FunctionHolder< DComplex >, casacore::FunctionHolder< Double >, casacore::FunctionOrder< T >, casacore::LSQMatrix, casacore::MeasureHolder, and casacore::QuantumHolder.

## toRecord()

virtual Bool casacore::RecordTransformable::toRecord | ( | String & | error,
|  | RecordInterface & | outRecord ) const

pure virtual

Convert the class to an Record representation.

The input record may already contain fields and these fields may be silently overridden. New fields may be added to the input Record. If the transformation succeeds then the error String is unchanged and the function returns True. Otherwise the function returns False and appends an error message to the supplied String giving the reason why the conversion failed.

Implemented in casacore::FunctionHolder< T >, casacore::FunctionHolder< DComplex >, casacore::FunctionHolder< Double >, casacore::FunctionOrder< T >, casacore::ImageInfo, casacore::LSQMatrix, casacore::MeasureHolder, casacore::ObsInfo, and casacore::QuantumHolder.

References casacore::RecordInterface().

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

- casa/Utilities/RecordTransformable.h