#include "ElementData.h" namespace AMDiS { void ElementData::serialize(std::ostream& out) { std::string decoratedType; if (decorated_) { decoratedType = decorated_->getTypeName(); out << decoratedType << "\n"; decorated_->serialize(out); } else { out << "NULL\n"; } } void ElementData::deserialize(std::istream& in) { TEST_EXIT(decorated_ == NULL) ("there are already decorated element data\n"); std::string decoratedType; in >> decoratedType; in.get(); if (decoratedType != "NULL") { decorated_ = CreatorMap<ElementData>::getCreator(decoratedType)->create(); decorated_->deserialize(in); } else { decorated_ = NULL; }; } }