frepple::utils::Object Class Reference

Object is the abstract base class for the main entities. More...

#include <utils.h>

Inheritance diagram for frepple::utils::Object:

List of all members.

Public Member Functions

virtual void beginElement (XMLInput &, const Attribute &)
virtual void endElement (XMLInput &, const Attribute &, const DataElement &)=0
virtual bool getHidden () const
virtual size_t getSize () const =0
virtual const MetaClassgetType () const =0
 Object ()
virtual void setHidden (bool b)
virtual void writeElement (XMLOutput *, const Keyword &, mode=DEFAULT) const
virtual ~Object ()

Static Public Member Functions

template<class T >
static PyObject * create (PyTypeObject *pytype, PyObject *args, PyObject *kwds)
template<class T >
static ObjectcreateDefault ()
template<class T >
static ObjectcreateString (const string &n)
static PyObject * toXML (PyObject *, PyObject *)

Detailed Description

Object is the abstract base class for the main entities.

It handles to following capabilities:

  • Metadata: All subclasses publish metadata about their structure.
  • Python object: All objects live a double life as a Python object.
  • Callbacks: When objects are created or deleted, interested classes or objects can get a callback notification.
  • Serialization: Objects need to be persisted and later restored. Subclasses that don't need to be persisted can skip the implementation of the writeElement method.
    Instances can be marked as hidden, which means that they are not serialized at all.

Definition at line 3303 of file utils.h.


Constructor & Destructor Documentation

frepple::utils::Object::Object (  )  [inline, explicit]

Constructor.

Definition at line 3307 of file utils.h.

virtual frepple::utils::Object::~Object (  )  [inline, virtual]

Destructor.

Definition at line 3310 of file utils.h.


Member Function Documentation

template<class T >
static PyObject* frepple::utils::Object::create ( PyTypeObject *  pytype,
PyObject *  args,
PyObject *  kwds 
) [inline, static]

Template function that generates a factory method callable from Python.

Reimplemented in frepple::OperationPlan.

Definition at line 3370 of file utils.h.

template<class T >
static Object* frepple::utils::Object::createDefault (  )  [inline, static]

This template function can generate a factory method for objects that can be constructed with their default constructor.

Definition at line 3353 of file utils.h.

template<class T >
static Object* frepple::utils::Object::createString ( const string &  n  )  [inline, static]

This template function can generate a factory method for objects that need a string argument in their constructor.

Definition at line 3361 of file utils.h.

virtual void frepple::utils::Object::endElement ( XMLInput ,
const Attribute ,
const DataElement  
) [pure virtual]

Called while restoring the model from an XML-file.
This is called when the corresponding close element tag is encountered, and the Data() member of pElement is valid.

Implemented in frepple::Calendar::Bucket, frepple::Calendar, frepple::CalendarValue< T >::BucketValue, frepple::CalendarValue< T >, frepple::CalendarPointer< T >::BucketPointer, frepple::CalendarPointer< T >, frepple::Problem, frepple::Solver, frepple::Location, frepple::Customer, frepple::Operation, frepple::OperationPlan, frepple::OperationFixedTime, frepple::OperationTimePer, frepple::OperationRouting, frepple::OperationAlternate, frepple::Item, frepple::Buffer, frepple::BufferProcure, frepple::Flow, frepple::SetupMatrix::Rule, frepple::SetupMatrix, frepple::Resource, frepple::Load, frepple::Plan, frepple::Demand, frepple::PeggingIterator, frepple::SolverMRP, frepple::utils::HasName< T >, frepple::utils::HasHierarchy< T >, module_forecast::Forecast, module_lp_solver::LPSolver, frepple::utils::HasName< Item >, frepple::utils::HasName< Location >, frepple::utils::HasName< Calendar >, frepple::utils::HasName< Solver >, frepple::utils::HasName< SetupMatrix >, frepple::utils::HasName< Demand >, frepple::utils::HasName< Customer >, frepple::utils::HasName< Resource >, frepple::utils::HasName< Operation >, frepple::utils::HasName< Buffer >, frepple::utils::HasHierarchy< Item >, frepple::utils::HasHierarchy< Location >, frepple::utils::HasHierarchy< Demand >, frepple::utils::HasHierarchy< Customer >, frepple::utils::HasHierarchy< Resource >, and frepple::utils::HasHierarchy< Buffer >.

