Преглед на файлове

Code cleanup (removed dead and misleading code branches), following revision [3347]

git-svn-id: http://svn.code.sf.net/p/itop/code/trunk@3348 a333f486-631f-4898-b8df-5754b55c2be0
romainq преди 10 години
родител
ревизия
6195663f7b
променени са 1 файла, в които са добавени 22 реда и са изтрити 378 реда
  1. 22 378
      setup/modelfactory.class.inc.php

+ 22 - 378
setup/modelfactory.class.inc.php

@@ -668,9 +668,9 @@ class ModelFactory
 	 * @throws Exception
 	 * @return bool True if the class exists, false otherwise
 	 */
-	protected function ClassNameExists($sClassName, $bFlattenLayers = true)
+	protected function ClassNameExists($sClassName)
 	{
-		return !is_null($this->GetClass($sClassName, $bFlattenLayers));
+		return !is_null($this->GetClass($sClassName));
 	}
 
 	/**
@@ -717,60 +717,6 @@ class ModelFactory
 		}
 	}
 	
-	/**
-	 * Remove a class from the DOM
-	 * @param string $sClass
-	 * @throws Exception
-	 */
-	public function RemoveClass($sClass)
-	{
-		$oClassNode = $this->GetClass($sClass);
-		if ($oClassNode == null)
-		{
-			throw new Exception("ModelFactory::RemoveClass: Cannot remove the non existing class $sClass");
-		}
-
-		// Note: the child classes are removed entirely
-		$oClassNode->Delete();
-	}
-
-	/**
-	 * Modify a class within the DOM
-	 * @param string $sMenuId
-	 * @param DOMNode $oMenuNode
-	 * @throws Exception
-	 */
-	public function AlterClass($sClassName, DOMNode $oClassNode)
-	{
-		$sOriginalName = $sClassName;
-		if ($this->ClassNameExists($sClassName))
-		{
-			$oDestNode = self::$aLoadedClasses[$sClassName];
-		}
-		else
-		{
-			$sOriginalName = $oClassNode->getAttribute('_original_name');
-			if ($this->ClassNameExists($sOriginalName))
-			{
-				// Class was renamed !
-				$oDestNode = self::$aLoadedClasses[$sOriginalName];
-			}
-			else
-			{
-				throw new Exception("ModelFactory::AddClass: Cannot alter the non-existing class $sClassName / $sOriginalName");
-			}
-		}
-		$this->_priv_AlterNode($oDestNode, $oClassNode);
-		$sClassName = $oDestNode->getAttribute('id');
-		if ($sOriginalName != $sClassName)
-		{
-			unset(self::$aLoadedClasses[$sOriginalName]);
-			self::$aLoadedClasses[$sClassName] = $oDestNode;
-		}
-		$this->_priv_SetFlag($oDestNode, 'modified');
-	}
-
-	
 	public function GetClassXMLTemplate($sName, $sIcon)
 	{
 		$sHeader = '<?'.'xml version="1.0" encoding="utf-8"?'.'>';
@@ -802,76 +748,44 @@ EOF
 	/**
 	 * List all constants from the DOM, for a given module
 	 * @param string $sModuleName
-	 * @param bool $bFlattenLayers
 	 * @throws Exception
 	 */
-	public function ListConstants($sModuleName, $bFlattenLayers = true)
+	public function ListConstants($sModuleName)
 	{
-		$sXPath = "/itop_design/constants/constant[@_created_in='$sModuleName']";
-		if ($bFlattenLayers)
-		{
-			$sXPath = "/itop_design/constants/constant[@_created_in='$sModuleName' and (not(@_alteration) or @_alteration!='removed')]";
-		}
-		return $this->GetNodes($sXPath);
+		return $this->GetNodes("/itop_design/constants/constant[@_created_in='$sModuleName']");
 	}
 
 	/**
 	 * List all classes from the DOM, for a given module
 	 * @param string $sModuleName
-	 * @param bool $bFlattenLayers
 	 * @throws Exception
 	 */
-	public function ListClasses($sModuleName, $bFlattenLayers = true)
+	public function ListClasses($sModuleName)
 	{
-		$sXPath = "/itop_design/classes//class[@_created_in='$sModuleName']";
-		if ($bFlattenLayers)
-		{
-			$sXPath = "/itop_design/classes//class[@_created_in='$sModuleName' and (not(@_alteration) or @_alteration!='removed')]";
-		}
-		return $this->GetNodes($sXPath);
+		return $this->GetNodes("/itop_design/classes//class[@_created_in='$sModuleName']");
 	}
 		
 	/**
 	 * List all classes from the DOM
-	 * @param bool $bFlattenLayers
 	 * @throws Exception
 	 */
-	public function ListAllClasses($bFlattenLayers = true)
+	public function ListAllClasses()
 	{
-		$sXPath = "/itop_design/classes//class";
-		if ($bFlattenLayers)
-		{
-			$sXPath = "/itop_design/classes//class[not(@_alteration) or @_alteration!='removed']";
-		}
-		return $this->GetNodes($sXPath);
+		return $this->GetNodes("/itop_design/classes//class");
 	}
 	
 	/**
 	 * List top level (non abstract) classes having child classes
-	 * @param bool $bFlattenLayers
 	 * @throws Exception
 	 */
-	public function ListRootClasses($bFlattenLayers = true)
+	public function ListRootClasses()
 	{
-		$sXPath = "/itop_design/classes/class/class/class/..";
-		if ($bFlattenLayers)
-		{
-			$sXPath = "/itop_design/classes/class/class[not(@_alteration) or @_alteration!='removed']/class[not(@_alteration) or @_alteration!='removed']/..";
-		}
-		return $this->GetNodes($sXPath);
+		return $this->GetNodes("/itop_design/classes/class/class[class]");
 	}
 
-	public function GetClass($sClassName, $bFlattenLayers = true)
+	public function GetClass($sClassName)
 	{
 		$oClassNode = $this->GetNodes("/itop_design/classes//class[@id='$sClassName']")->item(0);
-		if (($oClassNode != null) && ($bFlattenLayers))
-		{
-			$sOperation = $oClassNode->getAttribute('_alteration');
-			if ($sOperation == 'removed')
-			{
-				$oClassNode = null;
-			}
-		}
 		return $oClassNode;
 	}
 	
@@ -883,324 +797,54 @@ EOF
 		return $oWKClass;	
 	}
 	
