blob: b667d444a8bf1032fee8029be33e6b60df49436a [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2014 TwelveTone LLC and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Steven Spungin <steven@spungin.tv> - initial API and implementation, Bug 432555
*******************************************************************************/
package org.eclipse.e4.tools.emf.ui.internal.common.component.tabs.empty;
import java.util.Collection;
/**
* E is for empty. Very useful functions for determining empty objects. Avoids
* null checking and content checking, and makes code clearer. <br />
* An object is empty if it is null, an empty string, or an empty collection
*
* @author Steven Spungin
*
*/
public class E {
public static boolean notEmpty(String object) {
return !isEmpty(object);
}
public static boolean notEmpty(Collection<?> object) {
return !isEmpty(object);
}
public static boolean notEmpty(Object object) {
return !isEmpty(object);
}
public static boolean isEmpty(String object) {
return object == null || object.isEmpty();
}
public static boolean isEmpty(Collection<?> object) {
return object == null || object.isEmpty();
}
public static boolean isEmpty(Object object) {
if (object == null) {
return true;
} else if (object instanceof String && ((String) object).isEmpty()) {
return true;
} else if (object instanceof Collection<?> && ((Collection<?>) object).isEmpty()) {
return true;
} else {
return false;
}
}
/**
*
* @param obj1
* @param obj2
* @return true if (both objects are null) or (both objects are not null and
* equal)
*/
static public boolean equals(Object obj1, Object obj2) {
if (obj1 == null) {
if (obj2 == null) {
return true;
}
return false;
} else if (obj2 == null) {
return false;
} else {
return obj1.equals(obj2);
}
}
/**
* Compares 2 objects.
*
* @param obj1
* @param obj2
* @return If both objects are null, returns 0. If only 1 object is null, it
* will return 1 or -1. Otherwise call compareTo on the first
* object.
*/
static public <T> int compareTo(Comparable<T> obj1, T obj2) {
if (obj1 == null) {
if (obj2 == null) {
return 0;
}
return -1;
} else if (obj2 == null) {
return 1;
} else {
return obj1.compareTo(obj2);
}
}
}