/**
  * @param  FieldMappingInterface $fieldMapping
  * @return Node[]
  */
 public function getMetadataNodes(FieldMappingInterface $fieldMapping)
 {
     $items = array();
     if (null !== ($nullable = $fieldMapping->isNullable())) {
         $items[] = new ArrayItem(new ConstFetch(new Name($nullable ? 'true' : 'false')), new String_('nullable'));
     }
     if (null !== ($unique = $fieldMapping->isUnique())) {
         $items[] = new ArrayItem(new ConstFetch(new Name($unique ? 'true' : 'false')), new String_('unique'));
     }
     if (null !== ($columnName = $fieldMapping->getColumnName())) {
         $items[] = new ArrayItem(new String_($columnName), new String_('columnName'));
     }
     if (null !== ($columnDefinition = $fieldMapping->getColumnDefinition())) {
         $items[] = new ArrayItem(new String_($columnDefinition), new String_('columnDefinition'));
     }
     if (null !== ($options = $fieldMapping->getOptions())) {
         $items[] = new ArrayItem($this->covertArrayToNodes($options), new String_('options'));
     }
     $items = $this->addOtherMetadataArrayItems($fieldMapping, $items);
     if (count($items) > 0) {
         return array(new MethodCall(new Variable('builder'), 'addField', array(new Arg(new String_($fieldMapping->getName())), new Arg(new String_($this->getName())), new Arg(new Array_($items)))));
     }
     return array(new MethodCall(new Variable('builder'), 'addField', array(new Arg(new String_($fieldMapping->getName())), new Arg(new String_($this->getName())))));
 }