public function buildForm(FormBuilderInterface $builder, array $options)
{
$options['pref_options']['required'] = $options['required'];
$options['addr01_options']['required'] = $options['required'];
$options['addr02_options']['required'] = $options['required'];
// required の場合は NotBlank も追加する
if ($options['required']) {
$options['pref_options']['constraints'] = array_merge(array(new Assert\NotBlank(array())), $options['pref_options']['constraints']);
$options['addr01_options']['constraints'] = array_merge(array(new Assert\NotBlank(array())), $options['addr01_options']['constraints']);
$options['addr02_options']['constraints'] = array_merge(array(new Assert\NotBlank(array())), $options['addr02_options']['constraints']);
}
if (!isset($options['options']['error_bubbling'])) {
$options['options']['error_bubbling'] = $options['error_bubbling'];
}
$builder->add($options['pref_name'], 'pref', array_merge_recursive($options['options'], $options['pref_options']))->add($options['addr01_name'], 'text', array_merge_recursive($options['options'], $options['addr01_options']))->add($options['addr02_name'], 'text', array_merge_recursive($options['options'], $options['addr02_options']));
$builder->setAttribute('pref_name', $options['pref_name']);
$builder->setAttribute('addr01_name', $options['addr01_name']);
$builder->setAttribute('addr02_name', $options['addr02_name']);
}