/** * Դ�������ƣ�KeyParameter.java * �������Ȩ���������ӹɷ����޹�˾ ��Ȩ���� * ϵͳ���ƣ�JRES Studio * ģ�����ƣ�com.hundsun.ares.studio.jres.ui * ����˵����JRES Studio�Ľ���չ�ֻ�����ܺͱ༭��ع��� * ����ĵ��� * ���ߣ� */ package com.hundsun.ares.studio.ui.validate; import java.util.Arrays; import org.apache.commons.lang.ArrayUtils; import org.apache.commons.lang.builder.HashCodeBuilder; /** * �����ڴ�����е�key�������һ��map��key�������key�Ƕ��ص�<BR> * key(a)�����ڴ������ȡ��key(a,*) key(a,*,*) key(a,*,*,*)...��Ӧ�Ĵ����б� * * @author lvgao * */ public class KeyParameter { final private Object[] key; private KeyParameter[] resolved; public KeyParameter(Object... key) { this.key = key; } /** * ���ؼ�ֵ�����б��� * @return */ public KeyParameter[] resolve() { if (resolved == null) { resolved = new KeyParameter[key.length]; for (int i = 0; i < key.length; i++) { resolved[i] = new KeyParameter(ArrayUtils.subarray(key, 0, i + 1)); } } return resolved; } public boolean contains(KeyParameter key) { return ArrayUtils.contains(resolve(), key); } @Override public boolean equals(Object obj) { if(!(obj instanceof KeyParameter)){ return false; } return Arrays.equals(key, ((KeyParameter)obj).key); } @Override public int hashCode() { return new HashCodeBuilder().append(key).toHashCode(); } }