001package org.opengion.hayabusa.io;
002
003import org.opengion.fukurou.model.FileOperationFactory;
004import org.opengion.fukurou.model.FileOperation;
005import org.opengion.fukurou.util.StringUtil;
006import org.opengion.hayabusa.common.HybsSystem;
007
008/**
009 * クラウド別のクラス生成
010 * 
011 * @og.rev 5.10.8.0 (2019/02/01) 新規作成
012 * @og.group
013 *
014 * @version 5.0
015 * @author Takahashi Masakazu
016 * @sinse JDK7.0
017 */
018public class HybsFileOperationFactory {
019        private static String defPlugin=HybsSystem.sys("CLOUD_TARGET");
020        
021        /**
022         * コンストラクタはprivate化しておきます。
023         */
024        private HybsFileOperationFactory(){
025                // コンストラクタ
026        }
027
028        /**
029         * fukurouのFileOperationFactoryを呼び出してFOInterfaceを取得します。
030         * plugin,buketを指定しない場合はシステムリソースを利用します。
031         * 
032         * @param plugin
033         * @param buket
034         * @param path
035         * @return FileOperationインタフェース
036         */
037        public static FileOperation create(String plugin, String buket, String path) {
038                return FileOperationFactory.newStorageOperation(StringUtil.nval(plugin, defPlugin), buket, path);
039        }
040        
041        /**
042         * ディレクトリとファイル名を指定用です。
043         * 
044         * @param plugin
045         * @param buket
046         * @param dir
047         * @param file
048         * @return FileOperationインタフェース
049         */
050        public static FileOperation create(String plugin, String buket, String dir, String file) {
051                StringBuilder sb = new StringBuilder(HybsSystem.BUFFER_SMALL);
052                sb.append(dir).append(HybsSystem.FS).append(file);
053                return create(plugin, buket, sb.toString());
054        }
055        
056        /**
057         * FileOperation(ディレクトリ)とファイル名を指定用です。
058         * 
059         * @param plugin
060         * @param buket
061         * @param dir
062         * @param file
063         * @return FileOperationインタフェース
064         */
065        public static FileOperation create(String plugin, String buket, FileOperation dir, String file) {
066                StringBuilder sb = new StringBuilder(HybsSystem.BUFFER_SMALL);
067                sb.append(dir.getPath()).append(HybsSystem.FS).append(file);
068                return create(plugin, buket, sb.toString());
069        }
070}