001/*
002 * $Id: ArrayUtil.java 5936 2018-09-30 19:20:14Z kredel $
003 */
004
005package edu.jas.util;
006
007
008// import org.apache.logging.log4j.Logger;
009import org.apache.logging.log4j.LogManager; 
010
011
012/**
013 * Array utilities. For example copyOf from Java 6. <b>Note:</b> unused at the
014 * moment since it is not working in Java 5.
015 * @author Heinz Kredel
016 */
017public class ArrayUtil {
018
019
020    //private static final Logger logger = LogManager.getLogger(ArrayUtil.class);
021    // private static final boolean debug = logger.isDebugEnabled();
022
023
024    /**
025     * Copy the specified array.
026     * @param original array.
027     * @param newLength new array length.
028     * @return copy of original.
029     */
030    public static <T> T[] copyOf(T[] original, int newLength) {
031        @SuppressWarnings("unchecked")
032        T[] copy = (T[]) new Object[newLength];
033        System.arraycopy(original, 0, copy, 0, Math.min(original.length, newLength));
034        return copy;
035    }
036
037
038    /**
039     * Copy the specified array.
040     * @param original array.
041     * @return copy of original.
042     */
043    public static <T> T[] copyOf(T[] original) {
044        return copyOf(original, original.length);
045    }
046
047}