]> git.argeo.org Git - lgpl/argeo-commons.git/blob - argeo/server/DeserializingEditor.java
Prepare next development cycle
[lgpl/argeo-commons.git] / argeo / server / DeserializingEditor.java
1 package org.argeo.server;
2
3 import java.beans.PropertyEditorSupport;
4 import java.io.StringReader;
5
6 import org.apache.commons.io.IOUtils;
7
8 public class DeserializingEditor extends PropertyEditorSupport {
9 private final Deserializer deserializer;
10 private final Class<?> targetClass;
11
12 public DeserializingEditor(Deserializer deserializer, Class<?> targetClass) {
13 super();
14 this.deserializer = deserializer;
15 this.targetClass = targetClass;
16 }
17
18 @Override
19 public void setAsText(String text) throws IllegalArgumentException {
20 StringReader reader = new StringReader(text);
21 try {
22 setValue(deserializer.deserialize(reader, targetClass));
23 } finally {
24 IOUtils.closeQuietly(reader);
25 }
26 }
27
28 }