This class defines a field based on java.util.List, but uses it to some extent like a Set. Since lookup type operations are performed using a linear search for Lists, the performance for large Lists will be poor. Consider changing this fields implementation to a set based one. If order of iteration is important to maintain insert order, perhaps consider a LinkedHashSet.