/** * @param integer $parameter_id * @param bool $force_new_instance * @return object */ public static function get_instance($parameter_id, $force_new_instance = false) { if (is_numeric($parameter_id) and $parameter_id > 0) { if (ParameterTemplateParameter::is_template_parameter($parameter_id) == true) { if ($force_new_instance == true) { return new ParameterTemplateParameter($parameter_id); } else { if (self::$parameter_object_array[$parameter_id]) { return self::$parameter_object_array[$parameter_id]; } else { $parameter = new ParameterTemplateParameter($parameter_id); self::$parameter_object_array[$parameter_id] = $parameter; return $parameter; } } } elseif (ParameterNonTemplateParameter::is_non_template_parameter($parameter_id) == true) { if ($force_new_instance == true) { return new ParameterNonTemplateParameter($parameter_id); } else { if (self::$parameter_object_array[$parameter_id]) { return self::$parameter_object_array[$parameter_id]; } else { $parameter = new ParameterNonTemplateParameter($parameter_id); self::$parameter_object_array[$parameter_id] = $parameter; return $parameter; } } } else { return null; } } else { return new ParameterTemplateParameter(null); } }