if (grantableScopes.size() == 0)
if (sufficientScopeFound == false)
  public boolean canEdit(Assignment anAssignment)  {    // First, check to see if this subject and the grantee are the same.    // No one, not even the SignetSuperSubject, is allowed to grant    // privileges to herself.    if (this.equals(anAssignment.getGrantee()))    {      return false;    }    // Next, , check to see if this subject is the Signet superSubject.    // That Subject can grant any privilege to anyone.    PrivilegedSubject superPSubject;    try    {      superPSubject = this.signet.getSuperPrivilegedSubject();    }    catch (ObjectNotFoundException onfe)    {      throw new SignetRuntimeException(onfe);    }    if (this.equals(superPSubject))    {      return true;    }        // Next, let's see whether or not this Assignment is in a Scope that we can    // grant this particular Function in, and if so, whether or not this    // Assignment has any Limit-values that exceed the ones we're allowed to    // work with in this particular combination of Scope and Function.    Set grantableScopes = getGrantableScopes(anAssignment.getFunction());    Iterator grantableScopesIterator = grantableScopes.iterator();    while (grantableScopesIterator.hasNext())    {      TreeNode grantableScope = (TreeNode) (grantableScopesIterator.next());      if (grantableScope.equals(anAssignment.getScope())          || grantableScope.isAncestorOf(anAssignment.getScope()))      {        // This scope is indeed one that we can grant this Function in.        // Now, let's see whether or not we're allowed to work with all of the        // Limit-values in this particular Assignment.        Set limitValues = anAssignment.getLimitValues();        Iterator limitValuesIterator = limitValues.iterator();        while (limitValuesIterator.hasNext())        {          LimitValue limitValue = (LimitValue)(limitValuesIterator.next());          Limit limit = limitValue.getLimit();          Choice choice = null;                    try          {            choice            	= limit            			.getChoiceSet()            				.getChoiceByValue            					(limitValue.getValue());          }          catch (Exception e)          {            throw new SignetRuntimeException(e);          }                    Set grantableChoices          	= this.getGrantableChoices          			(anAssignment.getFunction(), anAssignment.getScope(), limit);                    if (grantableChoices.contains(choice) == false)          {            return false;          }         }      }    }        if (grantableScopes.size() == 0)    {      // We have no grantable Scopes at all, so there's no way we can edit      // any Assignments.      return false;    }    // If we've gotten this far, the Assignment must be editable by this    // PrivilegedSubject.    return true;  }