001package org.opengion.hayabusa.io; 002 003import java.io.File; 004 005import org.opengion.fukurou.model.FileOperation; 006import org.opengion.fukurou.model.FileOperationFactory; 007import org.opengion.fukurou.util.StringUtil; 008import org.opengion.hayabusa.common.HybsSystem; 009 010/** 011 * クラウドを含むファイル操作クラスの生成 012 * 013 * 直接fukurouをCallしてもよいのですが、hayabusaからの呼び出しではシステムリソースを参照する必要があるため 014 * ラッパー的にこのクラスを経由してCallする事でシステムリソースが使われるようにしておきます。 015 * (タグ以外からも呼び出されるため、commonTagSupportではなく専用クラスをioパッケージに作成しています) 016 * 017 * ローカルのファイルを扱いたい場合は、pluginにDEFAULTを指定してください。 018 * 019 * @og.rev 5.10.8.0 (2019/02/01) 新規作成 020 * @og.group 021 * 022 * @version 5.0 023 * @author Takahashi Masakazu 024 * @since JDK7.0 025 */ 026public class HybsFileOperationFactory { 027 private static String defPlugin=HybsSystem.sys("CLOUD_TARGET"); 028 private static String defBucket=HybsSystem.sys("CLOUD_BUCKET"); 029 030 /** 031 * コンストラクタはprivate化しておきます。 032 */ 033 private HybsFileOperationFactory(){ 034 // コンストラクタ 035 } 036 037 /** 038 * fukurouのFileOperationFactoryを呼び出してFOInterfaceを取得します。 039 * plugin,buketを指定しない場合はシステムリソースを利用します。 040 * 041 * @param plugin プラグイン名 042 * @param bucket バケット名 043 * @param path ファイルパス 044 * @return FileOperationインスタンス 045 */ 046 public static FileOperation create(String plugin, String bucket, String path) { 047 return FileOperationFactory.newStorageOperation( StringUtil.nval(plugin, defPlugin), StringUtil.nval(bucket, defBucket), path ); 048 } 049 050 /** 051 * ディレクトリとファイル名を指定用です。 052 * 053 * @param plugin プラグイン名 054 * @param bucket バケット名 055 * @param dir ディレクトリパス 056 * @param file ファイル名 057 * @return FileOperationインスタンス 058 */ 059 public static FileOperation create(String plugin, String bucket, String dir, String file) { 060 StringBuilder sb = new StringBuilder(HybsSystem.BUFFER_SMALL); 061 sb.append(dir).append(HybsSystem.FS).append(file); 062 return create(plugin, bucket, sb.toString()); 063 } 064 065 /** 066 * FileOperation(ディレクトリ)とファイル名を指定用です。 067 * 068 * @param plugin プラグイン名 069 * @param bucket バケット名 070 * @param dir ファイル(ディレクトリパス取得) 071 * @param file ファイル名 072 * @return FileOperationインスタンス 073 */ 074 public static FileOperation create(String plugin, String bucket, File dir, String file) { 075 StringBuilder sb = new StringBuilder(HybsSystem.BUFFER_SMALL); 076 sb.append(dir.getPath()).append(HybsSystem.FS).append(file); 077 return create(plugin, bucket, sb.toString()); 078 } 079 080}