Account Suspended
Account Suspended
This Account has been suspended.
Contact your hosting provider for more information.
 All Data Structures Functions Variables Pages
MappingRuleFormAndElementTypeUtil.php
1 <?php
2  /*********************************************************************************
3  * Zurmo is a customer relationship management program developed by
4  * Zurmo, Inc. Copyright (C) 2017 Zurmo Inc.
5  *
6  * Zurmo is free software; you can redistribute it and/or modify it under
7  * the terms of the GNU Affero General Public License version 3 as published by the
8  * Free Software Foundation with the addition of the following permission added
9  * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
10  * IN WHICH THE COPYRIGHT IS OWNED BY ZURMO, ZURMO DISCLAIMS THE WARRANTY
11  * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
12  *
13  * Zurmo is distributed in the hope that it will be useful, but WITHOUT
14  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
15  * FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
16  * details.
17  *
18  * You should have received a copy of the GNU Affero General Public License along with
19  * this program; if not, see http://www.gnu.org/licenses or write to the Free
20  * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
21  * 02110-1301 USA.
22  *
23  * You can contact Zurmo, Inc. with a mailing address at 27 North Wacker Drive
24  * Suite 370 Chicago, IL 60606. or at email address contact@zurmo.com.
25  *
26  * The interactive user interfaces in original and modified versions
27  * of this program must display Appropriate Legal Notices, as required under
28  * Section 5 of the GNU Affero General Public License version 3.
29  *
30  * In accordance with Section 7(b) of the GNU Affero General Public License version 3,
31  * these Appropriate Legal Notices must retain the display of the Zurmo
32  * logo and Zurmo copyright notice. If the display of the logo is not reasonably
33  * feasible for technical reasons, the Appropriate Legal Notices must display the words
34  * "Copyright Zurmo Inc. 2017. All rights reserved".
35  ********************************************************************************/
36 
41  {
50  public static function makeCollectionByAttributeImportRules($attributeImportRules, $attributeIndexOrDerivedType, $columnType)
51  {
52  assert('$attributeImportRules instanceof AttributeImportRules');
53  assert('is_string($attributeIndexOrDerivedType)');
54  assert('$columnType == "importColumn" || $columnType == "extraColumn"');
55  $mappingRuleFormsAndElementTypes = array();
56  $mappingRuleFormTypesAndElementTypes = $attributeImportRules::
57  getModelAttributeMappingRuleFormTypesAndElementTypes($columnType);
58  foreach ($mappingRuleFormTypesAndElementTypes as $mappingRuleFormType => $elementType)
59  {
60  $mappingRuleFormClassName = $mappingRuleFormType . 'MappingRuleForm';
61  $modelClassName = $attributeImportRules->getModelClassName();
62  if ($attributeImportRules instanceof NonDerivedAttributeImportRules)
63  {
64  $attributeNameOrDerivedType = $attributeImportRules->getModelAttributeName();
65  }
66  elseif ($attributeImportRules instanceof DerivedAttributeImportRules)
67  {
68  $attributeNameOrDerivedType = $attributeImportRules::getType();
69  }
70  else
71  {
72  throw new NotSupportedException();
73  }
74  $mappingRuleForm = new $mappingRuleFormClassName(
75  $modelClassName,
76  $attributeNameOrDerivedType);
77  $mappingRuleFormsAndElementTypes[] = array('elementType' => $elementType,
78  'mappingRuleForm' => $mappingRuleForm);
79  }
80  return $mappingRuleFormsAndElementTypes;
81  }
82 
90  public static function makeFormsAndElementTypesByMappingDataAndImportRulesType($mappingData, $importRulesType)
91  {
92  assert('is_array($mappingData)');
93  assert('is_string($importRulesType)');
94  $mappingRuleFormsAndElementTypes = array();
95  foreach ($mappingData as $columnName => $mappingDataByColumn)
96  {
97  $mappingRuleFormsAndElementTypes[$columnName] = array();
98  assert('$mappingDataByColumn["type"] == "importColumn" || $mappingDataByColumn["type"] == "extraColumn"');
99  if ($mappingDataByColumn['attributeIndexOrDerivedType'] != null)
100  {
101  $attributeImportRulesClassName = AttributeImportRulesFactory::
103  $importRulesType,
104  $mappingDataByColumn['attributeIndexOrDerivedType']);
105  foreach ($mappingDataByColumn["mappingRulesData"] as $mappingRuleFormClassName => $mappingRuleFormData)
106  {
107  $mappingRuleFormAndElementTypes = $attributeImportRulesClassName::
108  getModelAttributeMappingRuleFormTypesAndElementTypes(
109  $mappingDataByColumn["type"]);
110  $elementType = $mappingRuleFormAndElementTypes
111  [$mappingRuleFormClassName::getType()];
112  $mappingRuleForm = static::makeForm($importRulesType,
113  $mappingDataByColumn['attributeIndexOrDerivedType'],
114  $mappingRuleFormClassName);
115  if ($mappingDataByColumn['type'] == "extraColumn")
116  {
117  $mappingRuleForm->setScenario('extraColumn');
118  }
119  $mappingRuleForm->setAttributes ($mappingRuleFormData);
120  $mappingRuleFormsAndElementTypes[$columnName][]= array('mappingRuleForm' => $mappingRuleForm,
121  'elementType' => $elementType);
122  }
123  }
124  }
125  return $mappingRuleFormsAndElementTypes;
126  }
127 
134  public static function makeForm($importRulesType, $attributeIndexOrDerivedType, $mappingRuleFormClassName)
135  {
136  assert('is_string($importRulesType)');
137  assert('is_string($attributeIndexOrDerivedType)');
138  assert('is_string($mappingRuleFormClassName)');
139  $importRulesTypeClassName = ImportRulesUtil::getImportRulesClassNameByType($importRulesType);
140  $modelClassName = $importRulesTypeClassName::getModelClassNameByAttributeIndexOrDerivedType(
141  $attributeIndexOrDerivedType);
142  $attributeName = AttributeImportRulesFactory::
144  $modelClassName,
145  $attributeIndexOrDerivedType);
146  $mappingRuleForm = new $mappingRuleFormClassName($modelClassName, $attributeName);
147  return $mappingRuleForm;
148  }
149 
157  public static function validateMappingRuleForms($mappingDataMappingRuleFormsData)
158  {
159  assert('is_array($mappingDataMappingRuleFormsData)');
160  $anyValidatedFalse = false;
161  foreach ($mappingDataMappingRuleFormsData as $notUsed => $mappingRuleFormsData)
162  {
163  foreach ($mappingRuleFormsData as $a => $mappingRuleFormData)
164  {
165  assert('$mappingRuleFormData["mappingRuleForm"] instanceof MappingRuleForm');
166  if (!$mappingRuleFormData["mappingRuleForm"]->validate())
167  {
168  $anyValidatedFalse = true;
169  }
170  }
171  }
172  return !$anyValidatedFalse;
173  }
174  }
175 ?>
static validateMappingRuleForms($mappingDataMappingRuleFormsData)
static resolveModelClassNameAndAttributeNameByAttributeIndexOrDerivedType(&$modelClassName, $attributeIndexOrDerivedType)
static getImportRulesClassNameByType($importRulesType)
static makeForm($importRulesType, $attributeIndexOrDerivedType, $mappingRuleFormClassName)
static makeFormsAndElementTypesByMappingDataAndImportRulesType($mappingData, $importRulesType)
static getClassNameByImportRulesTypeAndAttributeIndexOrDerivedType($importRulesType, $attributeIndexOrDerivedType)
static makeCollectionByAttributeImportRules($attributeImportRules, $attributeIndexOrDerivedType, $columnType)
Generated on Fri Jul 3 2020 07:10:33
Account Suspended
Account Suspended
This Account has been suspended.
Contact your hosting provider for more information.