/* * Aipo is a groupware program developed by TOWN, Inc. * Copyright (C) 2004-2015 TOWN, Inc. * http://www.aipo.com * * 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 com.aimluck.eip.services.storage; import java.io.FileNotFoundException; import java.io.InputStream; import java.util.Calendar; import org.apache.jetspeed.services.logging.JetspeedLogFactoryService; import org.apache.jetspeed.services.logging.JetspeedLogger; import org.apache.jetspeed.services.resources.JetspeedResources; /** * */ public abstract class ALStorageHandler { @SuppressWarnings("unused") private static final JetspeedLogger logger = JetspeedLogFactoryService .getLogger(ALStorageHandler.class.getName()); public static final String FOLDER_TMP_FOR_ATTACHMENT_FILES = JetspeedResources.getString("aipo.tmp.fileupload.attachment.directory", ""); public abstract void createNewTmpFile(InputStream is, int uid, String dir, String fileName, String realFileName); public abstract void createNewFile(InputStream is, String folderPath, String filename); public long getTmpFolderSize(int uid, String dir) { return getFolderSize(FOLDER_TMP_FOR_ATTACHMENT_FILES, uid + ALStorageService.separator() + dir); } public boolean copyTmpFile(int uid, String srcDir, String srcFileName, String destRootPath, String destDir, String destFileName) { return copyFile(FOLDER_TMP_FOR_ATTACHMENT_FILES, uid + ALStorageService.separator() + srcDir, srcFileName, destRootPath, destDir, destFileName); } public boolean deleteTmpFolder(int uid, String dir) { return deleteFolder(FOLDER_TMP_FOR_ATTACHMENT_FILES, uid + ALStorageService.separator() + dir); } public InputStream getTmpFile(int uid, String folderName, String finename) throws FileNotFoundException { return getFile(FOLDER_TMP_FOR_ATTACHMENT_FILES, uid + ALStorageService.separator() + folderName, finename); } public abstract boolean copyFile(String srcRootPath, String srcDir, String srcFileName, String destRootPath, String destDir, String destFileName); public abstract long getFolderSize(String rootPath, String dir); public abstract long getFileSize(String rootPath, String dir, String filename); public abstract boolean deleteFolder(String rootPath, String dir); public abstract boolean deleteFile(String rootPath, String dir, String filename); public abstract boolean deleteFile(String filePath); public abstract InputStream getFile(String rootPath, String dir, String fineName) throws FileNotFoundException; public abstract InputStream getFile(String filePath) throws FileNotFoundException; public abstract String getDocumentPath(String rootPath, String categoryKey); public abstract String separator(); public abstract void saveFile(InputStream is, String folderPath, String fileName); public abstract boolean deleteOldFolder(String folderPath, Calendar cal); public abstract void createNewFile(InputStream inputStream, String filepath); }