-	public function GetChildClasses($oClassNode, $bFlattenLayers = true)
+	public function GetChildClasses($oClassNode)
 	{
-		$sXPath = "class";
-		if ($bFlattenLayers)
-		{
-			$sXPath = "class[(@_operation!='removed')]";
-		}
-		return $this->GetNodes($sXPath, $oClassNode);
+		return $this->GetNodes("class", $oClassNode);
 	}
 		
 	
-	public function GetField($sClassName, $sAttCode, $bFlattenLayers = true)
+	public function GetField($sClassName, $sAttCode)
 	{
 		if (!$this->ClassNameExists($sClassName))
 		{
 			return null;
 		}
 		$oClassNode = self::$aLoadedClasses[$sClassName];
-		if ($bFlattenLayers)
-		{
-			$sOperation = $oClassNode->getAttribute('_operation');
-			if ($sOperation == 'removed')
-			{
-				$oClassNode = null;
-			}
-		}
-		$sXPath = "fields/field[@id='$sAttCode']";
-		if ($bFlattenLayers)
-		{
-			$sXPath = "fields/field[(@id='$sAttCode' and (not(@_operation) or @_operation!='removed'))]";
-		}
-		$oFieldNode = $this->GetNodes($sXPath, $oClassNode)->item(0);
+		$oFieldNode = $this->GetNodes("fields/field[@id='$sAttCode']", $oClassNode)->item(0);
 		if (($oFieldNode == null) && ($sParentClass = $oClassNode->GetChildText('parent')))
 		{
-			return $this->GetField($sParentClass, $sAttCode, $bFlattenLayers);
+			return $this->GetField($sParentClass, $sAttCode);
 		}
 		return $oFieldNode;
 	}
 		
 	/**
 	 * List all classes from the DOM
-	 * @param bool $bFlattenLayers
 	 * @throws Exception
 	 */
