protected boolean checkRelation(String relationName){
  List<String> relations=dictionary.getRelationships(obj);
  String realName=dictionary.getNameFromAlias(obj,relationName);
  relationName=(realName == null) ? relationName : realName;
  if (relationName == null || relations == null || !relations.contains(relationName)) {
    throw new InvalidAttributeException(relationName,type);
  }
  checkFieldAwareDeferPermissions(ReadPermission.class,relationName,null,null);
  final PermissionExecutor executor=requestScope.getPermissionExecutor();
  try {
    executor.checkUserPermissions(dictionary.getParameterizedType(obj,relationName),ReadPermission.class);
  }
 catch (  ForbiddenAccessException e) {
    return false;
  }
  return true;
}

protected boolean checkRelation ( String relationName ) { List < String > relations = dictionary . getRelationships ( obj ) ; String realName = dictionary . getNameFromAlias ( obj , relationName ) ; relationName = ( realName == null ) ? relationName : realName ; if ( relationName == null || relations == null || ! relations . contains ( relationName ) ) { throw new InvalidAttributeException ( relationName , type ) ; } checkFieldAwareDeferPermissions ( ReadPermission . class , relationName , null , null ) ; final PermissionExecutor executor = requestScope . getPermissionExecutor ( ) ; try { executor . checkUserPermissions ( dictionary . getParameterizedType ( obj , relationName ) , ReadPermission . class ) ; } catch ( ForbiddenAccessException e ) { return false ; } return true ; }
check the permissions of the relationship , and return true or false .
