extensions/net.sf.basedb.varsearch/trunk/src/net/sf/basedb/varsearch/util/NullSafeLinkedSet.java

Code
Comments
Other
Rev Date Author Line
6128 12 Feb 21 nicklas 1 package net.sf.basedb.varsearch.util;
6128 12 Feb 21 nicklas 2
6128 12 Feb 21 nicklas 3 import java.util.Collection;
6128 12 Feb 21 nicklas 4 import java.util.LinkedHashSet;
6128 12 Feb 21 nicklas 5
6128 12 Feb 21 nicklas 6
6128 12 Feb 21 nicklas 7 /**
6128 12 Feb 21 nicklas 8   Variant of a LinkedHashSet that simply ignore null values.
6128 12 Feb 21 nicklas 9   @author nicklas
6128 12 Feb 21 nicklas 10 */
6128 12 Feb 21 nicklas 11 public class NullSafeLinkedSet<E> 
6128 12 Feb 21 nicklas 12   extends LinkedHashSet<E>
6128 12 Feb 21 nicklas 13 {
6128 12 Feb 21 nicklas 14
6128 12 Feb 21 nicklas 15   private static final long serialVersionUID = 3606992818619812054L;
6128 12 Feb 21 nicklas 16
6128 12 Feb 21 nicklas 17   @Override
6128 12 Feb 21 nicklas 18   public boolean add(E e) 
6128 12 Feb 21 nicklas 19   {
6128 12 Feb 21 nicklas 20     return e == null ? false : super.add(e);
6128 12 Feb 21 nicklas 21   }
6128 12 Feb 21 nicklas 22
6128 12 Feb 21 nicklas 23   @Override
6128 12 Feb 21 nicklas 24   public boolean addAll(Collection<? extends E> c) 
6128 12 Feb 21 nicklas 25   {
6128 12 Feb 21 nicklas 26     if (c == null || c.isEmpty()) return false;
6128 12 Feb 21 nicklas 27     boolean modified = false;
6128 12 Feb 21 nicklas 28     for (E e : c)
6128 12 Feb 21 nicklas 29     {
6128 12 Feb 21 nicklas 30       if (add(e)) modified = true;
6128 12 Feb 21 nicklas 31     }
6128 12 Feb 21 nicklas 32     return modified;
6128 12 Feb 21 nicklas 33   }
6128 12 Feb 21 nicklas 34
6128 12 Feb 21 nicklas 35 }