package ru.hflabs.rcd.web.model.transfer; import org.springframework.util.StringUtils; import ru.hflabs.rcd.backend.console.preference.FilePreference; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlTransient; import java.io.Serializable; /** * Класс <class>TransferDictionaryDescriptor</class> реализует базовый декоратор транспорта справочника * * @author Nazin Alexander * @see FilePreference */ @XmlAccessorType(XmlAccessType.PROPERTY) public abstract class TransferDictionaryDescriptor<D extends FilePreference> implements Serializable { private static final long serialVersionUID = -224529462735837210L; /** Настройки транспорта импорта */ protected final D delegate; public TransferDictionaryDescriptor(D delegate) { this.delegate = delegate; } @XmlTransient public D getDelegate() { return delegate; } @NotNull public String getEncoding() { return delegate.getEncoding(); } public void setEncoding(String encoding) { delegate.setEncoding(encoding); } @NotNull @Size(min = 1, max = 1) public String getDelimiter() { return String.valueOf(delegate.getDelimiter()); } public void setDelimiter(String delimiter) { delegate.setDelimiter(StringUtils.hasText(delimiter) ? delimiter.charAt(0) : D.DEFAULT_DELIMITER); } @NotNull @Size(min = 1, max = 1) public String getQuote() { return String.valueOf(delegate.getQuote()); } public void setQuote(String quote) { delegate.setQuote(StringUtils.hasText(quote) ? quote.charAt(0) : D.DEFAULT_QUOTE); } }