1c3f6f16bd4a2338e88275641b9f2f56e816ca377Narayan Kamath/* 2c3f6f16bd4a2338e88275641b9f2f56e816ca377Narayan Kamath * Copyright (C) 2010 The Android Open Source Project 3c3f6f16bd4a2338e88275641b9f2f56e816ca377Narayan Kamath * 4c3f6f16bd4a2338e88275641b9f2f56e816ca377Narayan Kamath * Licensed under the Apache License, Version 2.0 (the "License"); 5c3f6f16bd4a2338e88275641b9f2f56e816ca377Narayan Kamath * you may not use this file except in compliance with the License. 6c3f6f16bd4a2338e88275641b9f2f56e816ca377Narayan Kamath * You may obtain a copy of the License at 7c3f6f16bd4a2338e88275641b9f2f56e816ca377Narayan Kamath * 8c3f6f16bd4a2338e88275641b9f2f56e816ca377Narayan Kamath * http://www.apache.org/licenses/LICENSE-2.0 9c3f6f16bd4a2338e88275641b9f2f56e816ca377Narayan Kamath * 10c3f6f16bd4a2338e88275641b9f2f56e816ca377Narayan Kamath * Unless required by applicable law or agreed to in writing, software 11c3f6f16bd4a2338e88275641b9f2f56e816ca377Narayan Kamath * distributed under the License is distributed on an "AS IS" BASIS, 12c3f6f16bd4a2338e88275641b9f2f56e816ca377Narayan Kamath * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13c3f6f16bd4a2338e88275641b9f2f56e816ca377Narayan Kamath * See the License for the specific language governing permissions and 14c3f6f16bd4a2338e88275641b9f2f56e816ca377Narayan Kamath * limitations under the License. 15c3f6f16bd4a2338e88275641b9f2f56e816ca377Narayan Kamath */ 16c3f6f16bd4a2338e88275641b9f2f56e816ca377Narayan Kamath 17c3f6f16bd4a2338e88275641b9f2f56e816ca377Narayan Kamathpackage libcore.util; 18c3f6f16bd4a2338e88275641b9f2f56e816ca377Narayan Kamath 19c3f6f16bd4a2338e88275641b9f2f56e816ca377Narayan Kamathpublic final class Objects { 20c3f6f16bd4a2338e88275641b9f2f56e816ca377Narayan Kamath private Objects() { 21c3f6f16bd4a2338e88275641b9f2f56e816ca377Narayan Kamath } 22c3f6f16bd4a2338e88275641b9f2f56e816ca377Narayan Kamath 23c3f6f16bd4a2338e88275641b9f2f56e816ca377Narayan Kamath /** 24c3f6f16bd4a2338e88275641b9f2f56e816ca377Narayan Kamath * Returns true if two possibly-null objects are equal. 25c3f6f16bd4a2338e88275641b9f2f56e816ca377Narayan Kamath */ 26c3f6f16bd4a2338e88275641b9f2f56e816ca377Narayan Kamath public static boolean equal(Object a, Object b) { 27c3f6f16bd4a2338e88275641b9f2f56e816ca377Narayan Kamath return a == b || (a != null && a.equals(b)); 28c3f6f16bd4a2338e88275641b9f2f56e816ca377Narayan Kamath } 29c3f6f16bd4a2338e88275641b9f2f56e816ca377Narayan Kamath 30c3f6f16bd4a2338e88275641b9f2f56e816ca377Narayan Kamath public static int hashCode(Object o) { 31c3f6f16bd4a2338e88275641b9f2f56e816ca377Narayan Kamath return (o == null) ? 0 : o.hashCode(); 32c3f6f16bd4a2338e88275641b9f2f56e816ca377Narayan Kamath } 33c3f6f16bd4a2338e88275641b9f2f56e816ca377Narayan Kamath} 34