|      //package com.witframework.util;
 
 import java.lang.reflect.Array;
 
 public final class ArrayExpander {
 public static Object merge(Object array1,Object array2){
 if (array1 == null) {
 return null;
 }
 if (array2 == null) {
 return array1;
 }
 Class c = array1.getClass();
 if(c.isArray()&&array2.getClass().isArray()){
 Class cc = c.getComponentType();
 Object newArray = Array.newInstance(cc, Array.getLength(array1)+Array.getLength(array2));
 System.arraycopy(array1, 0, newArray, 0, Array.getLength(array1));
 System.arraycopy(array2, 0, newArray, Array.getLength(array1), Array.getLength(array2));
 return newArray;
 }else {
 throw new ClassCastException("need  array");
 }
 
 }
 public static Object expand(Object array, int newSize) {
 if (array == null) {
 return null;
 }
 Class c = array.getClass();
 if (c.isArray()) {
 int len = Array.getLength(array);
 if (len >= newSize) {
 return array;
 } else {
 Class cc = c.getComponentType();
 Object newArray = Array.newInstance(cc, newSize);
 System.arraycopy(array, 0, newArray, 0, len);
 return newArray;
 }
 } else {
 throw new ClassCastException("need  array");
 }
 }
 public static Object expandAtHead(Object array, int newSize) {
 if (array == null) {
 return null;
 }
 Class c = array.getClass();
 if (c.isArray()) {
 int len = Array.getLength(array);
 if (len >= newSize) {
 return array;
 } else {
 Class cc = c.getComponentType();
 Object newArray = Array.newInstance(cc, newSize);
 System.arraycopy(array,0, newArray, newSize-len, len);
 return newArray;
 }
 } else {
 throw new ClassCastException("need  array");
 }
 }
 }
 
 
 
 
 
 
 
 |