/* * Created on 29/giu/2010 * * Copyright 2010 by Andrea Vacondio (andrea.vacondio@gmail.com). * * This file is part of the Sejda source code * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.sejda.core.support.prefix.model; import org.apache.commons.lang3.StringUtils; import org.sejda.model.SejdaFileExtensions; /** * Request for a new name generation. * * @author Andrea Vacondio * */ public final class NameGenerationRequest { private Integer page = null; private Integer fileNumber = null; private String bookmark = null; private String originalName = null; private String extension = null; private String text = null; private NameGenerationRequest(String extension) { if (StringUtils.isBlank(extension)) { throw new IllegalArgumentException("Extension cannot be blank."); } this.extension = extension; } /** * @return a newly created {@link NameGenerationRequest} where the generated name will have a pdf extension. */ public static NameGenerationRequest nameRequest() { return new NameGenerationRequest(SejdaFileExtensions.PDF_EXTENSION); } /** * * @param extension * the extension applied to the generated name, cannot be blank (Ex. pdf, txt). * @return a newly created {@link NameGenerationRequest} */ public static NameGenerationRequest nameRequest(String extension) { return new NameGenerationRequest(extension); } /** * Fluently sets the page * * @param page * @return the current instance */ public NameGenerationRequest page(int page) { this.page = page; return this; } /** * Fluently sets the file number * * @param fileNumber * @return the current instance */ public NameGenerationRequest fileNumber(int fileNumber) { this.fileNumber = fileNumber; return this; } /** * Fluently sets the bookmark * * @param bookmark * @return the current instance */ public NameGenerationRequest bookmark(String bookmark) { this.bookmark = StringUtils.trim(bookmark); return this; } /** * Fluently sets the original file name * * @param originalName * @return the current instance */ public NameGenerationRequest originalName(String originalName) { if (StringUtils.isBlank(originalName)) { throw new IllegalArgumentException("Original name cannot be blank"); } // check if the filename contains '.' and it's at least in second position (Ex. a.pdf) if (originalName.lastIndexOf('.') >= 1) { this.originalName = originalName.substring(0, originalName.lastIndexOf('.')); } else { this.originalName = originalName; } return this; } /** * Fluently sets the text. Called when splitting by text content, passes in the text found in the rectangle * box area on the page right before the split boundary. * * @param text strings found in page areas when splitting by text content * @return the current instance */ public NameGenerationRequest text(String text) { this.text = text; return this; } public Integer getPage() { return page; } public Integer getFileNumber() { return fileNumber; } public String getBookmark() { return bookmark; } public String getOriginalName() { return originalName; } public String getExtension() { return extension; } public String getText() { return text; } }