mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
56 lines
1.8 KiB
Java
56 lines
1.8 KiB
Java
// Copyright 2013 The Flutter Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
package io.flutter.util;
|
|
|
|
import androidx.annotation.Nullable;
|
|
|
|
/**
|
|
* Static convenience methods that help a method or constructor check whether it was invoked
|
|
* correctly (that is, whether its <i>preconditions</i> were met).
|
|
*/
|
|
public final class Preconditions {
|
|
private Preconditions() {}
|
|
|
|
/**
|
|
* Ensures that an object reference passed as a parameter to the calling method is not null.
|
|
*
|
|
* @param reference an object reference
|
|
* @return the non-null reference that was validated
|
|
* @throws NullPointerException if {@code reference} is null
|
|
*/
|
|
public static <T> T checkNotNull(T reference) {
|
|
if (reference == null) {
|
|
throw new NullPointerException();
|
|
}
|
|
return reference;
|
|
}
|
|
|
|
/**
|
|
* Ensures the truth of an expression involving the state of the calling instance.
|
|
*
|
|
* @param expression a boolean expression that must be checked to be true
|
|
* @throws IllegalStateException if {@code expression} is false
|
|
*/
|
|
public static void checkState(boolean expression) {
|
|
if (!expression) {
|
|
throw new IllegalStateException();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Ensures the truth of an expression involving the state of the calling instance.
|
|
*
|
|
* @param expression a boolean expression that must be checked to be true
|
|
* @param errorMessage the exception message to use if the check fails; will be converted to a
|
|
* string using {@link String#valueOf(Object)}
|
|
* @throws IllegalStateException if {@code expression} is false
|
|
*/
|
|
public static void checkState(boolean expression, @Nullable Object errorMessage) {
|
|
if (!expression) {
|
|
throw new IllegalStateException(String.valueOf(errorMessage));
|
|
}
|
|
}
|
|
}
|