Aimsun Next Scripting  22
Public Types | Public Member Functions | Static Public Member Functions | List of all members
GKNetworkAttributesOverride Class Reference
Inheritance diagram for GKNetworkAttributesOverride:
GKObject GKBaseObject

Public Types

typedef QHash< GKColumn *, QVariant > ObjectData
 
typedef QHash< GKObject *, QVariant > ColumnData
 
- Public Types inherited from GKObject
enum  IdentifierFormFlag {
  eIdentifierDefault , eIdentifierId , eIdentifierName , eIdentifierExternalId ,
  eIdentifierTypeExternalName , eIdentifierDescription , eIdentifierStandard , eIdentifierStandardWithType ,
  eIdentifierAll
}
 
enum  GKLockType { eNone , eModification , eDelete , eModificationDelete }
 
enum  GKObjectStatus { eNew , eSaved , eModified , eDeleted }
 
typedef QFlags< GKObject::IdentifierFormFlagIdentifierForm
 

Public Member Functions

 GKNetworkAttributesOverride ()
 
virtual ~GKNetworkAttributesOverride ()
 
void add (GKObject *obj, GKColumn *col, const QVariant &newValue)
 
void add (GKObject *obj, const ObjectData &data)
 
QList< GKObject * > getObjects () const
 
bool hasObject (GKObject *obj) const
 
ObjectData getObjectData (const GKObject *obj) const
 
QList< GKColumn * > getColumns () const
 
ColumnData getColumnData (const GKColumn *col) const
 
void remove (GKObject *obj, GKColumn *col)
 
void clear ()
 
void addSection (GKSection *section)
 
bool hasSection (const GKSection *section) const
 
const QVector< GKNetworkAttributesOverrideLaneData > & getSectionData (const GKSection *section) const
 
void setSectionData (GKSection *section, const QVector< GKNetworkAttributesOverrideLaneData > &data)
 
QList< GKSection * > getSections () const
 
void setSectionLaneData (GKSection *section, int lanepos, const GKNetworkAttributesOverrideLaneData &data)
 
bool getSectionLaneData (const GKSection *section, uint lanepos, GKNetworkAttributesOverrideLaneData &data) const
 
GKSectionLaneapply (GKSectionLane &lane, const GKNetworkAttributesOverrideLaneData &data)
 
void removeSection (GKSection *section)
 
- Public Member Functions inherited from GKObject
 GKObject ()
 
 GKObject (const GKObject &o)
 
virtual void addedToCatalog ()
 
virtual void removedFromCatalog ()
 
uint getTick () const
 
virtual void increaseTick ()
 
void setTick (uint t)
 
virtual GKObjectclone (bool addItToModel=true) const
 
virtual GKObjectcloneAsTemporary (bool addItToModel=true) const
 
GKFoldergetCreateRootFolder ()
 
GKFoldergetRootFolder () const
 
void setRootFolder (GKFolder *afolder)
 
GKFolderfindFolder (const QString &byName) const
 
QVector< GKFolder * > getParentFolders () const
 
bool isDataValueNull (const GKColumn *attr) const
 
virtual QVariant * getDataValue (const GKColumn *attr, bool *deleteit, const GKContext &context=GKContext::anyContext) const
 
QVariant * getDataValueByID (uint attrId, bool *deleteit, const GKContext &context=GKContext::anyContext) const
 
virtual void setDataValue (const GKColumn *attr, const QVariant &v)
 
void setDataValueByID (uint attrId, const QVariant &v)
 
virtual void setDataValueObject (const GKColumn *attr, const GKObject *obj)
 
void setDataValueObjectByID (uint attrId, const GKObject *obj)
 
virtual void setDataValueDouble (const GKColumn *attr, double v)
 
void setDataValueDoubleByID (uint attrId, double v)
 
virtual double getDataValueInTS (const GKColumn *attr, GKTimeSerieIndex index, double *deviation=NULL) const
 
double getDataValueInTSByID (uint attrId, GKTimeSerieIndex index, double *deviation=NULL) const
 
bool hasAnyTSWithData () const
 
virtual GKTimeSeriegetDataValueTS (const GKColumn *attr) const
 
GKTimeSeriegetDataValueTSByID (uint attrId) const
 
virtual void setDataValueInTS (const GKColumn *attr, GKTimeSerieIndex index, double value, double deviation, GKTSDescription *aDescription=NULL, int reservedSize=0)
 
virtual void setDataValueInTS (const GKColumn *attr, GKTimeSerieIndex index, double value, double deviation, double lowerValue, GKTSDescription *aDescription=NULL, int reservedSize=0)
 
virtual void setDataValueInSingleTS (const GKColumn *attr, GKTimeSerieIndex index, double value, double deviation, GKTSDescription *aDescription)
 
