package won.protocol.message;
import org.apache.jena.query.Dataset;
import org.apache.jena.query.DatasetFactory;
import org.apache.jena.riot.Lang;
import org.apache.jena.riot.RDFDataMgr;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.StringReader;
/**
* User: ypanchenko
* Date: 04.08.2014
*/
public class WonMessageDecoder
{
private static final Logger logger = LoggerFactory.getLogger(WonMessageDecoder.class);
public static WonMessage decodeFromJsonLd(String message) {
return decode(Lang.JSONLD, message);
}
public static WonMessage decode(Lang lang, String message) {
if (message == null || message.equals("")) {
logger.warn("cannot decode empty or null string to message");
return null;
}
Dataset dataset = DatasetFactory.createGeneral();
StringReader sr = new StringReader(message);
RDFDataMgr.read(dataset, sr, null, lang);
return decodeFromDataset(dataset);
}
public static WonMessage decodeFromDataset(Dataset message) {
return new WonMessage(message);
}
}