35 "resourceskill",
"resourceskill",
true,Object::createDefault<ResourceSkill>
41 x.
setDoc(
"frePPLe resourceskill");
45 x.
addMethod(
"toXML",
toXML, METH_VARARGS,
"return a XML representation");
57 try { validate(
ADD); }
75 try { validate(
ADD); }
90 for (Resource::skilllist::const_iterator j = i->getSkills().begin(); j != i->getSkills().end(); ++j)
150 else throw LogicException(
"Incorrect object type during read operation");
156 else throw LogicException(
"Incorrect object type during read operation");
223 Skill* y =
static_cast<Skill*
>(
static_cast<PyObject*
>(field));
239 PyObject* ResourceSkill::create(PyTypeObject* pytype, PyObject* args, PyObject* kwds)
244 PyObject* skill = PyDict_GetItemString(kwds,
"skill");
246 throw DataException(
"resourceskill skill must be of type skill");
249 PyObject* res = PyDict_GetItemString(kwds,
"resource");
251 throw DataException(
"resourceskill resource must be of type resource");
254 PyObject* q1 = PyDict_GetItemString(kwds,
"priority");
259 PyObject* eff_start = PyDict_GetItemString(kwds,
"effective_start");
265 PyObject* eff_end = PyDict_GetItemString(kwds,
"effective_end");
274 static_cast<Skill*>(skill),
275 static_cast<Resource*>(res),
281 return static_cast<PyObject*
>(l);
285 PythonType::evalException();
300 throw DataException(
"Missing resource and kill on a resourceskill");
302 throw DataException(
"Missing skill on a resourceskill on resource '"
303 + res->getName() +
"'");
305 throw DataException(
"Missing resource on a resourceskill on skill '"
306 + skill->getName() +
"'");
311 Skill::resourcelist::const_iterator i = skill->getResources().begin();
312 for (; i != skill->getResources().end(); ++i)
313 if (i->getResource() == res
322 if (i != skill->getResources().end())
324 throw DataException(
"Resourceskill of '" + res->getName() +
"' and '"
325 + skill->getName() +
"' already exists");
332 if (i == skill->getResources().end())
break;
337 if (i == skill->getResources().end())
339 throw DataException(
"Can't remove nonexistent resourceskill of '"
340 + res->getName() +
"' and '" + skill->getName() +
"'");
351 x.
setName(
"resourceSkillIterator");
352 x.
setDoc(
"frePPLe iterator for resource skills");
358 PyObject* ResourceSkillIterator::iternext()
364 if (ir == res->getSkills().end())
return NULL;
371 if (is == skill->getResources().end())
return NULL;
372 result =
const_cast<ResourceSkill*
>(&*is);