Revert SQLiteQueryBuilder for now.
am: 6c90f1ded2
Change-Id: Ib8bfccd0d088b1a4c453b62c6527ca14cbadee41
This commit is contained in:
@@ -261,6 +261,13 @@ public abstract class ContentResolver {
|
||||
*/
|
||||
public static final String QUERY_ARG_SQL_SORT_ORDER = "android:query-arg-sql-sort-order";
|
||||
|
||||
/** {@hide} */
|
||||
public static final String QUERY_ARG_SQL_GROUP_BY = "android:query-arg-sql-group-by";
|
||||
/** {@hide} */
|
||||
public static final String QUERY_ARG_SQL_HAVING = "android:query-arg-sql-having";
|
||||
/** {@hide} */
|
||||
public static final String QUERY_ARG_SQL_LIMIT = "android:query-arg-sql-limit";
|
||||
|
||||
/**
|
||||
* Specifies the list of columns against which to sort results. When first column values
|
||||
* are identical, records are then sorted based on second column values, and so on.
|
||||
|
||||
@@ -19,6 +19,7 @@ package android.content;
|
||||
import android.annotation.UnsupportedAppUsage;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
import android.util.ArrayMap;
|
||||
import android.util.Log;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -33,17 +34,21 @@ import java.util.Set;
|
||||
public final class ContentValues implements Parcelable {
|
||||
public static final String TAG = "ContentValues";
|
||||
|
||||
/** Holds the actual values */
|
||||
/**
|
||||
* @hide
|
||||
* @deprecated kept around for lame people doing reflection
|
||||
*/
|
||||
@Deprecated
|
||||
@UnsupportedAppUsage
|
||||
private HashMap<String, Object> mValues;
|
||||
|
||||
private final ArrayMap<String, Object> mMap;
|
||||
|
||||
/**
|
||||
* Creates an empty set of values using the default initial size
|
||||
*/
|
||||
public ContentValues() {
|
||||
// Choosing a default size of 8 based on analysis of typical
|
||||
// consumption by applications.
|
||||
mValues = new HashMap<String, Object>(8);
|
||||
mMap = new ArrayMap<>();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -52,7 +57,7 @@ public final class ContentValues implements Parcelable {
|
||||
* @param size the initial size of the set of values
|
||||
*/
|
||||
public ContentValues(int size) {
|
||||
mValues = new HashMap<String, Object>(size, 1.0f);
|
||||
mMap = new ArrayMap<>(size);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -61,19 +66,24 @@ public final class ContentValues implements Parcelable {
|
||||
* @param from the values to copy
|
||||
*/
|
||||
public ContentValues(ContentValues from) {
|
||||
mValues = new HashMap<String, Object>(from.mValues);
|
||||
mMap = new ArrayMap<>(from.mMap);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a set of values copied from the given HashMap. This is used
|
||||
* by the Parcel unmarshalling code.
|
||||
*
|
||||
* @param values the values to start with
|
||||
* {@hide}
|
||||
* @hide
|
||||
* @deprecated kept around for lame people doing reflection
|
||||
*/
|
||||
@Deprecated
|
||||
@UnsupportedAppUsage
|
||||
private ContentValues(HashMap<String, Object> values) {
|
||||
mValues = values;
|
||||
private ContentValues(HashMap<String, Object> from) {
|
||||
mMap = new ArrayMap<>();
|
||||
mMap.putAll(from);
|
||||
}
|
||||
|
||||
/** {@hide} */
|
||||
private ContentValues(Parcel in) {
|
||||
mMap = new ArrayMap<>(in.readInt());
|
||||
in.readArrayMap(mMap, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -81,12 +91,17 @@ public final class ContentValues implements Parcelable {
|
||||
if (!(object instanceof ContentValues)) {
|
||||
return false;
|
||||
}
|
||||
return mValues.equals(((ContentValues) object).mValues);
|
||||
return mMap.equals(((ContentValues) object).mMap);
|
||||
}
|
||||
|
||||
/** {@hide} */
|
||||
public ArrayMap<String, Object> getValues() {
|
||||
return mMap;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return mValues.hashCode();
|
||||
return mMap.hashCode();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -96,7 +111,7 @@ public final class ContentValues implements Parcelable {
|
||||
* @param value the data for the value to put
|
||||
*/
|
||||
public void put(String key, String value) {
|
||||
mValues.put(key, value);
|
||||
mMap.put(key, value);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -105,7 +120,7 @@ public final class ContentValues implements Parcelable {
|
||||
* @param other the ContentValues from which to copy
|
||||
*/
|
||||
public void putAll(ContentValues other) {
|
||||
mValues.putAll(other.mValues);
|
||||
mMap.putAll(other.mMap);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -115,7 +130,7 @@ public final class ContentValues implements Parcelable {
|
||||
* @param value the data for the value to put
|
||||
*/
|
||||
public void put(String key, Byte value) {
|
||||
mValues.put(key, value);
|
||||
mMap.put(key, value);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -125,7 +140,7 @@ public final class ContentValues implements Parcelable {
|
||||
* @param value the data for the value to put
|
||||
*/
|
||||
public void put(String key, Short value) {
|
||||
mValues.put(key, value);
|
||||
mMap.put(key, value);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -135,7 +150,7 @@ public final class ContentValues implements Parcelable {
|
||||
* @param value the data for the value to put
|
||||
*/
|
||||
public void put(String key, Integer value) {
|
||||
mValues.put(key, value);
|
||||
mMap.put(key, value);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -145,7 +160,7 @@ public final class ContentValues implements Parcelable {
|
||||
* @param value the data for the value to put
|
||||
*/
|
||||
public void put(String key, Long value) {
|
||||
mValues.put(key, value);
|
||||
mMap.put(key, value);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -155,7 +170,7 @@ public final class ContentValues implements Parcelable {
|
||||
* @param value the data for the value to put
|
||||
*/
|
||||
public void put(String key, Float value) {
|
||||
mValues.put(key, value);
|
||||
mMap.put(key, value);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -165,7 +180,7 @@ public final class ContentValues implements Parcelable {
|
||||
* @param value the data for the value to put
|
||||
*/
|
||||
public void put(String key, Double value) {
|
||||
mValues.put(key, value);
|
||||
mMap.put(key, value);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -175,7 +190,7 @@ public final class ContentValues implements Parcelable {
|
||||
* @param value the data for the value to put
|
||||
*/
|
||||
public void put(String key, Boolean value) {
|
||||
mValues.put(key, value);
|
||||
mMap.put(key, value);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -185,7 +200,7 @@ public final class ContentValues implements Parcelable {
|
||||
* @param value the data for the value to put
|
||||
*/
|
||||
public void put(String key, byte[] value) {
|
||||
mValues.put(key, value);
|
||||
mMap.put(key, value);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -194,7 +209,7 @@ public final class ContentValues implements Parcelable {
|
||||
* @param key the name of the value to make null
|
||||
*/
|
||||
public void putNull(String key) {
|
||||
mValues.put(key, null);
|
||||
mMap.put(key, null);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -203,7 +218,7 @@ public final class ContentValues implements Parcelable {
|
||||
* @return the number of values
|
||||
*/
|
||||
public int size() {
|
||||
return mValues.size();
|
||||
return mMap.size();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -214,7 +229,7 @@ public final class ContentValues implements Parcelable {
|
||||
* TODO: consider exposing this new method publicly
|
||||
*/
|
||||
public boolean isEmpty() {
|
||||
return mValues.isEmpty();
|
||||
return mMap.isEmpty();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -223,14 +238,14 @@ public final class ContentValues implements Parcelable {
|
||||
* @param key the name of the value to remove
|
||||
*/
|
||||
public void remove(String key) {
|
||||
mValues.remove(key);
|
||||
mMap.remove(key);
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes all values.
|
||||
*/
|
||||
public void clear() {
|
||||
mValues.clear();
|
||||
mMap.clear();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -240,7 +255,7 @@ public final class ContentValues implements Parcelable {
|
||||
* @return {@code true} if the value is present, {@code false} otherwise
|
||||
*/
|
||||
public boolean containsKey(String key) {
|
||||
return mValues.containsKey(key);
|
||||
return mMap.containsKey(key);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -252,7 +267,7 @@ public final class ContentValues implements Parcelable {
|
||||
* was previously added with the given {@code key}
|
||||
*/
|
||||
public Object get(String key) {
|
||||
return mValues.get(key);
|
||||
return mMap.get(key);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -262,7 +277,7 @@ public final class ContentValues implements Parcelable {
|
||||
* @return the String for the value
|
||||
*/
|
||||
public String getAsString(String key) {
|
||||
Object value = mValues.get(key);
|
||||
Object value = mMap.get(key);
|
||||
return value != null ? value.toString() : null;
|
||||
}
|
||||
|
||||
@@ -273,7 +288,7 @@ public final class ContentValues implements Parcelable {
|
||||
* @return the Long value, or {@code null} if the value is missing or cannot be converted
|
||||
*/
|
||||
public Long getAsLong(String key) {
|
||||
Object value = mValues.get(key);
|
||||
Object value = mMap.get(key);
|
||||
try {
|
||||
return value != null ? ((Number) value).longValue() : null;
|
||||
} catch (ClassCastException e) {
|
||||
@@ -298,7 +313,7 @@ public final class ContentValues implements Parcelable {
|
||||
* @return the Integer value, or {@code null} if the value is missing or cannot be converted
|
||||
*/
|
||||
public Integer getAsInteger(String key) {
|
||||
Object value = mValues.get(key);
|
||||
Object value = mMap.get(key);
|
||||
try {
|
||||
return value != null ? ((Number) value).intValue() : null;
|
||||
} catch (ClassCastException e) {
|
||||
@@ -323,7 +338,7 @@ public final class ContentValues implements Parcelable {
|
||||
* @return the Short value, or {@code null} if the value is missing or cannot be converted
|
||||
*/
|
||||
public Short getAsShort(String key) {
|
||||
Object value = mValues.get(key);
|
||||
Object value = mMap.get(key);
|
||||
try {
|
||||
return value != null ? ((Number) value).shortValue() : null;
|
||||
} catch (ClassCastException e) {
|
||||
@@ -348,7 +363,7 @@ public final class ContentValues implements Parcelable {
|
||||
* @return the Byte value, or {@code null} if the value is missing or cannot be converted
|
||||
*/
|
||||
public Byte getAsByte(String key) {
|
||||
Object value = mValues.get(key);
|
||||
Object value = mMap.get(key);
|
||||
try {
|
||||
return value != null ? ((Number) value).byteValue() : null;
|
||||
} catch (ClassCastException e) {
|
||||
@@ -373,7 +388,7 @@ public final class ContentValues implements Parcelable {
|
||||
* @return the Double value, or {@code null} if the value is missing or cannot be converted
|
||||
*/
|
||||
public Double getAsDouble(String key) {
|
||||
Object value = mValues.get(key);
|
||||
Object value = mMap.get(key);
|
||||
try {
|
||||
return value != null ? ((Number) value).doubleValue() : null;
|
||||
} catch (ClassCastException e) {
|
||||
@@ -398,7 +413,7 @@ public final class ContentValues implements Parcelable {
|
||||
* @return the Float value, or {@code null} if the value is missing or cannot be converted
|
||||
*/
|
||||
public Float getAsFloat(String key) {
|
||||
Object value = mValues.get(key);
|
||||
Object value = mMap.get(key);
|
||||
try {
|
||||
return value != null ? ((Number) value).floatValue() : null;
|
||||
} catch (ClassCastException e) {
|
||||
@@ -423,7 +438,7 @@ public final class ContentValues implements Parcelable {
|
||||
* @return the Boolean value, or {@code null} if the value is missing or cannot be converted
|
||||
*/
|
||||
public Boolean getAsBoolean(String key) {
|
||||
Object value = mValues.get(key);
|
||||
Object value = mMap.get(key);
|
||||
try {
|
||||
return (Boolean) value;
|
||||
} catch (ClassCastException e) {
|
||||
@@ -451,7 +466,7 @@ public final class ContentValues implements Parcelable {
|
||||
* {@code byte[]}
|
||||
*/
|
||||
public byte[] getAsByteArray(String key) {
|
||||
Object value = mValues.get(key);
|
||||
Object value = mMap.get(key);
|
||||
if (value instanceof byte[]) {
|
||||
return (byte[]) value;
|
||||
} else {
|
||||
@@ -465,7 +480,7 @@ public final class ContentValues implements Parcelable {
|
||||
* @return a set of all of the keys and values
|
||||
*/
|
||||
public Set<Map.Entry<String, Object>> valueSet() {
|
||||
return mValues.entrySet();
|
||||
return mMap.entrySet();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -474,30 +489,31 @@ public final class ContentValues implements Parcelable {
|
||||
* @return a set of all of the keys
|
||||
*/
|
||||
public Set<String> keySet() {
|
||||
return mValues.keySet();
|
||||
return mMap.keySet();
|
||||
}
|
||||
|
||||
public static final Parcelable.Creator<ContentValues> CREATOR =
|
||||
new Parcelable.Creator<ContentValues>() {
|
||||
@SuppressWarnings({"deprecation", "unchecked"})
|
||||
@Override
|
||||
public ContentValues createFromParcel(Parcel in) {
|
||||
// TODO - what ClassLoader should be passed to readHashMap?
|
||||
HashMap<String, Object> values = in.readHashMap(null);
|
||||
return new ContentValues(values);
|
||||
return new ContentValues(in);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ContentValues[] newArray(int size) {
|
||||
return new ContentValues[size];
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
public int describeContents() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
@Override
|
||||
public void writeToParcel(Parcel parcel, int flags) {
|
||||
parcel.writeMap(mValues);
|
||||
parcel.writeInt(mMap.size());
|
||||
parcel.writeArrayMap(mMap);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -507,7 +523,7 @@ public final class ContentValues implements Parcelable {
|
||||
@Deprecated
|
||||
@UnsupportedAppUsage
|
||||
public void putStringArrayList(String key, ArrayList<String> value) {
|
||||
mValues.put(key, value);
|
||||
mMap.put(key, value);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -518,7 +534,7 @@ public final class ContentValues implements Parcelable {
|
||||
@Deprecated
|
||||
@UnsupportedAppUsage
|
||||
public ArrayList<String> getStringArrayList(String key) {
|
||||
return (ArrayList<String>) mValues.get(key);
|
||||
return (ArrayList<String>) mMap.get(key);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -528,7 +544,7 @@ public final class ContentValues implements Parcelable {
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (String name : mValues.keySet()) {
|
||||
for (String name : mMap.keySet()) {
|
||||
String value = getAsString(name);
|
||||
if (sb.length() > 0) sb.append(" ");
|
||||
sb.append(name + "=" + value);
|
||||
|
||||
@@ -193,8 +193,9 @@ public final class SQLiteDatabase extends SQLiteClosable {
|
||||
*/
|
||||
public static final int CONFLICT_NONE = 0;
|
||||
|
||||
/** {@hide} */
|
||||
@UnsupportedAppUsage
|
||||
private static final String[] CONFLICT_VALUES = new String[]
|
||||
public static final String[] CONFLICT_VALUES = new String[]
|
||||
{"", " OR ROLLBACK ", " OR ABORT ", " OR FAIL ", " OR IGNORE ", " OR REPLACE "};
|
||||
|
||||
/**
|
||||
|
||||
1036
core/java/android/database/sqlite/SQLiteStatementBuilder.java
Normal file
1036
core/java/android/database/sqlite/SQLiteStatementBuilder.java
Normal file
File diff suppressed because it is too large
Load Diff
@@ -308,6 +308,23 @@ public class ArrayUtils {
|
||||
return array;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public static @NonNull <T> T[] concat(Class<T> kind, @Nullable T[] a, @Nullable T[] b) {
|
||||
final int an = (a != null) ? a.length : 0;
|
||||
final int bn = (b != null) ? b.length : 0;
|
||||
if (an == 0 && bn == 0) {
|
||||
if (kind == String.class) {
|
||||
return (T[]) EmptyArray.STRING;
|
||||
} else if (kind == Object.class) {
|
||||
return (T[]) EmptyArray.OBJECT;
|
||||
}
|
||||
}
|
||||
final T[] res = (T[]) Array.newInstance(kind, an + bn);
|
||||
if (an > 0) System.arraycopy(a, 0, res, 0, an);
|
||||
if (bn > 0) System.arraycopy(b, 0, res, an, bn);
|
||||
return res;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds value to given array if not already present, providing set-like
|
||||
* behavior.
|
||||
|
||||
@@ -16,9 +16,8 @@
|
||||
|
||||
package com.android.internal.util;
|
||||
|
||||
import android.test.MoreAsserts;
|
||||
import static org.junit.Assert.assertArrayEquals;
|
||||
|
||||
import java.util.Arrays;
|
||||
import junit.framework.TestCase;
|
||||
|
||||
/**
|
||||
@@ -92,29 +91,29 @@ public class ArrayUtilsTest extends TestCase {
|
||||
}
|
||||
|
||||
public void testAppendInt() throws Exception {
|
||||
MoreAsserts.assertEquals(new int[] { 1 },
|
||||
assertArrayEquals(new int[] { 1 },
|
||||
ArrayUtils.appendInt(null, 1));
|
||||
MoreAsserts.assertEquals(new int[] { 1 },
|
||||
assertArrayEquals(new int[] { 1 },
|
||||
ArrayUtils.appendInt(new int[] { }, 1));
|
||||
MoreAsserts.assertEquals(new int[] { 1, 2 },
|
||||
assertArrayEquals(new int[] { 1, 2 },
|
||||
ArrayUtils.appendInt(new int[] { 1 }, 2));
|
||||
MoreAsserts.assertEquals(new int[] { 1, 2 },
|
||||
assertArrayEquals(new int[] { 1, 2 },
|
||||
ArrayUtils.appendInt(new int[] { 1, 2 }, 1));
|
||||
}
|
||||
|
||||
public void testRemoveInt() throws Exception {
|
||||
assertNull(ArrayUtils.removeInt(null, 1));
|
||||
MoreAsserts.assertEquals(new int[] { },
|
||||
assertArrayEquals(new int[] { },
|
||||
ArrayUtils.removeInt(new int[] { }, 1));
|
||||
MoreAsserts.assertEquals(new int[] { 1, 2, 3, },
|
||||
assertArrayEquals(new int[] { 1, 2, 3, },
|
||||
ArrayUtils.removeInt(new int[] { 1, 2, 3}, 4));
|
||||
MoreAsserts.assertEquals(new int[] { 2, 3, },
|
||||
assertArrayEquals(new int[] { 2, 3, },
|
||||
ArrayUtils.removeInt(new int[] { 1, 2, 3}, 1));
|
||||
MoreAsserts.assertEquals(new int[] { 1, 3, },
|
||||
assertArrayEquals(new int[] { 1, 3, },
|
||||
ArrayUtils.removeInt(new int[] { 1, 2, 3}, 2));
|
||||
MoreAsserts.assertEquals(new int[] { 1, 2, },
|
||||
assertArrayEquals(new int[] { 1, 2, },
|
||||
ArrayUtils.removeInt(new int[] { 1, 2, 3}, 3));
|
||||
MoreAsserts.assertEquals(new int[] { 2, 3, 1 },
|
||||
assertArrayEquals(new int[] { 2, 3, 1 },
|
||||
ArrayUtils.removeInt(new int[] { 1, 2, 3, 1 }, 1));
|
||||
}
|
||||
|
||||
@@ -129,30 +128,51 @@ public class ArrayUtilsTest extends TestCase {
|
||||
}
|
||||
|
||||
public void testAppendLong() throws Exception {
|
||||
MoreAsserts.assertEquals(new long[] { 1 },
|
||||
assertArrayEquals(new long[] { 1 },
|
||||
ArrayUtils.appendLong(null, 1));
|
||||
MoreAsserts.assertEquals(new long[] { 1 },
|
||||
assertArrayEquals(new long[] { 1 },
|
||||
ArrayUtils.appendLong(new long[] { }, 1));
|
||||
MoreAsserts.assertEquals(new long[] { 1, 2 },
|
||||
assertArrayEquals(new long[] { 1, 2 },
|
||||
ArrayUtils.appendLong(new long[] { 1 }, 2));
|
||||
MoreAsserts.assertEquals(new long[] { 1, 2 },
|
||||
assertArrayEquals(new long[] { 1, 2 },
|
||||
ArrayUtils.appendLong(new long[] { 1, 2 }, 1));
|
||||
}
|
||||
|
||||
public void testRemoveLong() throws Exception {
|
||||
assertNull(ArrayUtils.removeLong(null, 1));
|
||||
MoreAsserts.assertEquals(new long[] { },
|
||||
assertArrayEquals(new long[] { },
|
||||
ArrayUtils.removeLong(new long[] { }, 1));
|
||||
MoreAsserts.assertEquals(new long[] { 1, 2, 3, },
|
||||
assertArrayEquals(new long[] { 1, 2, 3, },
|
||||
ArrayUtils.removeLong(new long[] { 1, 2, 3}, 4));
|
||||
MoreAsserts.assertEquals(new long[] { 2, 3, },
|
||||
assertArrayEquals(new long[] { 2, 3, },
|
||||
ArrayUtils.removeLong(new long[] { 1, 2, 3}, 1));
|
||||
MoreAsserts.assertEquals(new long[] { 1, 3, },
|
||||
assertArrayEquals(new long[] { 1, 3, },
|
||||
ArrayUtils.removeLong(new long[] { 1, 2, 3}, 2));
|
||||
MoreAsserts.assertEquals(new long[] { 1, 2, },
|
||||
assertArrayEquals(new long[] { 1, 2, },
|
||||
ArrayUtils.removeLong(new long[] { 1, 2, 3}, 3));
|
||||
MoreAsserts.assertEquals(new long[] { 2, 3, 1 },
|
||||
assertArrayEquals(new long[] { 2, 3, 1 },
|
||||
ArrayUtils.removeLong(new long[] { 1, 2, 3, 1 }, 1));
|
||||
}
|
||||
|
||||
public void testConcatEmpty() throws Exception {
|
||||
assertArrayEquals(new Long[] {},
|
||||
ArrayUtils.concat(Long.class, null, null));
|
||||
assertArrayEquals(new Long[] {},
|
||||
ArrayUtils.concat(Long.class, new Long[] {}, null));
|
||||
assertArrayEquals(new Long[] {},
|
||||
ArrayUtils.concat(Long.class, null, new Long[] {}));
|
||||
assertArrayEquals(new Long[] {},
|
||||
ArrayUtils.concat(Long.class, new Long[] {}, new Long[] {}));
|
||||
}
|
||||
|
||||
public void testConcat() throws Exception {
|
||||
assertArrayEquals(new Long[] { 1L },
|
||||
ArrayUtils.concat(Long.class, new Long[] { 1L }, new Long[] {}));
|
||||
assertArrayEquals(new Long[] { 1L },
|
||||
ArrayUtils.concat(Long.class, new Long[] {}, new Long[] { 1L }));
|
||||
assertArrayEquals(new Long[] { 1L, 2L },
|
||||
ArrayUtils.concat(Long.class, new Long[] { 1L }, new Long[] { 2L }));
|
||||
assertArrayEquals(new Long[] { 1L, 2L, 3L, 4L },
|
||||
ArrayUtils.concat(Long.class, new Long[] { 1L, 2L }, new Long[] { 3L, 4L }));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user