org.mnode.ical4j.json.jot.JotToDoMapper Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ical4j-json Show documentation
Show all versions of ical4j-json Show documentation
Custom marshalling between iCal4j objects and JSON formats
The newest version!
package org.mnode.ical4j.json.jot;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonToken;
import com.fasterxml.jackson.databind.DeserializationContext;
import net.fortuna.ical4j.model.component.VToDo;
import java.io.IOException;
import java.net.URISyntaxException;
import java.text.ParseException;
public class JotToDoMapper extends AbstractJotCalMapper {
public JotToDoMapper(Class t) {
super(t);
}
@Override
public VToDo deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
VToDo toDo = new VToDo(false);
assertCurrentToken(p, JsonToken.START_OBJECT);
while (!JsonToken.END_OBJECT.equals(p.nextToken())) {
assertCurrentToken(p, JsonToken.FIELD_NAME);
String propertyName = p.currentName();
try {
if (JsonToken.START_ARRAY.equals(p.nextToken())) {
toDo.getProperties().addAll(parsePropertyList(propertyName, p));
} else {
toDo.getProperties().add(parseProperty(propertyName, p));
}
} catch (URISyntaxException | ParseException e) {
throw new IllegalArgumentException(e);
}
}
return toDo;
}
}