All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines
Public Member Functions | Static Public Attributes | Protected Member Functions
GeopsyCore::AsciiSignalFormatRule Class Reference

A rule entry in the definition of Ascii signal format. More...

#include <AsciiSignalFormatRule.h>

Inheritance diagram for GeopsyCore::AsciiSignalFormatRule:
QGpCoreTools::XMLClass

List of all members.

Public Member Functions

 AsciiSignalFormatRule ()
 AsciiSignalFormatRule (const AsciiSignalFormatRule &o)
int channel () const
bool constant () const
const MetaDataIndexdata () const
double factor () const
bool mandatory () const
QString pattern () const
int patternIndex () const
void setChannel (int c)
void setConstant (bool c)
void setData (const MetaDataIndex &d)
void setFactor (double f)
void setMandatory (bool m)
void setPattern (QString p)
void setPatternIndex (int i)
void setValue (QVariant v)
QVariant value () const
virtual const QString & xml_tagName () const

Static Public Attributes

static const QString xmlRuleTag = "Rule"

Protected Member Functions

virtual XMLMember xml_member (XML_MEMBER_ARGS)
virtual bool xml_setProperty (XML_SETPROPERTY_ARGS)
virtual void xml_writeProperties (XML_WRITEPROPERTIES_ARGS) const

Detailed Description

A rule entry in the definition of Ascii signal format.

Full description of class still missing


Constructor & Destructor Documentation

Constructs a basic rule: for all channels, not constant, mandatory, empty pattern, pattern index set to 1, not multiplication factor.

{
  _channel=-1; // Default to all channels
  _constant=false;
  _mandatory=true;
  _patternIndex=1;
  _factor=1.0;
}

Copy constructor

    : XMLClass()
{
  _channel=o._channel;
  _data=o._data;
  _constant=o._constant;
  _mandatory=o._mandatory;
  _pattern=o._pattern;
  _patternIndex=o._patternIndex;
  _value=o._value;
  _factor=o._factor;
}

Member Function Documentation

double GeopsyCore::AsciiSignalFormatRule::factor ( ) const [inline]
QString GeopsyCore::AsciiSignalFormatRule::pattern ( ) const [inline]

Referenced by GeopsyGui::AsciiSignalRulesItem::setData().

{_channel=c;}

Referenced by GeopsyGui::AsciiSignalRulesItem::setData().

{_constant=c;}
void GeopsyCore::AsciiSignalFormatRule::setFactor ( double  f) [inline]

Referenced by GeopsyGui::AsciiSignalRulesItem::setData().

{_factor=f;}

Referenced by GeopsyGui::AsciiSignalRulesItem::setData().

{_mandatory=m;}
void GeopsyCore::AsciiSignalFormatRule::setPattern ( QString  p) [inline]

Referenced by GeopsyGui::AsciiSignalRulesItem::setData().

{if(_patternIndex<0x40000000) _patternIndex=i;}
void GeopsyCore::AsciiSignalFormatRule::setValue ( QVariant  v) [inline]
QVariant GeopsyCore::AsciiSignalFormatRule::value ( ) const [inline]

Re-implement this function to offer XML restore (children and properties) support to your class.

From tag and map (with contains the attibute value) return a unique identifier under the format of a XMLMember. XMLMember is initialized with 3 types of contructors:

  • An integer: id number of a property
  • A XMLClass * : a child of this object identified by tag
  • Default constructor: error, unknow child or property

Map of attributes can be inspected in this way (can be achived also in xml_setProperty()):

    static const QString tmp("childrenName");
    XMLRestoreAttributeIterator it=map.find(tmp);
    if(it!=map.end()) {
      // found attribute "childrenName"
    }

If the map of attributes is not used:

    Q_UNUSED(attributes);
    if(tag=="x1") return XMLMember(0);
    else if(tag=="y1") return XMLMember(1);
    else if(tag=="x2") return XMLMember(2);
    else if(tag=="y2") return XMLMember(3);
    else return XMLMember(XMLMember::Unknown);

