package org.synyx.urlaubsverwaltung.web; import org.synyx.urlaubsverwaltung.core.person.Person; import org.synyx.urlaubsverwaltung.core.person.PersonService; import java.beans.PropertyEditorSupport; import java.util.Optional; /** * Convert {@link Person}'s id to {@link Person} object. * * @author Aljona Murygina - murygina@synyx.de */ public class PersonPropertyEditor extends PropertyEditorSupport { private final PersonService personService; public PersonPropertyEditor(PersonService personService) { this.personService = personService; } @Override public String getAsText() { if (this.getValue() == null) { return ""; } return ((Person) this.getValue()).getId().toString(); } @Override public void setAsText(String text) { Integer id = Integer.valueOf(text); Optional<Person> person = personService.getPersonByID(id); if (person.isPresent()) { setValue(person.get()); } else { setValue(null); } } }