示例#1
0
  // Returns true if and only if o1.equals(o2).
  public boolean xequal(Iterable<T> o1, Object o2) {
    if (o1 == null && o2 == null) {
      return true;
    }

    if (o1 == null || o2 == null) {
      return false;
    }

    if (o1.getClass() != o2.getClass()) {
      return false;
    }

    Iterator<T> iter1 = o1.iterator();
    @SuppressWarnings("unchecked")
    Iterator<T> iter2 = ((Iterable<T>) o2).iterator();

    // - Compare all elements for equality.

    while (iter1.hasNext()) {
      if (!iter2.hasNext()) {
        return false;
      }

      T elem1 = iter1.next();
      T elem2 = iter2.next();

      if (!elem1.equals(elem2)) {
        return false;
      }
    }

    if (iter2.hasNext()) {
      return false;
    }

    return true;
  }
 public void setProcessors(Iterable<? extends Processor> processors) {
   processors.getClass(); // null check
   // not mt-safe
   if (used.get()) throw new IllegalStateException();
   this.processors = processors;
 }
示例#3
0
 public static <T> String stringValueOfItem(Iterable<T> iterable, T item) {
   return item == iterable
       ? "(this " + iterable.getClass().getSimpleName() + ')'
       : String.valueOf(item);
 }