00001 <?php 00002 /** 00003 * Magento 00004 * 00005 * NOTICE OF LICENSE 00006 * 00007 * This source file is subject to the Open Software License (OSL 3.0) 00008 * that is bundled with this package in the file LICENSE.txt. 00009 * It is also available through the world-wide-web at this URL: 00010 * http://opensource.org/licenses/osl-3.0.php 00011 * If you did not receive a copy of the license and are unable to 00012 * obtain it through the world-wide-web, please send an email 00013 * to license@magentocommerce.com so we can send you a copy immediately. 00014 * 00015 * DISCLAIMER 00016 * 00017 * Do not edit or add to this file if you wish to upgrade Magento to newer 00018 * versions in the future. If you wish to customize Magento for your 00019 * needs please refer to http://www.magentocommerce.com for more information. 00020 * 00021 * @category Mage 00022 * @package Mage_Dataflow 00023 * @copyright Copyright (c) 2008 Irubin Consulting Inc. DBA Varien (http://www.varien.com) 00024 * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) 00025 */ 00026 00027 00028 /** 00029 * Convert parser abstract 00030 * 00031 * @category Mage 00032 * @package Mage_Dataflow 00033 * @author Magento Core Team <core@magentocommerce.com> 00034 */ 00035 abstract class Mage_Dataflow_Model_Convert_Parser_Abstract 00036 extends Mage_Dataflow_Model_Convert_Container_Abstract 00037 implements Mage_Dataflow_Model_Convert_Parser_Interface 00038 { 00039 /** 00040 * Dataflow batch model 00041 * 00042 * @var Mage_Dataflow_Model_Batch 00043 */ 00044 protected $_batch; 00045 00046 /** 00047 * Dataflow batch export model 00048 * 00049 * @var Mage_Dataflow_Model_Batch_Export 00050 */ 00051 protected $_batchExport; 00052 00053 /** 00054 * Dataflow batch import model 00055 * 00056 * @var Mage_Dataflow_Model_Batch_Import 00057 */ 00058 protected $_batchImport; 00059 00060 /** 00061 * Count parse rows 00062 * 00063 * @var int 00064 */ 00065 protected $_countRows = 0; 00066 00067 /** 00068 * Retrieve Batch model singleton 00069 * 00070 * @return Mage_Dataflow_Model_Batch 00071 */ 00072 public function getBatchModel() 00073 { 00074 if (is_null($this->_batch)) { 00075 $this->_batch = Mage::getSingleton('dataflow/batch'); 00076 } 00077 return $this->_batch; 00078 } 00079 00080 /** 00081 * Retrieve Batch export model 00082 * 00083 * @return Mage_Dataflow_Model_Batch_Export 00084 */ 00085 public function getBatchExportModel() 00086 { 00087 if (is_null($this->_batchExport)) { 00088 $object = Mage::getModel('dataflow/batch_export'); 00089 $this->_batchExport = Varien_Object_Cache::singleton()->save($object); 00090 } 00091 return Varien_Object_Cache::singleton()->load($this->_batchExport); 00092 } 00093 00094 /** 00095 * Retrieve Batch import model 00096 * 00097 * @return Mage_Dataflow_Model_Import_Export 00098 */ 00099 public function getBatchImportModel() 00100 { 00101 if (is_null($this->_batchImport)) { 00102 $object = Mage::getModel('dataflow/batch_import'); 00103 $this->_batchImport = Varien_Object_Cache::singleton()->save($object); 00104 } 00105 return Varien_Object_Cache::singleton()->load($this->_batchImport); 00106 } 00107 00108 protected function _copy($file) 00109 { 00110 $ioAdapter = new Varien_Io_File(); 00111 if (!$ioAdapter->fileExists($file)) { 00112 Mage::throwException(Mage::helper('dataflow')->__('File "%s" don\'t exist', $file)); 00113 } 00114 00115 $ioAdapter->setAllowCreateFolders(true); 00116 $ioAdapter->createDestinationDir($this->getBatchModel()->getIoAdapter()->getPath()); 00117 00118 return $ioAdapter->cp($file, $this->getBatchModel()->getIoAdapter()->getFile(true)); 00119 } 00120 }