private static <T> ArrayList<T> newArrayList(List<T> values) {
        if (values != null) {
            return new ArrayList<T>(values) ;
        }
        else {
            return new ArrayList<T>();
        }
    }