DECLARE_EXPORT int Skill::setattro(const Attribute& attr, const PythonObject& field) { if (attr.isA(Tags::tag_name)) setName(field.getString()); else if (attr.isA(Tags::tag_source)) setSource(field.getString()); else return -1; // Error return 0; // OK }
DECLARE_EXPORT int SetupMatrix::Rule::setattro(const Attribute& attr, const PythonObject& field) { if (attr.isA(Tags::tag_priority)) setPriority(field.getInt()); else if (attr.isA(Tags::tag_fromsetup)) setFromSetup(field.getString()); else if (attr.isA(Tags::tag_tosetup)) setToSetup(field.getString()); else if (attr.isA(Tags::tag_duration)) setDuration(field.getTimeperiod()); else if (attr.isA(Tags::tag_cost)) setCost(field.getDouble()); else return -1; // Error return 0; // OK }
DECLARE_EXPORT int Solver::setattro(const Attribute& attr, const PythonObject& field) { if (attr.isA(Tags::tag_name)) setName(field.getString()); else if (attr.isA(Tags::tag_loglevel)) setLogLevel(field.getInt()); else return -1; // Error return 0; // OK }
DECLARE_EXPORT int Item::setattro(const Attribute& attr, const PythonObject& field) { if (attr.isA(Tags::tag_name)) setName(field.getString()); else if (attr.isA(Tags::tag_description)) setDescription(field.getString()); else if (attr.isA(Tags::tag_category)) setCategory(field.getString()); else if (attr.isA(Tags::tag_subcategory)) setSubCategory(field.getString()); else if (attr.isA(Tags::tag_price)) setPrice(field.getDouble()); else if (attr.isA(Tags::tag_owner)) { if (!field.check(Item::metadata)) { PyErr_SetString(PythonDataException, "item owner must be of type item"); return -1; } Item* y = static_cast<Item*>(static_cast<PyObject*>(field)); setOwner(y); } else if (attr.isA(Tags::tag_operation)) { if (!field.check(Operation::metadata)) { PyErr_SetString(PythonDataException, "item operation must be of type operation"); return -1; } Operation* y = static_cast<Operation*>(static_cast<PyObject*>(field)); setOperation(y); } else if (attr.isA(Tags::tag_hidden)) setHidden(field.getBool()); else return -1; return 0; }
DECLARE_EXPORT int Location::setattro(const Attribute& attr, const PythonObject& field) { if (attr.isA(Tags::tag_name)) setName(field.getString()); else if (attr.isA(Tags::tag_description)) setDescription(field.getString()); else if (attr.isA(Tags::tag_category)) setCategory(field.getString()); else if (attr.isA(Tags::tag_subcategory)) setSubCategory(field.getString()); else if (attr.isA(Tags::tag_owner)) { if (!field.check(Location::metadata)) { PyErr_SetString(PythonDataException, "location owner must be of type location"); return -1; } Location* y = static_cast<Location*>(static_cast<PyObject*>(field)); setOwner(y); } else if (attr.isA(Tags::tag_available)) { if (!field.check(CalendarDouble::metadata)) { PyErr_SetString(PythonDataException, "location availability must be of type double calendar"); return -1; } CalendarDouble* y = static_cast<CalendarDouble*>(static_cast<PyObject*>(field)); setAvailable(y); } else if (attr.isA(Tags::tag_hidden)) setHidden(field.getBool()); else return -1; return 0; }