Refactor CoordinateUtils
Change-Id: I607b803273a4d7983e9e25a81b6941a3b59194c6
This commit is contained in:
parent
5547b49b17
commit
f6a6371096
1 changed files with 19 additions and 16 deletions
|
@ -16,7 +16,7 @@
|
|||
|
||||
package com.android.inputmethod.latin.utils;
|
||||
|
||||
import java.util.Arrays;
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
public final class CoordinateUtils {
|
||||
private static final int INDEX_X = 0;
|
||||
|
@ -27,32 +27,35 @@ public final class CoordinateUtils {
|
|||
// This utility class is not publicly instantiable.
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
public static int[] newInstance() {
|
||||
return new int[ELEMENT_SIZE];
|
||||
}
|
||||
|
||||
public static int x(final int[] coords) {
|
||||
public static int x(@Nonnull final int[] coords) {
|
||||
return coords[INDEX_X];
|
||||
}
|
||||
|
||||
public static int y(final int[] coords) {
|
||||
public static int y(@Nonnull final int[] coords) {
|
||||
return coords[INDEX_Y];
|
||||
}
|
||||
|
||||
public static void set(final int[] coords, final int x, final int y) {
|
||||
public static void set(@Nonnull final int[] coords, final int x, final int y) {
|
||||
coords[INDEX_X] = x;
|
||||
coords[INDEX_Y] = y;
|
||||
}
|
||||
|
||||
public static void copy(final int[] destination, final int[] source) {
|
||||
public static void copy(@Nonnull final int[] destination, @Nonnull final int[] source) {
|
||||
destination[INDEX_X] = source[INDEX_X];
|
||||
destination[INDEX_Y] = source[INDEX_Y];
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
public static int[] newCoordinateArray(final int arraySize) {
|
||||
return new int[ELEMENT_SIZE * arraySize];
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
public static int[] newCoordinateArray(final int arraySize,
|
||||
final int defaultX, final int defaultY) {
|
||||
final int[] result = new int[ELEMENT_SIZE * arraySize];
|
||||
|
@ -62,30 +65,30 @@ public final class CoordinateUtils {
|
|||
return result;
|
||||
}
|
||||
|
||||
public static int xFromArray(final int[] coordsArray, final int index) {
|
||||
public static int xFromArray(@Nonnull final int[] coordsArray, final int index) {
|
||||
return coordsArray[ELEMENT_SIZE * index + INDEX_X];
|
||||
}
|
||||
|
||||
public static int yFromArray(final int[] coordsArray, final int index) {
|
||||
public static int yFromArray(@Nonnull final int[] coordsArray, final int index) {
|
||||
return coordsArray[ELEMENT_SIZE * index + INDEX_Y];
|
||||
}
|
||||
|
||||
public static int[] coordinateFromArray(final int[] coordsArray, final int index) {
|
||||
final int baseIndex = ELEMENT_SIZE * index;
|
||||
return Arrays.copyOfRange(coordsArray, baseIndex, baseIndex + ELEMENT_SIZE);
|
||||
@Nonnull
|
||||
public static int[] coordinateFromArray(@Nonnull final int[] coordsArray, final int index) {
|
||||
final int[] coords = newInstance();
|
||||
set(coords, xFromArray(coordsArray, index), yFromArray(coordsArray, index));
|
||||
return coords;
|
||||
}
|
||||
|
||||
public static void setXYInArray(final int[] coordsArray, final int index,
|
||||
public static void setXYInArray(@Nonnull final int[] coordsArray, final int index,
|
||||
final int x, final int y) {
|
||||
final int baseIndex = ELEMENT_SIZE * index;
|
||||
coordsArray[baseIndex + INDEX_X] = x;
|
||||
coordsArray[baseIndex + INDEX_Y] = y;
|
||||
}
|
||||
|
||||
public static void setCoordinateInArray(final int[] coordsArray, final int index,
|
||||
final int[] coords) {
|
||||
final int baseIndex = ELEMENT_SIZE * index;
|
||||
coordsArray[baseIndex + INDEX_X] = coords[INDEX_X];
|
||||
coordsArray[baseIndex + INDEX_Y] = coords[INDEX_Y];
|
||||
public static void setCoordinateInArray(@Nonnull final int[] coordsArray, final int index,
|
||||
@Nonnull final int[] coords) {
|
||||
setXYInArray(coordsArray, index, x(coords), y(coords));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue