001package org.gbif.utils;
002
003/**
004 *
005 */
006public class ObjectUtils {
007
008  private ObjectUtils() {
009
010  }
011
012  /**
013   * Returns the first of the given parameters that is not null.
014   * If all given parameters are null, returns null.
015   *
016   * @param items
017   * @param <T>
018   * @return
019   */
020  public static <T> T coalesce(T ... items) {
021    if (items != null) {
022      for (T i : items) if (i != null) return i;
023    }
024    return null;
025  }
026
027  public static <T> T coalesce(Iterable<T> items) {
028    if (items != null) {
029      for (T i : items) if (i != null) return i;
030    }
031    return null;
032  }
033}