org.mariotaku.twidere.util.CompareUtils.java Source code

Java tutorial

Introduction

Here is the source code for org.mariotaku.twidere.util.CompareUtils.java

Source

/*
 *             Twidere - Twitter client for Android
 * 
 *  Copyright (C) 2012-2014 Mariotaku Lee <mariotaku.lee@gmail.com>
 * 
 *  This program is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 * 
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 * 
 *  You should have received a copy of the GNU General Public License
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

package org.mariotaku.twidere.util;

import android.os.Bundle;

import org.apache.commons.lang3.ArrayUtils;

public class CompareUtils {

    public static boolean bundleEquals(final Bundle bundle1, final Bundle bundle2, final String... ignoredKeys) {
        if (bundle1 == null || bundle2 == null)
            return bundle1 == bundle2;
        for (String key : bundle1.keySet()) {
            if (!ArrayUtils.contains(ignoredKeys, key) && !objectEquals(bundle1.get(key), bundle2.get(key)))
                return false;
        }
        return true;
    }

    public static boolean classEquals(final Class<?> cls1, final Class<?> cls2) {
        if (cls1 == null || cls2 == null)
            return cls1 == cls2;
        return cls1.getName().equals(cls2.getName());
    }

    public static boolean objectEquals(final Object object1, final Object object2) {
        if (object1 == null || object2 == null)
            return object1 == object2;
        if (object1 instanceof Bundle && object2 instanceof Bundle)
            return bundleEquals((Bundle) object1, (Bundle) object2);
        else if (object1 instanceof Class && object2 instanceof Class)
            return classEquals((Class<?>) object1, (Class<?>) object2);
        return object1.equals(object2);
    }

    public static boolean textEquals(CharSequence text1, CharSequence text2) {
        if (text1 == null || text2 == null)
            return text1 == text2;
        if (text1 == text2)
            return true;
        if (text1.length() != text2.length())
            return false;
        for (int i = 0, j = text1.length(); i < j; i++) {
            if (text1.charAt(i) != text2.charAt(i))
                return false;
        }
        return true;
    }
}