Add import feature
[ldapsaisie.git] / public_html / includes / class / class.LSioFormat.php
1 <?php
2 /*******************************************************************************
3  * Copyright (C) 2007 Easter-eggs
4  * http://ldapsaisie.labs.libre-entreprise.org
5  *
6  * Author: See AUTHORS file in top-level directory.
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License version 2
10  * as published by the Free Software Foundation.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
20
21 ******************************************************************************/
22
23 /**
24  * Manage IOformat of LSldapObject import/export
25  *
26  * @author Benjamin Renard <brenard@easter-eggs.com>
27  */
28 class LSioFormat {
29
30   var $config=False;
31   var $driver=False;
32
33   /**
34    * Constructor
35    *
36    * @param[in] string $LSobject The LSobject type name
37    * @param[in] string $ioFormat The ioFormat name
38    *
39    * @retval void
40    **/
41   function LSioFormat($LSobject,$ioFormat) {
42     $conf=LSconfig::get('LSobjects.'.$LSobject.".ioFormat.".$ioFormat);
43     if(is_array($conf)) {
44       $this -> config=$conf;
45       if (isset($this -> config['driver']) && LSsession :: loadLSclass('LSioFormat'.$this -> config['driver'])) {
46         $driverClass='LSioFormat'.$this -> config['driver'];
47         $driverOptions=array();
48         if (isset($this -> config['driver_options'])) $driverOptions = $this -> config['driver_options'];
49         $this -> driver = new $driverClass($driverOptions);
50       }
51       else {
52         LSerror :: addErrorCode('LSioFormat_01',$this -> config['driver']);
53       }
54     }
55   }
56
57   /**
58    * Check if ioFormat driver is ready
59    *
60    * @retval boolean True if ioFormat driver is ready, false otherwise
61    **/
62   function ready() {
63     return (is_array($this -> config) && $this -> driver !== False);
64   }
65
66   /**
67    * Load and valid file
68    *
69    * @param[in] string $file The file path to load
70    *
71    * @retval boolean True if file is loaded and valid, false otherwise
72    **/
73   function loadFile($file) {
74     if ($this -> driver -> loadFile($file)) {
75       return $this -> driver -> isValid();
76     }
77     return False;
78   }
79
80   /**
81    * Retreive all objects contained by the loaded file
82    *
83    * @retval array The objects contained by the loaded file
84    **/
85   function getAll() {
86     return $this -> driver -> getAllFormated($this -> config['fields'],$this -> config['generated_fields']);
87   }
88
89 }
90
91 LSerror :: defineError('LSioFormat_01',
92 _("LSioFormat : IOformat driver %{driver} invalid or unavailable.")
93 );