1: <?php
2: /**
3: * Magento
4: *
5: * NOTICE OF LICENSE
6: *
7: * This source file is subject to the Open Software License (OSL 3.0)
8: * that is bundled with this package in the file LICENSE.txt.
9: * It is also available through the world-wide-web at this URL:
10: * http://opensource.org/licenses/osl-3.0.php
11: * If you did not receive a copy of the license and are unable to
12: * obtain it through the world-wide-web, please send an email
13: * to license@magentocommerce.com so we can send you a copy immediately.
14: *
15: * DISCLAIMER
16: *
17: * Do not edit or add to this file if you wish to upgrade Magento to newer
18: * versions in the future. If you wish to customize Magento for your
19: * needs please refer to http://www.magentocommerce.com for more information.
20: *
21: * @category Mage
22: * @package Mage_Dataflow
23: * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24: * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25: */
26:
27:
28: /**
29: * Convert parser abstract
30: *
31: * @category Mage
32: * @package Mage_Dataflow
33: * @author Magento Core Team <core@magentocommerce.com>
34: */
35: abstract class Mage_Dataflow_Model_Convert_Parser_Abstract
36: extends Mage_Dataflow_Model_Convert_Container_Abstract
37: implements Mage_Dataflow_Model_Convert_Parser_Interface
38: {
39: /**
40: * Dataflow batch model
41: *
42: * @var Mage_Dataflow_Model_Batch
43: */
44: protected $_batch;
45:
46: /**
47: * Dataflow batch export model
48: *
49: * @var Mage_Dataflow_Model_Batch_Export
50: */
51: protected $_batchExport;
52:
53: /**
54: * Dataflow batch import model
55: *
56: * @var Mage_Dataflow_Model_Batch_Import
57: */
58: protected $_batchImport;
59:
60: /**
61: * Count parse rows
62: *
63: * @var int
64: */
65: protected $_countRows = 0;
66:
67: /**
68: * Retrieve Batch model singleton
69: *
70: * @return Mage_Dataflow_Model_Batch
71: */
72: public function getBatchModel()
73: {
74: if (is_null($this->_batch)) {
75: $this->_batch = Mage::getSingleton('dataflow/batch');
76: }
77: return $this->_batch;
78: }
79:
80: /**
81: * Retrieve Batch export model
82: *
83: * @return Mage_Dataflow_Model_Batch_Export
84: */
85: public function getBatchExportModel()
86: {
87: if (is_null($this->_batchExport)) {
88: $object = Mage::getModel('dataflow/batch_export');
89: $this->_batchExport = Varien_Object_Cache::singleton()->save($object);
90: }
91: return Varien_Object_Cache::singleton()->load($this->_batchExport);
92: }
93:
94: /**
95: * Retrieve Batch import model
96: *
97: * @return Mage_Dataflow_Model_Import_Export
98: */
99: public function getBatchImportModel()
100: {
101: if (is_null($this->_batchImport)) {
102: $object = Mage::getModel('dataflow/batch_import');
103: $this->_batchImport = Varien_Object_Cache::singleton()->save($object);
104: }
105: return Varien_Object_Cache::singleton()->load($this->_batchImport);
106: }
107:
108: protected function _copy($file)
109: {
110: $ioAdapter = new Varien_Io_File();
111: if (!$ioAdapter->fileExists($file)) {
112: Mage::throwException(Mage::helper('dataflow')->__('File "%s" does not exist.', $file));
113: }
114:
115: $ioAdapter->setAllowCreateFolders(true);
116: $ioAdapter->createDestinationDir($this->getBatchModel()->getIoAdapter()->getPath());
117:
118: return $ioAdapter->cp($file, $this->getBatchModel()->getIoAdapter()->getFile(true));
119: }
120: }
121: