public boolean implies(Permission<?> that){
  if (category == null)   return true;
  if (!category.isAssignableFrom(that.category))   return false;
  if (action == null)   return true;
  if (!action.equals(that.action))   return false;
  if (instance == null)   return true;
  if (!instance.equals(that.instance))   return false;
  return true;
}

public boolean implies ( Permission < ? > that ) { if ( category == null ) return true ; if ( ! category . isAssignableFrom ( that . category ) ) return false ; if ( action == null ) return true ; if ( ! action . equals ( that . action ) ) return false ; if ( instance == null ) return true ; if ( ! instance . equals ( that . instance ) ) return false ; return true ; }
checks if the specified permission is automatically granted / revoked by ' this ' permission being granted / revoked .
