aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com>2024-03-20 17:52:38 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2024-03-20 17:52:38 +0000
commit058fb8437e4ebb0c66085393c9800782b2921581 (patch)
tree6299a1adea1af00e4a2c21db6a98c6d7830f2de4
parent1d85beecd5805b833bad51121cf0b4a64014e186 (diff)
parentb7dbbb224f409b0aafd6231983e4a3374d6853bc (diff)
downloadmodules-utils-058fb8437e4ebb0c66085393c9800782b2921581.tar.gz
Merge "Preconditions error messages/templates should be compile-time constants" into main
-rw-r--r--java/com/android/internal/util/Android.bp1
-rw-r--r--java/com/android/internal/util/Preconditions.java22
2 files changed, 15 insertions, 8 deletions
diff --git a/java/com/android/internal/util/Android.bp b/java/com/android/internal/util/Android.bp
index c2de1fb..c9b8b9c 100644
--- a/java/com/android/internal/util/Android.bp
+++ b/java/com/android/internal/util/Android.bp
@@ -22,6 +22,7 @@ java_library {
srcs: ["Preconditions.java"],
defaults: ["modules-utils-defaults"],
libs: [
+ "error_prone_annotations",
"unsupportedappusage",
],
}
diff --git a/java/com/android/internal/util/Preconditions.java b/java/com/android/internal/util/Preconditions.java
index bee0808..0bfa507 100644
--- a/java/com/android/internal/util/Preconditions.java
+++ b/java/com/android/internal/util/Preconditions.java
@@ -23,6 +23,8 @@ import android.compat.annotation.UnsupportedAppUsage;
import android.os.Build;
import android.text.TextUtils;
+import com.google.errorprone.annotations.CompileTimeConstant;
+
import java.util.Arrays;
import java.util.Collection;
import java.util.Objects;
@@ -55,7 +57,9 @@ public class Preconditions {
* @throws IllegalArgumentException if {@code expression} is false
*/
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
- public static void checkArgument(boolean expression, final Object errorMessage) {
+ public static void checkArgument(
+ boolean expression,
+ final @CompileTimeConstant Object errorMessage) {
if (!expression) {
throw new IllegalArgumentException(String.valueOf(errorMessage));
}
@@ -72,7 +76,7 @@ public class Preconditions {
*/
public static void checkArgument(
final boolean expression,
- final @NonNull String messageTemplate,
+ final @CompileTimeConstant @NonNull String messageTemplate,
final Object... messageArgs) {
if (!expression) {
throw new IllegalArgumentException(String.format(messageTemplate, messageArgs));
@@ -105,7 +109,7 @@ public class Preconditions {
* @throws IllegalArgumentException if {@code string} is empty
*/
public static @NonNull <T extends CharSequence> T checkStringNotEmpty(final T string,
- final Object errorMessage) {
+ final @CompileTimeConstant Object errorMessage) {
if (TextUtils.isEmpty(string)) {
throw new IllegalArgumentException(String.valueOf(errorMessage));
}
@@ -124,7 +128,7 @@ public class Preconditions {
*/
public static @NonNull <T extends CharSequence> T checkStringNotEmpty(
final T string,
- final @NonNull String messageTemplate,
+ final @NonNull @CompileTimeConstant String messageTemplate,
final Object... messageArgs) {
if (TextUtils.isEmpty(string)) {
throw new IllegalArgumentException(String.format(messageTemplate, messageArgs));
@@ -163,7 +167,9 @@ public class Preconditions {
*/
@Deprecated
@UnsupportedAppUsage
- public static @NonNull <T> T checkNotNull(final T reference, final Object errorMessage) {
+ public static @NonNull <T> T checkNotNull(
+ final T reference,
+ final @CompileTimeConstant Object errorMessage) {
if (reference == null) {
throw new NullPointerException(String.valueOf(errorMessage));
}
@@ -181,7 +187,7 @@ public class Preconditions {
*/
public static @NonNull <T> T checkNotNull(
final T reference,
- final @NonNull String messageTemplate,
+ final @NonNull @CompileTimeConstant String messageTemplate,
final Object... messageArgs) {
if (reference == null) {
throw new NullPointerException(String.format(messageTemplate, messageArgs));
@@ -229,7 +235,7 @@ public class Preconditions {
*/
public static void checkState(
final boolean expression,
- final @NonNull String messageTemplate,
+ final @NonNull @CompileTimeConstant String messageTemplate,
final Object... messageArgs) {
if (!expression) {
throw new IllegalStateException(String.format(messageTemplate, messageArgs));
@@ -275,7 +281,7 @@ public class Preconditions {
*/
public static void checkCallAuthorization(
final boolean expression,
- final @NonNull String messageTemplate,
+ final @NonNull @CompileTimeConstant String messageTemplate,
final Object... messageArgs) {
if (!expression) {
throw new SecurityException(String.format(messageTemplate, messageArgs));