#include <casacore/casa/Containers/Record.h>
#include <components/SpectralComponents/CompiledSpectralElement.h>
#include <components/SpectralComponents/GaussianSpectralElement.h>
#include <components/SpectralComponents/GaussianMultipletSpectralElement.h>
#include <components/SpectralComponents/LogTransformedPolynomialSpectralElement.h>
#include <components/SpectralComponents/LorentzianSpectralElement.h>
#include <components/SpectralComponents/PolynomialSpectralElement.h>
#include <components/SpectralComponents/PowerLogPolynomialSpectralElement.h>
#include <components/SpectralComponents/SpectralElementFactory.h>
using namespace casacore;
SpectralElement* SpectralElementFactory::fromRecord(
const RecordInterface &in
std::unique_ptr<SpectralElement> specEl;
String origin = "SpectralElementFactory::fromRecord: ";
|| in.type(in.idToNumber(RecordFieldId("type"))) != TpString
throw AipsError("Record does not represent a SpectralElement");
SpectralElement::Types tp;
in.get(RecordFieldId("type"), stp);
if (!SpectralElement::toType(tp, stp)) {
throw AipsError("Unknown spectral type in SpectralElement::fromRecord\n");