protected function generatePropelChildren()
    {
        if (null === $this->propelClassName)
        {
            return;
        }

        $queryClass = $this->propelClassName.'Query';
        $query = $queryClass::create();

        foreach ($this->propelQueryMethods as $method => $params)
        {
            call_user_func_array(array($query, $method), $params);
        }

        $accessor = PropertyAccess::getPropertyAccessor();

        $elements = $query->find();
        foreach ($elements as $element)
        {
            $options = $this->propelChildOptions;

            if (null !== $this->propelTitleField)
            {
                $options['title'] = $accessor->getValue($element, $this->propelTitleField);
            }
            else
            {
                $options['title'] = (string) $element;
            }

            if (!isset($options['set_request_variables']))
            {
                $options['set_request_variables'] = array();
            }

            foreach ($this->propelChildRouteParameters as $param)
            {
                $value = $accessor->getValue($element, $param);
                $options['set_request_variables'][$param] = $value;
                $options['match_request_variables'][$param] = $value;
            }

            $options['custom_object'] = $element;

            $this->addChildByData($this->propelChildRoute, $options);
        }
    }