public function generate(array $parameters = array(), array $options = array())
    {
        $parametersResolver = new OptionsResolver();
        $this->setDefaultParameters($parametersResolver);

        $parameters = $parametersResolver->resolve($parameters);

        $optionsResolver = new OptionsResolver();
        $this->setDefaultOptions($optionsResolver);

        $options = $optionsResolver->resolve($options);

        return $this->doGenerate($parameters, $options);
    }