code: private function buildComplexIndexMenu($modelName, $modelId, ModelConfig $config = null) {
          $model = $this->aujaConfigurator->getModel($modelName);
          $relations = $this->aujaConfigurator->getRelationsForModel($model);
  
          $associationRelations = array();
          foreach ($relations as $relation) {
              if ($relation->getType() == Relation::HAS_MANY || $relation->getType() == Relation::HAS_AND_BELONGS_TO) { // TODO: What to do with one-to-one relations?
                  $associationRelations[] = $relation;
              }
          }
  
          switch (count($associationRelations)) {
              case 0:
                  $menu = $this->noAssociationsMenuFor($modelName, $config);
                  break;
              case 1:
                  $menu = $this->singleAssociationMenuFor($modelName, $modelId, $associationRelations[0], $config);
                  break;
              default:
                  $menu = $this->multipleAssociationsMenuFor($modelName, $modelId, $associationRelations, $config);
                  break;
          }
  
          return $menu;
      }
docs: Creates a `Menu` for given model, with a layout depending on its relations.
  
  @param String      $modelName The name of the model to create a `Menu` for.
  @param int         $modelId   The id of an instance of the model, 0 for none.
  @param ModelConfig $config    (optional) The `ModelConfig` to use.
  
  @return Menu The built `Menu` instance, which can be configured further.