void setDataValueInTSByID (uint attrId, GKTimeSerieIndex index, double value, double deviation, GKTSDescription *aDescription=NULL, int reservedSize=0)
 
virtual void setAggregatedValueInTS (const GKColumn *attr, double value, double deviation, GKTSDescription *aDescription=NULL)
 
void setAggregatedValueInTSByID (uint attrId, double value, double deviation, GKTSDescription *aDescription=NULL)
 
virtual void clearDataValueTS (const GKColumn *attr, GKTSDescription *aDescription=NULL)
 
void clearDataValueTSByID (uint attrId, GKTSDescription *aDescription=NULL)
 
virtual int getDataValueInt (const GKColumn *attr, const GKContext &context=GKContext::anyContext) const
 
int getDataValueIntByID (uint attrId, const GKContext &context=GKContext::anyContext) const
 
virtual double getDataValueDouble (const GKColumn *attr, const GKContext &context=GKContext::anyContext) const
 
double getDataValueDoubleByID (uint attrId, const GKContext &context=GKContext::anyContext) const
 
QString getDataValueString (const GKColumn *attr, const GKContext &context=GKContext::anyContext) const
 
QString getDataValueStringByID (uint attrId, const GKContext &context=GKContext::anyContext) const
 
virtual bool getDataValueBool (const GKColumn *attr, const GKContext &context=GKContext::anyContext) const
 
bool getDataValueBoolByID (uint attrId, const GKContext &context=GKContext::anyContext) const
 
virtual GKObjectgetDataValueObject (const GKColumn *attr, const GKContext &context=GKContext::anyContext) const
 
GKObjectgetDataValueObjectByID (uint attrId, const GKContext &context=GKContext::anyContext) const
 
QDate getDataValueDate (const GKColumn *attr, const GKContext &context=GKContext::anyContext) const
 
QDate getDataValueDateByID (uint attrId, const GKContext &context=GKContext::anyContext) const
 
QTime getDataValueTime (const GKColumn *attr, const GKContext &context=GKContext::anyContext) const
 
QTime getDataValueTimeByID (uint attrId, const GKContext &context=GKContext::anyContext) const
 
QDateTime getDataValueDateTime (const GKColumn *attr, const GKContext &context=GKContext::anyContext) const
 
QDateTime getDataValueDateTimeByID (uint attrId, const GKContext &context=GKContext::anyContext) const
 
GKTimeDuration getDataValueTimeDuration (const GKColumn *attr, const GKContext &context=GKContext::anyContext) const
 
GKTimeDuration getDataValueTimeDurationByID (uint attrId, const GKContext &context=GKContext::anyContext) const
 
void removeDataValue (const GKColumn *attr)
 
void removeDataValueByID (uint attrId)
 
const QString & getDescription () const
 
void setDescription (const QString &adescription)
 
const QString & getExternalId () const
 
void setExternalId (const QString &anId)
 
virtual GKObjectDelCmd * getDelCmd ()
 
virtual GKObjectConnectionDelCmd * getDelConnectionCmd (GKObject *target)
 
virtual void nonCommandObjectRemoved (GKObject *)
 
virtual void init ()
 
virtual void setId (uint aid, GKModel *model)
 
uint getId () const
 
QUuid getUUID () const
 
virtual void setName (const QString &aname)
 
const QString & getName () const
 
QString getExtendedId (IdentifierForm form=eIdentifierDefault) const
 
QString getNameOrExtendedId (IdentifierForm form=eIdentifierDefault) const
 
virtual const QString & getTypeName () const
 
virtual QString getTypeExternalName () const
 
const GKObjectgetMaster () const
 
GKTypegetType () const
 
virtual void setType (GKType *atype)
 
bool isA (const GKType *atype) const
 
bool isA (const QString &typeName) const
 
virtual void setModel (GKModel *amodel)
 
GKModelgetModel () const
 
virtual void setLock (GKLockType atype)
 
GKLockType getLock () const
 
virtual bool canBeDeleted () const
 
virtual bool canBeModified () const
 
virtual bool canBeEdited () const
 
GKObjectStatus getStatus () const
 
virtual void setStatus (const GKObjectStatus astatus)
 
void notifyStatusChange ()
 
bool isTemporary () const
 
void setTemporary (bool value)
 
bool isExternal () const
 
void setExternal (bool value)
 
virtual void preferencesChanged ()
 
void removeColumn (GKColumn *column)
 
void resetColumn (GKColumn *column)
 
- Public Member Functions inherited from GKBaseObject
 GKBaseObject ()
 
 if (base)
 
virtual uint getId () const =0
 
virtual const QString & getTypeName () const =0
 
virtual QString getTypeExternalName () const =0
 
virtual const GKObjectgetMaster () const =0
 
virtual const QString & getName () const =0
 
virtual const QString & getExternalId () const =0
 
