48 protected $modelClassName;
50 protected $attributeName;
52 protected $analysisMessages = array();
54 protected $shouldSkipRow =
false;
56 protected $columnName;
58 protected $columnMappingData = array();
60 protected $mappingRuleData = array();
62 protected $importSanitizeResultsUtil;
64 protected $penultimateModelClassName;
66 protected $penultimateAttributeName;
68 protected $explicitReadWriteModelPermissions = null;
83 abstract public function analyzeByRow(RedBean_OODBBean $rowBean);
90 $type = get_called_class();
91 $type = substr($type, 0, strlen($type) - strlen(
'SanitizerUtil'));
118 protected static function resolveMappingRuleData($columnMappingData)
120 assert(
'$columnMappingData == null || is_array($columnMappingData)');
121 $mappingRuleType = static::getLinkedMappingRuleType();
123 if ($mappingRuleType === null || empty($mappingRuleType))
128 $mappingRuleFormClassName = $mappingRuleType .
'MappingRuleForm';
129 if (!isset($columnMappingData[
'mappingRulesData']) ||
130 !isset($columnMappingData[
'mappingRulesData'][$mappingRuleFormClassName]))
136 $mappingRuleData = $columnMappingData[
'mappingRulesData'][$mappingRuleFormClassName];
137 assert(
'$mappingRuleData != null');
138 return $mappingRuleData;
149 public function __construct($modelClassName, $attributeName, $columnName, array $columnMappingData,
151 $penultimateModelClassName, $penultimateAttributeName,
152 $explicitReadWriteModelPermissions = null)
154 assert(
'is_string($modelClassName)');
155 assert(
'is_string($attributeName) || $attributeName == null');
156 assert(
'is_string($columnName)');
157 $this->modelClassName = $modelClassName;
158 $this->attributeName = $attributeName;
159 $this->columnName = $columnName;
160 $this->columnMappingData = $columnMappingData;
161 $this->mappingRuleData = static::resolveMappingRuleData($this->columnMappingData);
162 $this->importSanitizeResultsUtil = $importSanitizeResultsUtil;
163 $this->penultimateModelClassName = $penultimateModelClassName;
164 $this->penultimateAttributeName = $penultimateAttributeName;
165 $this->explicitReadWriteModelPermissions = $explicitReadWriteModelPermissions;
170 public function shouldSanitizeValue()
172 if ($this->columnMappingData[
"type"] ==
'extraColumn')
179 public function getAnalysisMessages()
181 return $this->analysisMessages;
184 public function getShouldSkipRow()
186 return $this->shouldSkipRow;
assertMappingRuleDataIsValid()
static shouldNotSaveModelOnSanitizingValueFailure()
analyzeByRow(RedBean_OODBBean $rowBean)
static getLinkedMappingRuleType()
__construct($modelClassName, $attributeName, $columnName, array $columnMappingData, ImportSanitizeResultsUtil $importSanitizeResultsUtil=null, $penultimateModelClassName, $penultimateAttributeName, $explicitReadWriteModelPermissions=null)