virtual bool frepple::utils::Object::getHidden (  )  const [inline, virtual]

Returns whether an entity is real or dummy.

Reimplemented in frepple::Operation, frepple::OperationPlan, frepple::Buffer, frepple::Flow, frepple::Resource, frepple::Load, and frepple::Demand.

Definition at line 3341 of file utils.h.

virtual const MetaClass& frepple::utils::Object::getType (  )  const [pure virtual]

This returns the type information on the object, a bit similar to the standard type_info information.

Implemented in frepple::Calendar::Bucket, frepple::Calendar, frepple::CalendarValue< T >::BucketValue, frepple::CalendarValue< T >, frepple::CalendarPointer< T >::BucketPointer, frepple::CalendarPointer< T >, frepple::CalendarVoid, frepple::CalendarDouble, frepple::CalendarInt, frepple::CalendarBool, frepple::CalendarString, frepple::CalendarOperation, frepple::Problem, frepple::Solver, frepple::Location, frepple::LocationDefault, frepple::Customer, frepple::CustomerDefault, frepple::OperationPlan, frepple::OperationFixedTime, frepple::OperationSetup, frepple::OperationTimePer, frepple::OperationRouting, frepple::OperationAlternate, frepple::Item, frepple::ItemDefault, frepple::Buffer, frepple::BufferDefault, frepple::BufferInfinite, frepple::BufferProcure, frepple::Flow, frepple::FlowStart, frepple::FlowEnd, frepple::SetupMatrix::Rule, frepple::SetupMatrix, frepple::SetupMatrixDefault, frepple::Resource, frepple::ResourceDefault, frepple::ResourceInfinite, frepple::Load, frepple::Plan, frepple::Demand, frepple::DemandDefault, frepple::ProblemBeforeCurrent, frepple::ProblemBeforeFence, frepple::ProblemPrecedence, frepple::ProblemDemandNotPlanned, frepple::ProblemLate, frepple::ProblemEarly, frepple::ProblemInvalidData, frepple::ProblemShort, frepple::ProblemExcess, frepple::ProblemCapacityOverload, frepple::ProblemCapacityUnderload, frepple::ProblemMaterialShortage, frepple::ProblemMaterialExcess, frepple::PeggingIterator, frepple::SolverMRP, module_forecast::Forecast, module_forecast::ForecastBucket, module_forecast::ForecastSolver, module_lp_solver::LPSolver, frepple::CalendarValue< double >, frepple::CalendarValue< int >, frepple::CalendarValue< string >, frepple::CalendarValue< bool >, and frepple::CalendarPointer< Operation >.

virtual void frepple::utils::Object::setHidden ( bool  b  )  [inline, virtual]

Mark the object as hidden or not. Hidden objects are not exported and are used only as dummy constructs.

Reimplemented in frepple::Operation, frepple::Buffer, frepple::Resource, and frepple::Demand.

Definition at line 3338 of file utils.h.

PyObject * frepple::utils::Object::toXML ( PyObject *  self,
PyObject *  args 
) [static]

Return an XML representation of the object.
If a file object is passed as argument, the representation is directly written to it.
If no argument is given the representation is returned as a string.

Definition at line 459 of file pythonutils.cpp.

virtual void frepple::utils::Object::writeElement ( XMLOutput ,
const Keyword ,
mode  = DEFAULT 
) const [inline, virtual]

The documentation for this class was generated from the following files:

Documentation generated for frePPLe by  doxygen