public function readInRelation() {
    $request = $this->getRequest();

    // rewrite query if querying for a relation
    $relationName = $request->getValue('relation');

    // set the query
    $sourceOid = ObjectId::parse($request->getValue('sourceOid'));
    $persistenceFacade = $this->getPersistenceFacade();
    $sourceNode = $persistenceFacade->load($sourceOid);
    if ($sourceNode) {
      $relationQuery = NodeUtil::getRelationQueryCondition($sourceNode, $relationName);
      $query = ($request->hasValue('query') ? $request->getValue('query').'&' : '').$relationQuery;
      $request->setValue('query', $query);

      // set the class name
      $mapper = $sourceNode->getMapper();
      $relation = $mapper->getRelation($relationName);
      $otherType = $relation->getOtherType();
      $request->setValue('className', $otherType);

      // set default order
      if (!$request->hasValue('sortFieldName')) {
        $otherMapper = $persistenceFacade->getMapper($otherType);
        $sortkeyDef = $otherMapper->getSortkey($relation->getThisRole());
        if ($sortkeyDef != null) {
          $request->setValue('sortFieldName', $sortkeyDef['sortFieldName']);
          $request->setValue('sortDirection', $sortkeyDef['sortDirection']);
        }
      }
    }

    // delegate to ListController
    $subResponse = $this->executeSubAction('list');
    $this->handleSubResponse($subResponse);
  }