insertExistingField() 추상적인 공개 메소드

Used to insert a field with an existing ID but a new version number.
abstract public insertExistingField ( eZ\Publish\SPI\Persistence\Content $content, eZ\Publish\SPI\Persistence\Content\Field $field, StorageFieldValue $value )
$content eZ\Publish\SPI\Persistence\Content
$field eZ\Publish\SPI\Persistence\Content\Field
$value StorageFieldValue
 /**
  * Inserts an existing field.
  *
  * Used to insert a field with an exsting ID but a new version number.
  *
  * @param Content $content
  * @param Field $field
  * @param StorageFieldValue $value
  *
  * @return void
  */
 public function insertExistingField(Content $content, Field $field, StorageFieldValue $value)
 {
     try {
         return $this->innerGateway->insertExistingField($content, $field, $value);
     } catch (DBALException $e) {
         throw new RuntimeException('Database error', 0, $e);
     } catch (PDOException $e) {
         throw new RuntimeException('Database error', 0, $e);
     }
 }
 /**
  * Creates an existing field in a new version, no new ID is generated.
  *
  * Used to insert a field with an existing ID but a new version number.
  * $content is used for new version data, needed by Content gateway and external storage.
  *
  * External data is being copied here as some FieldTypes require original field external data.
  * By default copying falls back to storing, it is upon external storage implementation to override
  * the behaviour as needed.
  *
  * @param Field $field
  * @param Content $content
  *
  * @return void
  */
 protected function createExistingFieldInNewVersion(Field $field, Content $content)
 {
     $originalField = clone $field;
     $field->versionNo = $content->versionInfo->versionNo;
     $this->contentGateway->insertExistingField($content, $field, $this->mapper->convertToStorageValue($field));
     // If the storage handler returns true, it means that $field value has been modified
     // So we need to update it in order to store those modifications
     // Field converter is called once again via the Mapper
     if ($this->storageHandler->copyFieldData($content->versionInfo, $field, $originalField) === true) {
         $this->contentGateway->updateField($field, $this->mapper->convertToStorageValue($field));
     }
 }