OQL normalization and dashlets have been made independent from the class MetaModel (adjusted the API)

SVN:trunk[2773]
This commit is contained in:
Romain Quetiez
2013-06-13 14:11:13 +00:00
parent 71cc6f7e6b
commit 0c1a366c07
2 changed files with 16 additions and 4 deletions

View File

@@ -174,7 +174,7 @@ abstract class MetaModel
// (it is not possible to guess it when called as myderived::...)
if (!array_key_exists($sClass, self::$m_aClassParams))
{
throw new CoreException("Unknown class '$sClass', expected a value in {".implode(', ', array_keys(self::$m_aClassParams))."}");
throw new CoreException("Unknown class '$sClass'");
}
}

View File

@@ -31,12 +31,13 @@ interface ModelReflection
public function GetName($sClass);
public function GetLabel($sClass, $sAttCodeEx);
public function ListAttributes($sClass, $sScope = null);
public function GetAttributeProperty($sClass, $sAttCode, $sPropName);
public function GetAttributeProperty($sClass, $sAttCode, $sPropName, $default = null);
public function GetAllowedValues_att($sClass, $sAttCode);
public function HasChildrenClasses($sClass);
public function GetClasses($sCategories = '');
public function IsValidClass($sClass);
public function IsSameFamilyBranch($sClassA, $sClassB);
public function GetParentClass($sClass);
public function GetFiltersList($sClass);
public function IsValidFilterCode($sClass, $sFilterCode);
}
@@ -103,15 +104,21 @@ class ModelReflectionRuntime implements ModelReflection
public function GetAttributeProperty($sClass, $sAttCode, $sPropName, $default = null)
{
$ret = $default;
$oAttDef = MetaModel::GetAttributeDef($sClass, $sAttCode);
$aParams = $oAttDef->GetParams();
if (array_key_exists($sPropName, $aParams))
{
$ret = $aParams[$sPropName];
}
else
if ($oAttDef instanceof AttributeHierarchicalKey)
{
$ret = $default;
if ($sPropName == 'targetclass')
{
$ret = $sClass;
}
}
return $ret;
}
@@ -141,6 +148,11 @@ class ModelReflectionRuntime implements ModelReflection
return MetaModel::IsSameFamilyBranch($sClassA, $sClassB);
}
public function GetParentClass($sClass)
{
return MetaModel::GetParentClass($sClass);
}
public function GetFiltersList($sClass)
{
return MetaModel::GetFiltersList($sClass);