TemplateGroupNameDeserializer.java
package sk.iway.iwcm.system.datatable;
import java.io.IOException;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import sk.iway.iwcm.doc.TemplatesGroupBean;
import sk.iway.iwcm.doc.TemplatesGroupDB;
import sk.iway.iwcm.i18n.Prop;
import sk.iway.iwcm.system.datatable.NotifyBean.NotifyType;
/**
* Deserializuje TemplatesGroup ID so zadaneho ID alebo zadanej cesty.
* Pouziva sa pri importe, ak sa napr. importuju sablony z ineho prostredia a skupina sablon neexistuje.
* V takom pripade vytvori prazdnu skupinu podla zadaneho nazvu a vrati id.
*/
public class TemplateGroupNameDeserializer extends JsonDeserializer<Integer> {
@Override
public Integer deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
String text = p.getText();
Integer id = null;
try {
id = Integer.parseInt(text);
} catch (Exception ex) {
}
if (id == null) {
TemplatesGroupBean entity = TemplatesGroupDB.getTemplatesGroupByName(text);
if (entity==null) {
TemplatesGroupDB tgdb = new TemplatesGroupDB();
entity = new TemplatesGroupBean();
entity.setName(text);
tgdb.save(entity);
}
if (entity.getId()!=null) id = entity.getId().intValue();
Prop prop = Prop.getInstance();
if (id != null) {
NotifyBean notify = new NotifyBean(prop.getText("templates.import.createTemplatesGroup.title"), prop.getText("templates.import.createTemplatesGroup.text", entity.getName(), id.toString()), NotifyType.INFO);
DatatableRestControllerV2.addNotify(notify);
}
}
if (id == null) id = -1;
return id;
}
}