Preconditions.java revision d2a458750e5a3d490af09cecb5c28370baf0a913
1d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey/* 2d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey * Copyright (C) 2011 The Android Open Source Project 3d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey * 4d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey * Licensed under the Apache License, Version 2.0 (the "License"); 5d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey * you may not use this file except in compliance with the License. 6d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey * You may obtain a copy of the License at 7d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey * 8d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey * http://www.apache.org/licenses/LICENSE-2.0 9d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey * 10d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey * Unless required by applicable law or agreed to in writing, software 11d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey * distributed under the License is distributed on an "AS IS" BASIS, 12d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey * See the License for the specific language governing permissions and 14d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey * limitations under the License. 15d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey */ 16d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey 17d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkeypackage com.android.internal.util; 18d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey 19d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey/** 20d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey * Simple static methods to be called at the start of your own methods to verify 21d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey * correct arguments and state. 22d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey */ 23d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkeypublic class Preconditions { 24d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey 25d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey /** 26d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey * Ensures that an object reference passed as a parameter to the calling 27d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey * method is not null. 28d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey * 29d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey * @param reference an object reference 30d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey * @return the non-null reference that was validated 31d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey * @throws NullPointerException if {@code reference} is null 32d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey */ 33d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey public static <T> T checkNotNull(T reference) { 34d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey if (reference == null) { 35d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey throw new NullPointerException(); 36d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey } 37d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey return reference; 38d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey } 39d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey 40d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey /** 41d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey * Ensures that an object reference passed as a parameter to the calling 42d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey * method is not null. 43d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey * 44d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey * @param reference an object reference 45d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey * @param errorMessage the exception message to use if the check fails; will 46d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey * be converted to a string using {@link String#valueOf(Object)} 47d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey * @return the non-null reference that was validated 48d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey * @throws NullPointerException if {@code reference} is null 49d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey */ 50d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey public static <T> T checkNotNull(T reference, Object errorMessage) { 51d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey if (reference == null) { 52d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey throw new NullPointerException(String.valueOf(errorMessage)); 53d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey } 54d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey return reference; 55d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey } 56d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey 57d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey} 58