-	public function ListFields(DOMNode $oClassNode, $bFlattenLayers = true)
-	{
-		$sXPath = "fields/field";
-		if ($bFlattenLayers)
-		{
-			$sXPath = "fields/field[not(@_alteration) or @_alteration!='removed']";
-		}
-		return $this->GetNodes($sXPath, $oClassNode);
-	}
-	
-	public function AddField(DOMNode $oClassNode, $sFieldCode, $sFieldType, $sSQL, $defaultValue, $bIsNullAllowed, $aExtraParams)
+	public function ListFields(DOMNode $oClassNode)
 	{
-		$oNewField = $this->oDOMDocument->createElement('field');
-		$oNewField->setAttribute('id', $sFieldCode);
-		$this->_priv_AlterField($oNewField, $sFieldType, $sSQL, $defaultValue, $bIsNullAllowed, $aExtraParams);
-		$oFields = $oClassNode->getElementsByTagName('fields')->item(0);
-		$oFields->AppendChild($oNewField);
-		$this->_priv_SetFlag($oNewField, 'added');
-	}
-	
-	public function RemoveField(DOMNode $oClassNode, $sFieldCode)
-	{
-		$sXPath = "fields/field[@id='$sFieldCode']";
-		$oFieldNodes = $this->GetNodes($sXPath, $oClassNode);
-		if (is_object($oFieldNodes) && (is_object($oFieldNodes->item(0))))
-		{
-			$oFieldNode = $oFieldNodes->item(0);
-			$sOpCode = $oFieldNode->getAttribute('_operation');
-			if ($oFieldNode->getAttribute('_operation') == 'added')
-			{
-				$oFieldNode->parentNode->removeChild($oFieldNode);
-			}
-			else
-			{
-				$this->_priv_SetFlag($oFieldNode, 'removed');
-			}
-		}
-	}
-	
-	public function AlterField(DOMNode $oClassNode, $sFieldCode, $sFieldType, $sSQL, $defaultValue, $bIsNullAllowed, $aExtraParams)
-	{
-		$sXPath = "fields/field[@id='$sFieldCode']";
-		$oFieldNodes = $this->GetNodes($sXPath, $oClassNode);
-		if (is_object($oFieldNodes) && (is_object($oFieldNodes->item(0))))
-		{
-			$oFieldNode = $oFieldNodes->item(0);
-			//@@TODO: if the field was 'added' => then let it as 'added'
-			$sOpCode = $oFieldNode->getAttribute('_operation');
-			switch($sOpCode)
-			{
-				case 'added':
-				case 'modified':
-				// added or modified, let it as it is
-				break;
-				
-				default:
-				$this->_priv_SetFlag($oFieldNodes->item(0), 'modified');
-			}
-			$this->_priv_AlterField($oFieldNodes->item(0), $sFieldType, $sSQL, $defaultValue, $bIsNullAllowed, $aExtraParams);
-		}
-	}
-
-	protected function _priv_AlterField(DOMNode $oFieldNode, $sFieldType, $sSQL, $defaultValue, $bIsNullAllowed, $aExtraParams)
-	{
-		switch($sFieldType)
-		{			
-			case 'Blob':
-			case 'Boolean':
-			case 'CaseLog':
-			case 'Deadline':
-			case 'Duration':
-			case 'EmailAddress':
-			case 'EncryptedString':
-			case 'HTML':
-			case 'IPAddress':
-			case 'LongText':
-			case 'OQL':
-			case 'OneWayPassword':
-			case 'Password':
-			case 'Percentage':
-			case 'String':
-			case 'Text':
-			case 'Text':
-			case 'TemplateHTML':
-			case 'TemplateString':
-			case 'TemplateText':
-			case 'URL':
-			case 'Date':
-			case 'DateTime':
-			case 'Decimal':
-			case 'Integer':
-			break;	
-			
-			case 'ExternalKey':
-			$this->_priv_AddFieldAttribute($oFieldNode, 'target_class', $aExtraParams);
-			// Fall through
-			case 'HierarchicalKey':
-			$this->_priv_AddFieldAttribute($oFieldNode, 'on_target_delete', $aExtraParams);
-			$this->_priv_AddFieldAttribute($oFieldNode, 'filter', $aExtraParams);
-			break;
-
-			case 'ExternalField':
-			$this->_priv_AddFieldAttribute($oFieldNode, 'extkey_attcode', $aExtraParams);
-			$this->_priv_AddFieldAttribute($oFieldNode, 'target_attcode', $aExtraParams);
-			break;
-				
-			case 'Enum':
-			$this->_priv_SetFieldValues($oFieldNode, $aExtraParams);
-			break;
-			
-			case 'LinkedSetIndirect':
-			$this->_priv_AddFieldAttribute($oFieldNode, 'ext_key_to_remote', $aExtraParams);
-			// Fall through
-			case 'LinkedSet':
-			$this->_priv_AddFieldAttribute($oFieldNode, 'linked_class', $aExtraParams);
-			$this->_priv_AddFieldAttribute($oFieldNode, 'ext_key_to_me', $aExtraParams);
-			$this->_priv_AddFieldAttribute($oFieldNode, 'count_min', $aExtraParams);
-			$this->_priv_AddFieldAttribute($oFieldNode, 'count_max', $aExtraParams);
-			break;
-			
-			default:
-			throw(new Exception('Unsupported type of field: '.$sFieldType));
-		}
-		$this->_priv_SetFieldDependencies($oFieldNode, $aExtraParams);
-		$oFieldNode->setAttribute('type', $sFieldType);
-		$oFieldNode->setAttribute('sql', $sSQL);
-		$oFieldNode->setAttribute('default_value', $defaultValue);
-		$oFieldNode->setAttribute('is_null_alllowed', $bIsNullAllowed ? 'true' : 'false');
-	}
-	
-	protected function _priv_AddFieldAttribute(DOMNode $oFieldNode, $sAttributeCode, $aExtraParams, $bMandatory = false)
-	{
-		$value = array_key_exists($sAttributeCode, $aExtraParams) ? $aExtraParams[$sAttributeCode] : '';
-		if (($value == '') && (!$bMandatory)) return;
-		$oFieldNode->setAttribute($sAttributeCode, $value);
-	}
-	
-	protected function _priv_SetFieldDependencies($oFieldNode, $aExtraParams)
-	{
-		$aDeps = array_key_exists('dependencies', $aExtraParams) ? $aExtraParams['dependencies'] : '';
-		$oDependencies = $oFieldNode->getElementsByTagName('dependencies')->item(0);
-
-		// No dependencies before, and no dependencies to add, exit
-		if (($oDependencies == null) && ($aDeps == '')) return;
-		
-		// Remove the previous dependencies
-		$oFieldNode->removeChild($oDependencies);
-		// If no dependencies, exit
-		if ($aDeps == '') return;
-
-		// Build the new list of dependencies
-		$oDependencies = $this->oDOMDocument->createElement('dependencies');
-
-		foreach($aDeps as $sAttCode)
-		{
-			$oDep = $this->oDOMDocument->createElement('attribute');
-			$oDep->setAttribute('id', $sAttCode);
-			$oDependencies->addChild($oDep);
-		}
-		$oFieldNode->addChild($oDependencies);
-	}
-	
-	protected function _priv_SetFieldValues($oFieldNode, $aExtraParams)
-	{
-		$aVals = array_key_exists('values', $aExtraParams) ? $aExtraParams['values'] : '';
-		$oValues = $oFieldNode->getElementsByTagName('values')->item(0);
-
-		// No dependencies before, and no dependencies to add, exit
-		if (($oValues == null) && ($aVals == '')) return;
-		
-		// Remove the previous dependencies
-		$oFieldNode->removeChild($oValues);
-		// If no dependencies, exit
-		if ($aVals == '') return;
-
-		// Build the new list of dependencies
-		$oValues = $this->oDOMDocument->createElement('values');
-
-		foreach($aVals as $sValue)
-		{
-			$oVal = $this->oDOMDocument->createElement('value', $sValue);
-			$oValues->appendChild($oVal);
-		}
-		$oFieldNode->appendChild($oValues);
-	}
-
-	public function SetPresentation(DOMNode $oClassNode, $sPresentationCode, $aPresentation)
-	{
-		$oPresentation = $oClassNode->getElementsByTagName('presentation')->item(0);
-		if (!is_object($oPresentation))
-		{
-			$oPresentation = $this->oDOMDocument->createElement('presentation');
-			$oClassNode->appendChild($oPresentation);
-		}
-		$oZlist = $oPresentation->getElementsByTagName($sPresentationCode)->item(0);
-		if (is_object($oZlist))
-		{
-			// Remove the previous Zlist
-			$oPresentation->removeChild($oZlist);
-		}
-		// Create the ZList anew
-		$oZlist = $this->oDOMDocument->createElement($sPresentationCode);
-		$oPresentation->appendChild($oZlist);
-		$this->AddZListItem($oZlist, $aPresentation);
-		$this->_priv_SetFlag($oZlist, 'replaced');
-	}
-
-	protected function AddZListItem($oXMLNode, $value)
-	{
-		if (is_array($value))
-		{
-			$oXmlItems = $this->oDOMDocument->CreateElement('items');
-			$oXMLNode->appendChild($oXmlItems);
-			
-			foreach($value as $key => $item)
-			{
-				$oXmlItem = $this->oDOMDocument->CreateElement('item');
-				$oXmlItems->appendChild($oXmlItem);
-	
-				if (is_string($key))
-				{
-					$oXmlItem->SetAttribute('key', $key);
-				}
-				$this->AddZListItem($oXmlItem, $item);
-			}
-		}
-		else
-		{
-			$oXmlText = $this->oDOMDocument->CreateTextNode((string) $value);
-			$oXMLNode->appendChild($oXmlText);
-		}
+		return $this->GetNodes("fields/field", $oClassNode);
 	}
 	
 	/**
 	 * List all transitions from a given state
 	 * @param DOMNode $oStateNode The state
-	 * @param bool $bFlattenLayers
 	 * @throws Exception
 	 */
