// For each Obligation in the first set, and try to find an
// equivalent one in the second set
while (it1.hasNext())
{
Obligation o1 = (Obligation)(it1.next());
Iterator it2 = set2.iterator();
boolean matched = false;
// go through the second set, and see if there's a matching
// Obligation
while (it2.hasNext() && (! matched))
{
Obligation o2 = (Obligation)(it2.next());
// Match identifier and fulfillOn setting
if ((o1.getId().equals(o2.getId())) &&
(o1.getFulfillOn() == o2.getFulfillOn()))
{
// Match the assignments
List assignments1 = o1.getAssignments();
List assignments2 = o2.getAssignments();
if (assignments1.size() == assignments2.size())
{
Iterator ait1 = assignments1.iterator();
Iterator ait2 = assignments2.iterator();