else if (priv.equals(NamingPrivilege.STEM))   { this.canSTEM(s, ns, subj);
else if (priv.equals(AccessPrivilege.OPTIN))  { GrouperLog.debug(LOG, s, msg + "canOPTIN"); this.canOPTIN(s, g, subj); } else if (priv.equals(AccessPrivilege.OPTOUT)) { GrouperLog.debug(LOG, s, msg + "canOPTOUT"); this.canOPTOUT(s, g, subj); } else if (priv.equals(AccessPrivilege.READ))   { GrouperLog.debug(LOG, s, msg + "canREAD"); this.canREAD(s, g, subj); } else if (priv.equals(AccessPrivilege.UPDATE)) { GrouperLog.debug(LOG, s, msg + "canUPDATE"); this.canUPDATE(s, g, subj); } else if (priv.equals(AccessPrivilege.VIEW))   { GrouperLog.debug(LOG, s, msg + "canVIEW"); this.canVIEW(s, g, subj); } else if (priv.equals(AccessPrivilege.SYSTEM))  { GrouperLog.debug(LOG, s, msg + "system maintained"); throw new InsufficientPrivilegeException("system maintained");
  protected void canPrivDispatch(    GrouperSession s, Stem ns, Subject subj, Privilege priv  )    throws  InsufficientPrivilegeException,            SchemaException  {    if      (priv.equals(NamingPrivilege.CREATE)) {       this.canCREATE(s, ns, subj);    }    else if (priv.equals(NamingPrivilege.STEM))   {      this.canSTEM(s, ns, subj);    }    else {      throw new SchemaException("unknown naming privilege: " + priv);    }  } // protected void canPrivDispatch(s, ns, subj, priv)