virtual const QString & getDescription () const =0
 
virtual GKModelgetModel () const =0
 
virtual QVariant * getDataValue (const GKColumn *attr, bool *deleteit, const GKContext &context=GKContext::anyContext) const =0
 
virtual QVariant * getDataValueByID (uint attrId, bool *deleteit, const GKContext &context=GKContext::anyContext) const =0
 
virtual double getDataValueInTS (const GKColumn *attr, GKTimeSerieIndex index, double *deviation=NULL) const =0
 
virtual double getDataValueInTSByID (uint attrId, GKTimeSerieIndex index, double *deviation=NULL) const =0
 
virtual GKTimeSeriegetDataValueTS (const GKColumn *attr) const =0
 
virtual GKTimeSeriegetDataValueTSByID (uint attrId) const =0
 
virtual int getDataValueInt (const GKColumn *attr, const GKContext &context=GKContext::anyContext) const =0
 
virtual int getDataValueIntByID (uint attrId, const GKContext &context=GKContext::anyContext) const =0
 
virtual double getDataValueDouble (const GKColumn *attr, const GKContext &context=GKContext::anyContext) const =0
 
virtual double getDataValueDoubleByID (uint attrId, const GKContext &context=GKContext::anyContext) const =0
 
virtual QString getDataValueString (const GKColumn *attr, const GKContext &context=GKContext::anyContext) const =0
 
virtual QString getDataValueStringByID (uint attrId, const GKContext &context=GKContext::anyContext) const =0
 
virtual bool getDataValueBool (const GKColumn *attr, const GKContext &context=GKContext::anyContext) const =0
 
virtual bool getDataValueBoolByID (uint attrId, const GKContext &context=GKContext::anyContext) const =0
 
virtual GKObjectgetDataValueObject (const GKColumn *attr, const GKContext &context=GKContext::anyContext) const =0
 
virtual GKObjectgetDataValueObjectByID (uint attrId, const GKContext &context=GKContext::anyContext) const =0
 
virtual QDate getDataValueDate (const GKColumn *attr, const GKContext &context=GKContext::anyContext) const =0
 
virtual QDate getDataValueDateByID (uint attrId, const GKContext &context=GKContext::anyContext) const =0
 
virtual QTime getDataValueTime (const GKColumn *attr, const GKContext &context=GKContext::anyContext) const =0
 
virtual QTime getDataValueTimeByID (uint attrId, const GKContext &context=GKContext::anyContext) const =0
 
virtual QDateTime getDataValueDateTime (const GKColumn *attr, const GKContext &context=GKContext::anyContext) const =0
 
virtual QDateTime getDataValueDateTimeByID (uint attrId, const GKContext &context=GKContext::anyContext) const =0
 
virtual GKTimeDuration getDataValueTimeDuration (const GKColumn *attr, const GKContext &context=GKContext::anyContext) const =0
 
virtual GKTimeDuration getDataValueTimeDurationByID (uint attrId, const GKContext &context=GKContext::anyContext) const =0
 

Static Public Member Functions

static bool isColumnValid (const GKColumn *col)
 
static bool isColumnTypeValid (GKColumn::Type type)
 
static QVariant apply (GKColumn::Type colType, const QVariant &oldValue, const QVariant &newValue)
 

Additional Inherited Members

- Public Attributes inherited from GKBaseObject
ConvertToSubClassCode Py_BEGIN_ALLOW_THREADS GKBaseObjectbase = (GKBaseObject*)sipCpp
 
 sipType = 0
 
- Static Public Attributes inherited from GKObject
static uint typeNameAtt
 
static uint typeExternalNameAtt
 
static uint revisedAtt
 
- Static Public Attributes inherited from GKBaseObject
Py_END_ALLOW_THREADS static End uint idAtt
 
static uint nameAtt
 
static uint externalIdAtt
 
static uint descriptionAtt
 

Detailed Description

The class will allow the user to "override" the value of one or more column for any object inside the model.

The information stored by this class will be then assigned to one or more experiments, so the override data specified here will be applied to the affected objects before running the experiment.

The override values are be stored as QVariant, and they are interpreted in different ways according to its type and column type:

- For numerical columns (Int, UInt, & Double), the override data can be specified either
  as a new numerical value that will replace the existing one, or either as an string specifying
  a "variation" over the object value, like i.e. "10%", "-5", "+15%", etc...

- For _GKEnum columns, the override data can be specified either as the 'name' of one of the enum values,
  or either its associated value.

- For string (String / CString) columns, the override data must be specified as a string which will
  simply overwrite the existing one.

- For Bool columns, the override data will also be converted to a boolean value and assigned to the column.

- For _GKObject columns, teh override data will specify the ID of the new object to use

Right now, these are the only column types supported by the class. In a future we might also support overriding time-related columnes (Date / Time / DateTime), etc...

