GroupDetailsFullPathDeserializer.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.GroupDetails;
import sk.iway.iwcm.doc.GroupsDB;
import sk.iway.iwcm.i18n.Prop;
import sk.iway.iwcm.system.datatable.NotifyBean.NotifyType;
/**
* Deserializuje groupId so zadaneho ID alebo zadanej cesty.
* Pouziva sa pri importe, ak sa napr. importuju sablony z ineho prostredia a priecinky s danym ID neexistuju.
* V takom pripade vytvori priecinok podla zadanej cesty (fullPath).
*/
public class GroupDetailsFullPathDeserializer extends JsonDeserializer<Integer> {
@Override
public Integer deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
String text = p.getText();
Integer groupId = null;
try {
groupId = Integer.parseInt(text);
} catch (Exception ex) {
}
if (groupId == null) {
GroupDetails group = GroupsDB.getInstance().getCreateGroup(text);
if (group != null) {
groupId = group.getGroupId();
Prop prop = Prop.getInstance();
NotifyBean notify = new NotifyBean(prop.getText("templates.import.creategroup.title"), prop.getText("templates.import.creategroup.text", group.getFullPath(), groupId.toString()), NotifyType.INFO);
DatatableRestControllerV2.addNotify(notify);
}
}
if (groupId == null) groupId = -1;
return groupId;
}
}