package ru.hflabs.rcd.web.model.document; import com.google.common.base.Function; import ru.hflabs.rcd.model.Permissioned; import ru.hflabs.rcd.model.document.Dictionary; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlTransient; import java.io.Serializable; import static ru.hflabs.rcd.accessor.Accessors.GROUP_TO_DICTIONARY_INJECTOR; import static ru.hflabs.rcd.model.ModelUtils.hasPermission; /** * Класс <class>DictionaryBean</class> реализует декоратор справочника * * @see Dictionary */ @XmlAccessorType(XmlAccessType.PROPERTY) public class DictionaryBean implements Serializable { private static final long serialVersionUID = 6451127455822062905L; /** Функция создания декоратора */ public static final Function<Dictionary, DictionaryBean> CONVERT = new Function<Dictionary, DictionaryBean>() { @Override public DictionaryBean apply(Dictionary input) { return new DictionaryBean(input); } }; /** Справочник */ private Dictionary delegate; public DictionaryBean() { this(new Dictionary()); } public DictionaryBean(Dictionary delegate) { this.delegate = delegate; } @XmlTransient public Dictionary getDelegate() { return delegate; } public String getId() { return delegate.getId(); } public void setId(String id) { delegate.setId(id); } public String getHistoryId() { return delegate.getHistoryId(); } public void setHistoryId(String historyId) { delegate.setHistoryId(historyId); } public String getGroupId() { return delegate.getGroupId(); } public void setGroupId(String groupId) { delegate.setGroupId(groupId); } public String getName() { return delegate.getName(); } public void setName(String name) { delegate.setName(name); } public String getCode() { return delegate.getCode(); } public void setCode(String code) { delegate.setCode(code); } public String getDescription() { return delegate.getDescription(); } public void setDescription(String description) { delegate.setDescription(description); } public String getVersion() { return delegate.getVersion(); } public void setVersion(String version) { delegate.setVersion(version); } public boolean isWritable() { return hasPermission(GROUP_TO_DICTIONARY_INJECTOR.apply(delegate), Permissioned.PERMISSION_WRITE); } }