package net.stsmedia.financemanager.web.converters;
import net.stsmedia.financemanager.domain.Person;
import net.stsmedia.financemanager.service.PersonService;
import org.springframework.binding.convert.converters.TwoWayConverter;
/**
* A editor which allows the translation between {@link String} and
* {@link Person}.
*
*
* @author Stefan Schmidt
* @since 0.3
*
*/
public class StringToPerson implements TwoWayConverter {
private PersonService personService;
public StringToPerson(PersonService personService) {
this.personService = personService;
}
public Object convertTargetToSourceClass(Object target, Class sourceClass)
throws Exception {
String stringSource = (String) target;
if (stringSource != null && stringSource.length() > 0) {
return personService.find(Long.valueOf(stringSource));
} else {
return null;
}
}
public Object convertSourceToTargetClass(Object source, Class targetClass)
throws Exception {
if(source != null)
return ((Person) source).toString();
else return null;
}
public Class getSourceClass() {
return String.class;
}
public Class getTargetClass() {
return Person.class;
}
}