@Override public <O> O deserialise(String source, Class<? extends O> type, Map<String, Object> parameters) throws DeserialiserException { try { ObjectReader reader = reader(type); for (Entry<String, Object> entry : parameters.entrySet()) { reader = reader.withAttribute(entry.getKey(), entry.getValue()); } return reader.readValue(source); } catch (DeserialiserException ex) { throw ex; } catch (IOException ex) { throw new DeserialiserException(ex); } }