The class registers a 'connection' into the model for any referenced object, so it gets properly warned whenever such object is removed.

Member Typedef Documentation

◆ ColumnData

Column data map

◆ ObjectData

Object data map

Constructor & Destructor Documentation

◆ GKNetworkAttributesOverride()

GKNetworkAttributesOverride::GKNetworkAttributesOverride ( )

◆ ~GKNetworkAttributesOverride()

virtual GKNetworkAttributesOverride::~GKNetworkAttributesOverride ( )
virtual

Member Function Documentation

◆ add() [1/2]

void GKNetworkAttributesOverride::add ( GKObject obj,
const ObjectData data 
)

Stores the given override values for object.

Parameters
objobject for which the column will be overriden
dataoverride data

◆ add() [2/2]

void GKNetworkAttributesOverride::add ( GKObject obj,
GKColumn col,
const QVariant &  newValue 
)

Stores the given override value for the given object and column. The new value must be specified according to the rules mentioned in class documentation.

Parameters
objobject for which the column will be overriden
colcolumn to override
newValuethe new value (or variation) to be used

◆ addSection()

void GKNetworkAttributesOverride::addSection ( GKSection section)

Adds the given section to the override set. The class then stores the current lane parameters internally, which can be changed later through setSectionLaneData(), etc...

◆ apply() [1/2]

static QVariant GKNetworkAttributesOverride::apply ( GKColumn::Type  colType,
const QVariant &  oldValue,
const QVariant &  newValue 
)
static

Core function which modifies a column's value by applying the given override to it, and returns the modified value.

Parameters
colType: column to modify
oldValue: current value for the column
newValue: value to use for overriding
Returns
: modified value for the column

◆ apply() [2/2]

GKSectionLane & GKNetworkAttributesOverride::apply ( GKSectionLane lane,
const GKNetworkAttributesOverrideLaneData data 
)

Applies the override data to the given section lane and returns it

◆ clear()

void GKNetworkAttributesOverride::clear ( )

Removes all overrides from the class

◆ getColumnData()

ColumnData GKNetworkAttributesOverride::getColumnData ( const GKColumn col) const

Returns the current overrides for a given column.

Parameters
colcolumn to query about
Returns
a QHash specifying the existing overrides for this column

◆ getColumns()

QList< GKColumn * > GKNetworkAttributesOverride::getColumns ( ) const

Returns the set of columns for which we currently have any overriden defined

◆ getObjectData()

ObjectData GKNetworkAttributesOverride::getObjectData ( const GKObject obj) const

Returns the current overrides for a given object.

Parameters
objobject to query about
Returns
a QHash specifying the overrides for this object

◆ getObjects()

QList< GKObject * > GKNetworkAttributesOverride::getObjects ( ) const

Returns the list of objects for which we currently have any column overriden

◆ getSectionData()

const QVector< GKNetworkAttributesOverrideLaneData > & GKNetworkAttributesOverride::getSectionData ( const GKSection section) const

Returns the lane attribute overrides for this section

◆ getSectionLaneData()

bool GKNetworkAttributesOverride::getSectionLaneData ( const GKSection section,
uint  lanepos,
GKNetworkAttributesOverrideLaneData data 
) const

Returns the lane type assigned to the given section & lane

◆ getSections()

QList< GKSection * > GKNetworkAttributesOverride::getSections ( ) const

Returns the list of sections whose lane attributes are currently overriden

◆ hasObject()

bool GKNetworkAttributesOverride::hasObject ( GKObject obj) const

Returns true if the class contains attribute overrides for the given object

◆ hasSection()

bool GKNetworkAttributesOverride::hasSection ( const GKSection section) const

Returns true if the lane attributes of this section are overriden

◆ isColumnTypeValid()

static bool GKNetworkAttributesOverride::isColumnTypeValid ( GKColumn::Type  type)
static

Returns true if the given column type is overridable by this class (not all types are supported)

◆ isColumnValid()

static bool GKNetworkAttributesOverride::isColumnValid ( const GKColumn col)
static

Returns true if the given column is overridable by this class (not all column types are supported)

◆ remove()

void GKNetworkAttributesOverride::remove ( GKObject obj,
GKColumn col 
)

◆ removeSection()

void GKNetworkAttributesOverride::removeSection ( GKSection section)

Removes the given section from the override set

◆ setSectionData()

void GKNetworkAttributesOverride::setSectionData ( GKSection section,
const QVector< GKNetworkAttributesOverrideLaneData > &  data 
)

Adds the given section & lane attribute overrides to the class.

◆ setSectionLaneData()

void GKNetworkAttributesOverride::setSectionLaneData ( GKSection section,
int  lanepos,
const GKNetworkAttributesOverrideLaneData data 
)

Changes the lane type for the given section & lane

© Aimsun SLU
Aimsun ®