Brief description of class still missing. More...
#include <MetaDataFactory.h>
Brief description of class still missing.
Full description of class still missing
{ ID=0, T0, DeltaT, NSamples, ReceiverX, ReceiverY, ReceiverZ, SourceX, SourceY, SourceZ, Name, Type, FileNumber, NumberInFile, TimeReference, FileName, Duration, EndTime, Component, MaximumAmplitude, AverageAmplitude, IsOriginalFile, SamplingFrequency, Pointer, CountPerVolt, VoltPerCount, VoltPerUnit, UnitPerVolt, CountPerUnit, UnitPerCount, AmplitudeUnit, SampleSize, HeaderModified, SourceReceiverDistance, SourceReceiverAzimuth, SourceReceiverRoughAzimuth, // Used for sort criteria else same as Azimuth ShortFileName, FileFormat, Dummy, DataCount // This item should be the last standard one (= number of data) };
References DataCount, and QGpCoreTools::XMLClassFactory::newId().
Referenced by init().
void GeopsyCore::MetaDataFactory::addScriptProperties | ( | SignalHeaderObject * | sig | ) | const |
References GeopsyCore::MetaData::addScriptProperties(), create(), and QGpCoreTools::XMLClassFactory::registeredIds().
{ QList<int> list=registeredIds(); for(QList<int>::iterator it=list.begin(); it!=list.end(); it++) { MetaData * d=create(*it); d->addScriptProperties(sig); delete d; } }
QString GeopsyCore::MetaDataFactory::baseName | ( | const MetaDataIndex & | index | ) | const |
Converts an index into a variable name excluding array index.
References GeopsyCore::MetaData::baseName(), create(), DataCount, GeopsyCore::MetaDataIndex::id(), GeopsyCore::MetaDataIndex::isValid(), and GeopsyCore::MetaDataIndex::subId().
int GeopsyCore::MetaDataFactory::count | ( | const MetaDataIndex & | index | ) | const |
MetaData * GeopsyCore::MetaDataFactory::create | ( | int | id | ) | const [inline] |
Returns a new class corresponding to id or null if it is not registered.
Reimplemented from QGpCoreTools::XMLClassFactory.
Referenced by addScriptProperties(), baseName(), count(), create(), GeopsyCore::MetaDataMap::data(), isReadOnly(), isStored(), name(), registerScriptTypes(), title(), and GeopsyCore::SharedMetaData::xml_member().
{ return static_cast<MetaData *>(XMLClassFactory::create(id)); }
MetaData * GeopsyCore::MetaDataFactory::create | ( | const QString & | tag | ) | const [inline] |
Returns a new class corresponding to tag or null if it is not registered.
Reimplemented from QGpCoreTools::XMLClassFactory.
References create().
{ return static_cast<MetaData *>(XMLClassFactory::create(tag)); }
MetaDataIndex GeopsyCore::MetaDataFactory::index | ( | const QString & | name | ) | const |
Convert a name (eventually including an array index) to a MetaDataIndex. Returns an invalid index if name cannot be recognized.
References QGpCoreTools::endl(), GeopsyCore::MetaDataIndex::setIndex(), and QGpCoreTools::tr().
Referenced by GeopsyCore::SubSignalPool::importTable(), GeopsyCore::MetaDataFieldList::readRegistry(), and GeopsyCore::AsciiSignalFormatRule::xml_setProperty().
{ int is=name.lastIndexOf("["); int ie=name.lastIndexOf("]"); MetaDataIndex index; if(is<ie && is>-1) { QMap<QString, MetaDataIndex>::const_iterator it; it=_names.find(name.left(is)); if(it!=_names.end()) { index=it.value(); QString arg=name.mid(is+1, ie-is-1); if(arg[0]=='\"') { arg=arg.mid(1, arg.count()-2); } index.setIndex(arg); } else { App::stream() << tr("Meta data '%1': unrecognized name, missing plugin?").arg(name) << endl; return MetaDataIndex(); } } else { QMap<QString, MetaDataIndex>::const_iterator it; it=_names.find(name); if(it!=_names.end()) { index=it.value(); } else { App::stream() << tr("Meta data '%1': unrecognized name, missing plugin?").arg(name) << endl; return MetaDataIndex(); } } return index; }
void GeopsyCore::MetaDataFactory::init | ( | ) | [static] |
References MetaDataFactory(), and QGpCoreTools::XMLClassFactory::registerFactory().
{ if(!_self) { _self=new MetaDataFactory; registerFactory(_self); // Required for proper deletion } }
static MetaDataFactory* GeopsyCore::MetaDataFactory::instance | ( | ) | [inline, static] |
Referenced by GeopsyCore::AsciiSignalFormat::assign(), GeopsyCore::MetaDataMap::data(), GeopsyCore::SubSignalPool::exportTable(), GeopsyCore::SubSignalPool::importTable(), GeopsyCore::SignalExpression::isReadOnly(), GeopsyCore::MetaDataField::MetaDataField(), GeopsyCore::AsciiSignalFormat::parseHeader(), GeopsyCore::MetaDataFieldList::readRegistry(), GeopsyCore::MetaDataFieldList::setAll(), GeopsyCore::SignalProcess::setHeader(), GeopsyCore::SignalExpressionContext::SignalExpressionContext(), GeopsyCore::SignalHeaderScript::SignalHeaderScript(), GeopsyCore::MetaDataFieldList::writeRegistry(), GeopsyCore::SharedMetaData::xml_member(), GeopsyCore::Signal::xml_member(), GeopsyCore::AsciiSignalFormatRule::xml_setProperty(), GeopsyCore::Signal::xml_setProperty(), and GeopsyCore::AsciiSignalFormatRule::xml_writeProperties().
{init(); return _self;}
bool GeopsyCore::MetaDataFactory::isReadOnly | ( | const MetaDataIndex & | index | ) | const |
References AmplitudeUnit, Component, CountPerVolt, create(), DataCount, DeltaT, Duration, EndTime, GeopsyCore::MetaDataIndex::id(), GeopsyCore::MetaData::isReadOnly(), Name, READONLY_STANDARD_METADATA, ReceiverX, ReceiverY, ReceiverZ, SamplingFrequency, SourceX, SourceY, SourceZ, GeopsyCore::MetaDataIndex::subId(), T0, TimeReference, TRACE, UnitPerVolt, VoltPerCount, and VoltPerUnit.
Referenced by GeopsyCore::SignalExpression::isReadOnly().
{ TRACE; if(index.id()<DataCount) { switch (index.id()) { case T0: case DeltaT: case ReceiverX: case ReceiverY: case ReceiverZ: case SourceX: case SourceY: case SourceZ: case Name: case Component: case TimeReference: case SamplingFrequency: case Duration: case EndTime: case CountPerVolt: case VoltPerCount: case VoltPerUnit: case UnitPerVolt: case AmplitudeUnit: return false; READONLY_STANDARD_METADATA return true; } } else { MetaData * d=create(index.id()); if(d) { bool ro=d->isReadOnly(index.subId()); delete d; return ro; } } return true; }
bool GeopsyCore::MetaDataFactory::isStored | ( | const MetaDataIndex & | index | ) | const |
References AmplitudeUnit, AverageAmplitude, Component, CountPerUnit, CountPerVolt, create(), DataCount, DeltaT, Dummy, Duration, EndTime, FileFormat, FileName, FileNumber, HeaderModified, GeopsyCore::MetaDataIndex::id(), ID, IsOriginalFile, GeopsyCore::MetaData::isStored(), MaximumAmplitude, Name, NSamples, NumberInFile, Pointer, ReceiverX, ReceiverY, ReceiverZ, SampleSize, SamplingFrequency, ShortFileName, SourceReceiverAzimuth, SourceReceiverDistance, SourceReceiverRoughAzimuth, SourceX, SourceY, SourceZ, T0, TimeReference, TRACE, Type, UnitPerCount, UnitPerVolt, VoltPerCount, and VoltPerUnit.
{ TRACE; if(index.id()<DataCount) { switch (index.id()) { case ID: case T0: case DeltaT: case NSamples: case ReceiverX: case ReceiverY: case ReceiverZ: case SourceX: case SourceY: case SourceZ: case Name: case Type: case Component: case TimeReference: case NumberInFile: case CountPerVolt: case VoltPerUnit: case AmplitudeUnit: case ShortFileName: return true; case FileNumber: case FileFormat: case FileName: case Duration: case EndTime: case MaximumAmplitude: case AverageAmplitude: case IsOriginalFile: case VoltPerCount: case UnitPerVolt: case UnitPerCount: case CountPerUnit: case SamplingFrequency: case Pointer: case SampleSize: case HeaderModified: case SourceReceiverDistance: case SourceReceiverAzimuth: case SourceReceiverRoughAzimuth: case Dummy: case DataCount: return false; } } else { MetaData * d=create(index.id()); if(d) { bool s=d->isStored(); delete d; return s; } } return false; }
QString GeopsyCore::MetaDataFactory::name | ( | const MetaDataIndex & | index | ) | const |
Converts an index into a variable name including array index if any.
References create(), DataCount, GeopsyCore::MetaDataIndex::id(), GeopsyCore::MetaDataIndex::index(), GeopsyCore::MetaDataIndex::isValid(), GeopsyCore::MetaData::name(), and GeopsyCore::MetaDataIndex::subId().
Referenced by GeopsyCore::SubSignalPool::exportTable().
int GeopsyCore::MetaDataFactory::registerClass | ( | const QString & | tag, |
XMLClassCreator * | creator | ||
) |
Registers class with tag and its creator class. Returns its unique id.
Reimplemented from QGpCoreTools::XMLClassFactory.
References QGpCoreTools::XMLClassCreator::create(), QGpCoreTools::XMLClassFactory::creator(), QGpCoreTools::XMLClassFactory::id(), GeopsyCore::MetaData::setId(), and GeopsyCore::MetaData::subNames().
{ MetaData * d=reinterpret_cast<MetaData *>(creator->create()); QStringList l=d->subNames(); int n=l.count(); // Check uniqueness of names for(int i=0; i<n; i++) { if(_names.contains(l.at(i))) { qWarning("Registering meta data '%s': sub name '%s'' already registered.", tag.toAscii().data(), l.at(i).toAscii().data()); delete d; delete creator; return -1; } } int id=XMLClassFactory::registerClass(tag, creator); // Add all sub names for(int i=0; i<n; i++) { _names.insert(l.at(i), MetaDataIndex(id, i, 0)); } // Store id d->setId(id); delete d; return id; }
QList< MetaDataIndex > GeopsyCore::MetaDataFactory::registeredData | ( | ) | const |
Referenced by GeopsyCore::MetaDataFieldList::setAll(), and GeopsyCore::SignalExpressionContext::SignalExpressionContext().
{ QList<MetaDataIndex> list; QMap<QString, MetaDataIndex>::const_iterator it; for(it=_names.begin(); it!=_names.end(); it++) { list.append(it.value()); } return list; }
QStringList GeopsyCore::MetaDataFactory::registeredNames | ( | ) | const |
Referenced by GeopsyCore::SignalExpressionContext::SignalExpressionContext().
{ QStringList list; QMap<QString, MetaDataIndex>::const_iterator it; for(it=_names.begin(); it!=_names.end(); it++) { list.append(it.key()); } return list; }
void GeopsyCore::MetaDataFactory::registerScriptTypes | ( | QScriptEngine * | engine | ) | const |
References create(), QGpCoreTools::XMLClassFactory::registeredIds(), and GeopsyCore::MetaData::registerScriptTypes().
Referenced by GeopsyCore::SignalHeaderScript::SignalHeaderScript().
{ QList<int> list=registeredIds(); for(QList<int>::iterator it=list.begin(); it!=list.end(); it++) { MetaData * d=create(*it); d->registerScriptTypes(engine); delete d; } }
QString GeopsyCore::MetaDataFactory::title | ( | const MetaDataIndex & | index | ) | const |
References AmplitudeUnit, AverageAmplitude, Component, CountPerUnit, CountPerVolt, create(), DataCount, DeltaT, Dummy, Duration, EndTime, FileFormat, FileName, FileNumber, HeaderModified, GeopsyCore::MetaDataIndex::id(), ID, GeopsyCore::MetaDataIndex::index(), IsOriginalFile, GeopsyCore::MetaDataIndex::isValid(), MaximumAmplitude, Name, NSamples, NumberInFile, Pointer, ReceiverX, ReceiverY, ReceiverZ, SampleSize, SamplingFrequency, ShortFileName, SourceReceiverAzimuth, SourceReceiverDistance, SourceReceiverRoughAzimuth, SourceX, SourceY, SourceZ, GeopsyCore::MetaDataIndex::subId(), T0, TimeReference, GeopsyCore::MetaData::title(), QGpCoreTools::tr(), Type, UnitPerCount, UnitPerVolt, VoltPerCount, and VoltPerUnit.
Referenced by GeopsyCore::MetaDataField::MetaDataField().
{ if(index.isValid()) { if(index.id()<DataCount) { // First custom meta data has id==DataCount switch(static_cast<StandardData>(index.id())) { case ID: return tr("ID"); case T0: return tr("Start time"); case DeltaT: return tr("dt"); case NSamples: return tr("N samples"); case ReceiverX: return tr("Rec x"); case ReceiverY: return tr("Rec y"); case ReceiverZ: return tr("Rec z"); case SourceX: return tr("Src x"); case SourceY: return tr("Src y"); case SourceZ: return tr("Src z"); case Name: return tr("Name"); case Type: return tr("Type"); case FileNumber: return tr("File number"); case NumberInFile: return tr("Number in file"); case TimeReference: return tr("Time reference"); case FileName: return tr("File name"); case FileFormat: return tr("File format"); case ShortFileName: return tr("Short file name"); case Duration: return tr("Duration"); case EndTime: return tr("End time"); case Component: return tr("Component"); case MaximumAmplitude: return tr("Maximum amplitude"); case AverageAmplitude: return tr("Average amplitude"); case IsOriginalFile: return tr("Original file?"); case SamplingFrequency: return tr("Sampling frequency"); case Pointer: return tr("Pointer"); case CountPerVolt: return tr("Count/Volt"); case VoltPerCount: return tr("Volt/Count"); case VoltPerUnit: return tr("Volt/Unit"); case UnitPerVolt: return tr("Unit/Volt"); case CountPerUnit: return tr("Count/Unit"); case UnitPerCount: return tr("Unit/Count"); case AmplitudeUnit: return tr("Amplitude unit"); case SampleSize: return tr("Sample size (Mb)"); case HeaderModified: return tr("Header modified?"); case SourceReceiverDistance: return tr("Distance to source"); case SourceReceiverAzimuth: case SourceReceiverRoughAzimuth: return tr("Azimuth from source"); case Dummy: return "Dummy"; case DataCount: break; } } else { MetaData * d=create(index.id()); if(d) { QString t=d->title(index.subId(), index.index()); delete d; return t; } } } return tr("Untitled"); }