* @throws GoobiException: 1, 2, 6, 7, 254, 1500, 1501, 1502
* ================================================================*/
public int add(String sessionId, String type, int count, HashMap pp) throws GoobiException {
super.add(sessionId, type, count, pp);
Prozess p = ModuleServerForm.getProcessFromShortSession(sessionId);
GoobiProcessProperty gpp = new GoobiProcessProperty(pp);
if (gpp.getName().startsWith("#"))
throw new GoobiException(5, "Parameter not allowed");
/* --------------------------------
* Prozesseigenschaft
* --------------------------------*/
if (type.equals("") || type.equals(isProcess)) {
if (p.getEigenschaften() == null)
p.setEigenschaften(new HashSet<Prozesseigenschaft>());
Prozesseigenschaft pe = new Prozesseigenschaft();
pe.setProzess(p);
pe.setTitel(gpp.getName());
pe.setWert(gpp.getValue());
p.getEigenschaften().add(pe);
}
/* --------------------------------
* Werkstückeigenschaft
* --------------------------------*/
if (type.equals(isWorkpiece)) {
/* wenn auf Werkstück zugegriffen werden soll, was nicht existiert, raus */
if (p.getWerkstueckeSize() - 1 < count)
throw new GoobiException(1500, "Workpiece does not exist");
Werkstueck w = p.getWerkstueckeList().get(count);
if (w.getEigenschaften() == null)
w.setEigenschaften(new HashSet<Werkstueckeigenschaft>());
Werkstueckeigenschaft we = new Werkstueckeigenschaft();
we.setWerkstueck(w);
we.setTitel(gpp.getName());
we.setWert(gpp.getValue());
w.getEigenschaften().add(we);
}
/* --------------------------------
* Scanvorlageneigenschaft
* --------------------------------*/
if (type.equals(isTemplate)) {
/* wenn auf Scanvorlage zugegriffen werden soll, die nicht existiert, raus */
if (p.getVorlagenSize() - 1 < count)
throw new GoobiException(1500, "Template does not exist");
Vorlage v = p.getVorlagenList().get(count);
if (v.getEigenschaften() == null)
v.setEigenschaften(new HashSet<Vorlageeigenschaft>());
Vorlageeigenschaft ve = new Vorlageeigenschaft();
ve.setVorlage(v);
ve.setTitel(gpp.getName());
ve.setWert(gpp.getValue());
v.getEigenschaften().add(ve);
}
try {
new ProzessDAO().save(p);