Arithmetic operations + and - apply to XMLMember to avoid confusion of property id numbers between inherited objects. Offset 3 corresponds to the number of properties defined in this object.

    if(tag=="anInteger") return XMLMember(0);
    else if(tag=="aString") return XMLMember(1);
    else if(tag=="aDouble") return XMLMember(2);
    return AbstractLine::xml_member(tag, attributes, context)+3;

For the arguments of this function use Macro XML_MEMBER_ARGS.

Reimplemented from QGpCoreTools::XMLClass.

References TRACE.

{
  TRACE;
  Q_UNUSED(context);
  Q_UNUSED(attributes);
  if(tag=="channel" ) return XMLMember(0);
  else if(tag=="data" ) return XMLMember(1);
  else if(tag=="pattern" ) return XMLMember(2);
  else if(tag=="patternIndex" ) return XMLMember(3);
  else if(tag=="constant" ) return XMLMember(4);
  else if(tag=="mandatory" ) return XMLMember(5);
  else if(tag=="value" ) return XMLMember(6);
  else if(tag=="factor" ) return XMLMember(7);
  else return XMLMember(XMLMember::Unknown);
}

Re-implement this function to offer XML restore properties support to your class.

From memberID set the corresponding property with value content. The map of attributes is given as a supplementary information (not useful in all cases).

For a general case:

  Q_UNUSED(attributes);
  double val=content.toDouble();
  switch (memberID) {
  case 0:
    _x1=val;
    return true;
  case 1:
    _y1=val;
    return true;
  case 2:
    _x2=val;
    return true;
  case 3:
    _y2=val;
    return true;
  default:
    return false;
  }

For classes inheriting other classes (see also xml_member())

  switch (memberID) {
  case 0:
    _anInteger=content.toString();
    return true;
  case 1:
    _aString=content.toInt();
    return true;
  case 2:
    _aDouble=content.toDouble();
    return true;
  default:
    return AbstractLine::xml_setProperty(memberID-3, map, content);

For the arguments of this function use Macro XML_SETPROPERTY_ARGS.

Reimplemented from QGpCoreTools::XMLClass.

References GeopsyCore::MetaDataFactory::index(), GeopsyCore::MetaDataFactory::instance(), GeopsyCore::MetaDataIndex::setIndex(), and TRACE.

{
  TRACE;
  Q_UNUSED(tag);
  Q_UNUSED(context);
  switch (memberID) {
  case 0: _channel=content.toInt(); return true;
  case 1: {
      _data=MetaDataFactory::instance()->index(content.toString());
      XMLRestoreAttributeIterator it=attributes.find(indexKey);
      if(it!=attributes.end()) {
        _data.setIndex(it.value().toString());
      }
      return true;
    }
  case 2: _pattern=content.toString(); return true;
  case 3: _patternIndex=content.toInt(); return true;
  case 4: _constant=content.toBool(); return true;
  case 5: _mandatory=content.toBool(); return true;
  case 6: _value=content.toString(); return true;
  case 7: _factor=content.toDouble(); return true;
  default:
    break;
  }
  return false;
}
virtual const QString& GeopsyCore::AsciiSignalFormatRule::xml_tagName ( ) const [inline, virtual]

Implements QGpCoreTools::XMLClass.

{return xmlRuleTag;}

Reimplemented from QGpCoreTools::XMLClass.

References QGpCoreTools::XMLSaveAttributes::add(), GeopsyCore::MetaDataIndex::index(), GeopsyCore::MetaDataFactory::instance(), TRACE, and QGpCoreTools::XMLClass::writeProperty().

{
  TRACE;
  Q_UNUSED(context);
  writeProperty(s, "channel", _channel);
  XMLSaveAttributes att;
  att.add(indexKey, _data.index());
  writeProperty(s, "data", att, MetaDataFactory::instance()->baseName(_data));
  writeProperty(s, "constant", (bool)_constant);
  if(_constant) {
    writeProperty(s, "value", _value.toString());
  } else {
    writeProperty(s, "mandatory", (bool)_mandatory);
    writeProperty(s, "pattern", _pattern);
    writeProperty(s, "patternIndex", (int)_patternIndex);
  }
  writeProperty(s, "factor", _factor);
}

Member Data Documentation

const QString GeopsyCore::AsciiSignalFormatRule::xmlRuleTag = "Rule" [static]

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines