All Downloads are FREE. Search and download functionalities are using the official Maven repository.

nablarch.fw.web.upload.PartInfoHolder Maven / Gradle / Ivy

package nablarch.fw.web.upload;

import nablarch.core.log.Logger;
import nablarch.core.log.LoggerManager;
import nablarch.core.util.map.MapWrapper;

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * パート情報{@link PartInfo}を一時的に集約し保持するMapクラス。
* 同名のキーに複数のパートを保持することができる。 * * @author T.Kawasaki */ public class PartInfoHolder extends MapWrapper> { /** ロガー */ private static final Logger LOGGER = LoggerManager.get(PartInfoHolder.class); /** 空のインスタンス */ private static final PartInfoHolder EMPTY_INSTANCE = new PartInfoHolder(Collections.>emptyMap()); // Collections.emptyMap()はunmodifiable /** パート情報を格納するMap */ private final Map> delegate; /** コンストラクタ。 */ public PartInfoHolder() { this(new HashMap>()); } /** * コンストラクタ。 * * @param baseMap パート情報を格納するMap */ PartInfoHolder(Map> baseMap) { delegate = baseMap; } /** * 空のインスタンス(パート情報を持たない)を取得する。 * * @return 空のインスタンス */ static PartInfoHolder getEmptyInstance() { return EMPTY_INSTANCE; } /** * パート情報を追加する。
* キーには、そのパート情報が保持する名称を使用する。 * * @param part パート情報 */ public void addPart(PartInfo part) { addPart(part.getName(), part); } /** * パート情報を追加する。 * * @param name キー名 * @param part パート情報 */ void addPart(String name, PartInfo part) { if (containsKey(name)) { get(name).add(part); } else { List list = new ArrayList(); list.add(part); put(name, list); } } /** 格納したパートの一時ファイルを削除する。 */ void cleanup() { for (List list : values()) { for (PartInfo e : list) { e.clean(); } } } /** 自身が保持する全てのパート情報をログ出力する。 */ void logAllPart() { if (!LOGGER.isInfoEnabled()) { return; } List logMessages = new ArrayList(); for (List list : values()) { for (PartInfo part : list) { logMessages.add(part.toString()); } } LOGGER.logInfo(logMessages.size() + " file(s) uploaded."); for (String msg : logMessages) { LOGGER.logInfo("\t" + msg); } } /** {@inheritDoc} */ @Override public Map> getDelegateMap() { return delegate; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy