⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 messagelist.java

📁 对日软件外包 为东芝做的一个全球商业管理系统
💻 JAVA
字号:
package COMMON;

//import java.util.List;
import java.util.ArrayList;
//import java.util.Iterator;
//import java.util.Collection;
//import java.util.ListIterator;

/**
 * <p>title: MessageList</p>
 * <p>explanation: </p>
 * 
 * @author ym
 * @version 1.0
 */

public class MessageList extends ArrayList {
	private static final int NULL_TYPE = 0;
	private static final int STRING_TYPE = 1;
	private static final int STRING_ARRAY_TYPE = 2;
	private static final int INT_ARRAY_TYPE = 3;
	private static final int OTHER_TYPE = 4;

	// 儔儀儖巜掕偁傝
	public boolean setMessage(Object key, Object value,
								String msgid, int rowid, Object label) {
		return setMessageWithLabel(key, value, msgid, new int[]{rowid}, null,null,label);
	}

	// 儔儀儖偺僫儞僶乕巜掕柍偟乮僆儕僕僫儖乯
	public boolean setMessage(Object key, Object value,
								String msgid, int rowid) {
		return setMessageWithLabel(key, value, msgid, new int[]{rowid}, null,null,null);
	}

	public boolean setMessage(Object key, Object value,
								String msgid, int rowid, Object[] formatArgs) {
		return setMessageWithLabel(key, value, msgid, new int[]{rowid}, formatArgs,null,null);
	}

	public boolean setMessage(Object key, Object value,
								String msgid, int rowid, Object[] formatArgs, Object label) {
		return setMessageWithLabel(key, value, msgid, new int[]{rowid}, formatArgs,null,label);
	}

	public boolean setMessage(Object key, Object value,
								String msgid, int[] rowid) {
		return setMessageWithLabel(key, value, msgid, rowid, null,null,null);
	}

	public boolean setMessage(Object key, Object value,
								String msgid, int[] rowid, Object[] formatArgs) {
									
		return setMessageWithLabel(key, value, msgid, rowid, formatArgs, null, null);
	}
	
	// 儔儀儖偺僫儞僶乕巜掕偁傝

	public boolean setMessageWithLabel(Object key, Object value,
								  String msgid, int rowid, Object labelNum) {
		return setMessageWithLabel(key, value, msgid, new int[]{rowid}, null,labelNum, null);
	}

	public boolean setMessageWithLabel(Object key, Object value,
								  String msgid, int rowid, Object[] formatArgs, Object labelNum) {
		return setMessageWithLabel(key, value, msgid, new int[]{rowid}, formatArgs,labelNum, null);
	}

	public boolean setMessageWithLabel(Object key, Object value,
								  String msgid, int[] rowid, Object labelNum) {
		return setMessageWithLabel(key, value, msgid, rowid, null,labelNum, null);
	}

	public boolean setMessageWithLabel(Object key, Object value,
							  String msgid, int[] rowid, Object[] formatArgs, Object labelNum,
							  Object label) {

		//check start
		//class check
		int keyStatus = getStatus(key);
		int valueStatus = getStatus(value);
		int rowidStatus = getStatus(rowid);
		//int labelStatus = getStatus(label);

		if (keyStatus == INT_ARRAY_TYPE || keyStatus == OTHER_TYPE
			|| valueStatus == INT_ARRAY_TYPE || valueStatus == OTHER_TYPE
			|| rowidStatus == STRING_TYPE || rowidStatus == STRING_ARRAY_TYPE
			|| rowidStatus == OTHER_TYPE) {
			throw new ClassCastException();
		}

		//relation check
		if (keyStatus == STRING_TYPE && valueStatus == STRING_ARRAY_TYPE
			|| keyStatus == STRING_ARRAY_TYPE && valueStatus == STRING_TYPE
			|| keyStatus == NULL_TYPE && valueStatus != NULL_TYPE) {
			throw new IndexOutOfBoundsException();
		}
		if (keyStatus != NULL_TYPE && rowidStatus == NULL_TYPE) {
			throw new ClassCastException();
		}

		//size check
		if (keyStatus == STRING_TYPE) {
			int rowidSize = ((int[])rowid).length;
			if (rowidSize != 1) {
				throw new IndexOutOfBoundsException();
			}
		}
		if (keyStatus == STRING_ARRAY_TYPE) {
			int keySize = ((String[])key).length;
			int rowidSize = ((int[])rowid).length;
			if (keySize != rowidSize) {
				throw new IndexOutOfBoundsException();
			}
			if (valueStatus == STRING_ARRAY_TYPE) {
				int valueSize = ((String[])value).length;
				if (keySize != valueSize) {
					throw new IndexOutOfBoundsException();
				}
			}
		}
		//check end


		MessageElement e = new MessageElement();

		if (keyStatus == NULL_TYPE || keyStatus == STRING_TYPE) {
			e.setKey((String)key);
			e.setLabelNum((String)labelNum);
			if ( label != null ){
				String[] labelText = new String[]{ (String)label };
				e.setLabelText( labelText );
			}
		} else if (keyStatus == STRING_ARRAY_TYPE) {
			e.setKeys((String[])key);
			e.setLabelNums((String[])labelNum);	
			if ( label != null ){
				e.setLabelText( (String[])label );
			}
		}

		if (valueStatus == NULL_TYPE || valueStatus == STRING_TYPE) {
			e.setValue((String)value);
		} else if (valueStatus == STRING_ARRAY_TYPE) {
			e.setValues((String[])value);
		}

		e.setMsgId(msgid);
		e.setRowids(rowid);
		e.setFormatArgs(formatArgs);

		return add(e);
	}

	private int getStatus(Object obj) {
		int status;
		if (obj == null) {
			status = NULL_TYPE;
		} else {
			if (obj instanceof String) {
				status = STRING_TYPE;
			} else if (obj instanceof String[]) {
				status = STRING_ARRAY_TYPE;
			} else if (obj instanceof int[]) {
				status = INT_ARRAY_TYPE;
			} else {
				status = OTHER_TYPE;
			}
		}
		return status;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -