From 515db0966127378c07fa203db27a70bf682d5144 Mon Sep 17 00:00:00 2001
From: pbarroca <pbarroca@afi-sa.fr>
Date: Thu, 11 Jun 2015 11:36:44 +0200
Subject: [PATCH] rel #14064 : introduce simple entity class

---
 library/Class/Entity.php | 53 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 53 insertions(+)
 create mode 100644 library/Class/Entity.php

diff --git a/library/Class/Entity.php b/library/Class/Entity.php
new file mode 100644
index 00000000000..b6c8fd56172
--- /dev/null
+++ b/library/Class/Entity.php
@@ -0,0 +1,53 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+
+class Class_Entity {
+	protected $_attribs = [];
+
+	public function __call($name, $params) {
+		if (!preg_match('/(get|set)(\w+)/', $name, $matches))
+			throw new RuntimeException('Call to unknown method ' . $name);
+
+		switch ($matches[1]) {
+			case 'get':
+				return $this->_get($matches[2]);
+				break;
+			case 'set':
+				$this->_set($matches[2], $params[0]);
+				return $this;
+				break;
+		}
+
+		return $this;
+	}
+
+
+	protected function _get($name) {
+		return array_key_exists($name, $this->_attribs) ?
+			$this->_attribs[$name] : null;
+	}
+
+
+	protected function _set($name, $value) {
+		$this->_attribs[$name] = $value;
+	}
+}
-- 
GitLab