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)
151 else throw LogicException(
"Incorrect object type during read operation");
157 else throw LogicException(
"Incorrect object type during read operation");
224 Skill* y =
static_cast<Skill*
>(
static_cast<PyObject*
>(field));
240 PyObject* ResourceSkill::create(PyTypeObject* pytype, PyObject* args, PyObject* kwds)
245 PyObject* skill = PyDict_GetItemString(kwds,
"skill");
247 throw DataException(
"resourceskill skill must be of type skill");
250 PyObject* res = PyDict_GetItemString(kwds,
"resource");
252 throw DataException(
"resourceskill resource must be of type resource");
255 PyObject* q1 = PyDict_GetItemString(kwds,
"priority");
260 PyObject* eff_start = PyDict_GetItemString(kwds,
"effective_start");
266 PyObject* eff_end = PyDict_GetItemString(kwds,
"effective_end");
275 static_cast<Skill*>(skill),
276 static_cast<Resource*>(res),
282 return static_cast<PyObject*
>(l);
286 PythonType::evalException();
301 throw DataException(
"Missing resource and kill on a resourceskill");
303 throw DataException(
"Missing skill on a resourceskill on resource '"
304 + res->getName() +
"'");
306 throw DataException(
"Missing resource on a resourceskill on skill '"
307 + skill->getName() +
"'");
312 Skill::resourcelist::const_iterator i = skill->getResources().begin();
313 for (; i != skill->getResources().end(); ++i)
314 if (i->getResource() == res
323 if (i != skill->getResources().end())
325 throw DataException(
"Resourceskill of '" + res->getName() +
"' and '"
326 + skill->getName() +
"' already exists");
333 if (i == skill->getResources().end())
break;
338 if (i == skill->getResources().end())
340 throw DataException(
"Can't remove nonexistent resourceskill of '"
341 + res->getName() +
"' and '" + skill->getName() +
"'");
352 x.
setName(
"resourceSkillIterator");
353 x.
setDoc(
"frePPLe iterator for resource skills");
359 PyObject* ResourceSkillIterator::iternext()
365 if (ir == res->getSkills().end())
return NULL;
372 if (is == skill->getResources().end())
return NULL;
373 result =
const_cast<ResourceSkill*
>(&*is);