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