def create_reference(obj, property, row, created)
      if property.type.abstract? then
        raise MigrationError.new("Cannot create #{obj.qp} #{property} with abstract type #{property.type}")
      end
      ref = property.type.new
      ref.migrate(row, Array::EMPTY_ARRAY)
      obj.send(property.writer, ref)
      created << ref
      logger.debug { "The migrator created #{obj.qp} #{property} #{ref}." }
      ref
    end
def create_reference(obj, property, row, created)
      if property.type.abstract? then
        raise MigrationError.new("Cannot create #{obj.qp} #{property} with abstract type #{property.type}")
      end
      ref = property.type.new
      ref.migrate(row, Array::EMPTY_ARRAY)
      obj.send(property.writer, ref)
      created << ref
      logger.debug { "The migrator created #{obj.qp} #{property} #{ref}." }
      ref
    end
Sets the given migrated object's reference attribute to a new referenced domain object.

 @param [Resource] obj the domain object being migrated
 @param [Property] property the property being migrated
 @param row (see #create)
 @param created (see #create)
 @return the new object