/**
  * @param  FieldMappingInterface $fieldMapping
  * @return Node[]
  */
 public function getMetadataNodes(FieldMappingInterface $fieldMapping)
 {
     if (!$fieldMapping instanceof One2OneOwningSideMapping) {
         throw new \InvalidArgumentException('Field mapping has to be One2OneOwningSideMapping!');
     }
     if (null === $fieldMapping->getInversedBy()) {
         return array(new MethodCall(new Variable('builder'), 'addOwningOneToOne', array(new Arg(new String_($fieldMapping->getName())), new Arg(new String_($fieldMapping->getTargetModel())))));
     }
     return array(new MethodCall(new Variable('builder'), 'addOwningOneToOne', array(new Arg(new String_($fieldMapping->getName())), new Arg(new String_($fieldMapping->getTargetModel())), new Arg(new String_($fieldMapping->getInversedBy())))));
 }