From be6e27a200795740d21ecdae797c55e720b70751 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Guillaume=20Perr=C3=A9al?= <guillaume.perreal@irstea.fr>
Date: Thu, 22 Jan 2015 13:45:05 +0100
Subject: [PATCH] Ajout du UploadedFileTransformer.

---
 .../UploadedFileTransformer.php               | 74 +++++++++++++++++++
 1 file changed, 74 insertions(+)
 create mode 100644 Form/DataTranformer/UploadedFileTransformer.php

diff --git a/Form/DataTranformer/UploadedFileTransformer.php b/Form/DataTranformer/UploadedFileTransformer.php
new file mode 100644
index 00000000..3ecae0f2
--- /dev/null
+++ b/Form/DataTranformer/UploadedFileTransformer.php
@@ -0,0 +1,74 @@
+<?php
+
+/*
+ * Copyright (C) 2015 IRSTEA
+ * All rights reserved.
+ */
+
+namespace Irstea\FileUploadBundle\Form\DataTranformer;
+
+use Irstea\FileUploadBundle\Entity\UploadedFile;
+use Irstea\FileUploadBundle\Service\FileManagerInterface;
+use Symfony\Component\Form\DataTransformerInterface;
+
+/**
+ * Description of UploadedFileTransformer
+ */
+class UploadedFileTransformer implements DataTransformerInterface
+{
+    /**
+     *
+     * @var boolean
+     */
+    private $multiple;
+
+    /**
+     *
+     * @var FileManagerInterface
+     */
+    private $fileManager;
+
+    public function __construct(FileManagerInterface $fileManager, $multiple = false)
+    {
+        $this->fileManager = $fileManager;
+        $this->multiple = $multiple;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function reverseTransform($value)
+    {
+        $result = $value instanceof UploadedFile ? $value : (is_string($value) ? $this->reverseTransformFile($value) : null);
+        return $result;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function transform($value)
+    {
+        $result = $value instanceof UploadedFile ? $this->transformFile($value) : null;
+        return $result;
+    }
+
+    /**
+     *
+     * @param UploadedFile $file
+     * @return array
+     */
+    protected function transformFile(UploadedFile $file)
+    {
+        return $file;
+    }
+
+    /**
+     *
+     * @param string $id
+     * @return UploadedFile
+     */
+    protected function reverseTransformFile($id)
+    {
+        return $this->fileManager->get($id);
+    }
+}
-- 
GitLab