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");
}