diff --git a/core/attributedef/AttributeObjectKey.php b/core/attributedef/AttributeObjectKey.php new file mode 100644 index 0000000000..356eee24ed --- /dev/null +++ b/core/attributedef/AttributeObjectKey.php @@ -0,0 +1,107 @@ +Get("is_null_allowed"); + } + + + public function GetBasicFilterOperators() + { + return parent::GetBasicFilterOperators(); + } + + public function GetBasicFilterLooseOperator() + { + return parent::GetBasicFilterLooseOperator(); + } + + public function GetBasicFilterSQLExpr($sOpCode, $value) + { + return parent::GetBasicFilterSQLExpr($sOpCode, $value); + } + + public function GetNullValue() + { + return 0; + } + + public function IsNull($proposedValue) + { + return ($proposedValue == 0); + } + + /** + * @inheritDoc + */ + public function HasAValue($proposedValue): bool + { + return ((int)$proposedValue) !== 0; + } + + /** + * @inheritDoc + * + * @param int|DBObject $proposedValue Object key or valid ({@see MetaModel::IsValidObject()}) datamodel object + */ + public function MakeRealValue($proposedValue, $oHostObj) + { + if (is_null($proposedValue)) { + return 0; + } + if ($proposedValue === '') { + return 0; + } + if (MetaModel::IsValidObject($proposedValue)) { + return $proposedValue->GetKey(); + } + + return (int)$proposedValue; + } +} \ No newline at end of file