private JsonFactory jsonFactory = new JsonFactory();
private ObjectCodec objectCodec = new ObjectMapper();
+ private JsonObjectFactory defaultObjectFactory = new JsonObjectFactoryImpl();
private String typeField = "type";
private List<JsonObjectFactory> objectFactories = new ArrayList<JsonObjectFactory>();
+ @SuppressWarnings("unchecked")
@Override
public T deserialize(JsonParser parser, DeserializationContext ctxt)
throws IOException, JsonProcessingException {
generator.writeTree(root);
String str = writer.toString();
- if (log.isDebugEnabled())
+ if (log.isTraceEnabled())
log.debug("Deserialize object of type=" + type + ", str=" + str);
JsonObjectFactory objectFactory = null;
}
if (objectFactory == null)
+ objectFactory = defaultObjectFactory;
+
+ if (objectFactory == null || !objectFactory.supports(type))
throw new ArgeoServerException(
"Cannot find JSON object factory for type " + type);
this.objectFactories = objectFactories;
}
+ public List<JsonObjectFactory> getObjectFactories() {
+ return objectFactories;
+ }
+
}