def create(cv)
      if cv.public_id.nil? then
        raise ArgumentError.new("Controlled value create is missing a public id")
      end
      if cv.value.nil? then
        raise ArgumentError.new("Controlled value create is missing a value")
      end
      cv.identifier ||= next_id
      logger.debug { "Creating controlled value #{cv} in the database..." }
      @executor.transact(INSERT_STMT, cv.identifier, cv.parent_identifier, cv.public_id, cv.value)
      logger.debug { "Controlled value #{cv.public_id} #{cv.value} created with identifier #{cv.identifier}" }
      @pid_value_cv_hash[cv.public_id][cv.value] = cv
    end
def create(cv)
      if cv.public_id.nil? then
        raise ArgumentError.new("Controlled value create is missing a public id")
      end
      if cv.value.nil? then
        raise ArgumentError.new("Controlled value create is missing a value")
      end
      cv.identifier ||= next_id
      logger.debug { "Creating controlled value #{cv} in the database..." }
      @executor.transact(INSERT_STMT, cv.identifier, cv.parent_identifier, cv.public_id, cv.value)
      logger.debug { "Controlled value #{cv.public_id} #{cv.value} created with identifier #{cv.identifier}" }
      @pid_value_cv_hash[cv.public_id][cv.value] = cv
    end
Creates a new controlled value record in the database from the given ControlledValue cv.
 The default identifier is the next identifier in the permissible values table.

 @param [ControlledValue] cv the controlled value to create
 @return [ControlledValue] the created CV