-	public function ListTransitions(DOMNode $oStateNode, $bFlattenLayers = true)
+	public function ListTransitions(DOMNode $oStateNode)
 	{
-		$sXPath = "transitions/transition";
-		if ($bFlattenLayers)
-		{
-			//$sXPath = "transitions/transition[@_operation!='removed']";
-		}
-		return $this->GetNodes($sXPath, $oStateNode);
+		return $this->GetNodes("transitions/transition", $oStateNode);
 	}
 		
 	/**
 	 * List all states of a given class
 	 * @param DOMNode $oClassNode The class
-	 * @param bool $bFlattenLayers
 	 * @throws Exception
 	 */
-	public function ListStates(DOMNode $oClassNode, $bFlattenLayers = true)
+	public function ListStates(DOMNode $oClassNode)
 	{
-		$sXPath = "lifecycle/states/state";
-		if ($bFlattenLayers)
-		{
-			//$sXPath = "lifecycle/states/state[@_operation!='removed']";
-		}
-		return $this->GetNodes($sXPath, $oClassNode);
-	}
-		
-	/**
-	 * List Zlists from the DOM for a given class
-	 * @param bool $bFlattenLayers
-	 * @throws Exception
-	 */
-	public function ListZLists(DOMNode $oClassNode, $bFlattenLayers = true)
-	{
-		// Not yet implemented !!!
-		return array();
+		return $this->GetNodes("lifecycle/states/state", $oClassNode);
 	}
 		
 	public function ApplyChanges()