/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：物流管理システム
*   モジュール名    ：JDKStockMap
*   ソースファイル名：JDKStockMap.java
*   作成者          ：富士通
*   日付            ：2012年04月16日
*＜機能概要＞
*   構造化されたキーの在庫情報を保持します。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v3.00.00    2012/04/16   下原        ANK-0316-00-00
*
**********************************************************************/
package com.fujitsu.futurity.bp.custom.common;

/**
 * 構造化されたキーの在庫情報を保持します。
 * @author 909139
 */
public class JDKStockMap extends JDKStructuredMap<String, Integer>{

	/**
	 * キー値が存在するかどうかを判断
	 * @param keies キー
	 * @return 存在判定
	 */
	public boolean hasKey(String...keies)
	{
		JDKStructuredMap<String, Integer> val = get(keies);
		return !val.isNew();
	}
	
	/**
	 * 在庫を減らす
	 * @param n 減らす数
	 * @param keies 減らすキー
	 */
	public void decrease(Integer n, String...keies)
	{
		if (!hasKey(keies))
		{
			return ;
		}
		Integer now = getValue(keies);
		if (now == null) {
			now = 0;
			setValue(now, keies);
		}
		now -= n;
		setValue(now, keies);
	}
	
	/**
	 * 在庫がマイナスかどうかを判断します。
	 * @param keies キー
	 * @return 在庫がマイナスかどうか
	 */
	public boolean isNegative(String...keies)
	{
		if (!hasKey(keies))
		{
			return true;
		}
		return getValue(keies) < 0;
	}
}
