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 Long} and
* {@link Person}.
*
*
* @author Stefan Schmidt
* @since 0.3
*
*/
public class LongToPerson implements TwoWayConverter {
private PersonService personService;
public LongToPerson(PersonService personService) {
this.personService = personService;
}
public Object convertTargetToSourceClass(Object target, Class sourceClass)
throws Exception {
Person person = (Person) target;
return person.toString();
}
public Object convertSourceToTargetClass(Object source, Class targetClass)
throws Exception {
Long longSource = (Long) source;
if (longSource != null && longSource > 0) {
return personService.find(longSource);
} else {
return null;
}
}
public Class getSourceClass() {
return Long.class;
}
public Class getTargetClass() {
return Person.class;
}
}