/** * Load all class symbols from classes.json, its enumerations from * class_enumerations.json and variables from class_variables.json. */ private function LoadClassesFromJson() { $classes_def = Json::Decode(file_get_contents($this->definitions_path . "classes.json")); $enumerations_def = array(); if (file_exists($this->definitions_path . "class_enumerations.json")) { $enumerations_def = Json::Decode(file_get_contents($this->definitions_path . "class_enumerations.json")); } $variables_def = array(); if (file_exists($this->definitions_path . "class_variables.json")) { $variables_def = Json::Decode(file_get_contents($this->definitions_path . "class_variables.json")); } foreach ($classes_def as $header => $namespaces) { $this->symbols->AddHeader($header); foreach ($namespaces as $namespace => $classes) { foreach ($classes as $class_name => $methods) { $class = new Element\ClassElement($class_name); // Set class details if (isset($methods["_description"])) { $class->description = $methods["_description"]; unset($methods["_description"]); } if (isset($methods["_parents"])) { $class->AddParents($methods["_parents"]); unset($methods["_parents"]); } if (isset($methods["_struct"])) { $class->struct = true; unset($methods["_struct"]); } if (isset($methods["_forward_declaration"])) { $class->forward_declaration = true; unset($methods["_forward_declaration"]); } if (isset($methods["_platforms"])) { $class->platforms = $methods["_platforms"]; unset($methods["_platforms"]); } // Add methods foreach ($methods as $method_name => $method_overloads) { $method = new Element\FunctionElement($method_name); foreach ($method_overloads as $method_overload) { $overload = new Element\Overload($method_overload["description"]); $overload->SetReturnType(new Element\ReturnType($method_overload["return_type"])); if (isset($method_overload["constant"])) { $overload->constant = $method_overload["constant"]; } if (isset($method_overload["static"])) { $overload->static = $method_overload["static"]; } if (isset($method_overload["virtual"])) { $overload->virtual = $method_overload["virtual"]; } if (isset($method_overload["pure_virtual"])) { $overload->pure_virtual = $method_overload["pure_virtual"]; } if (isset($method_overload["protected"])) { $overload->protected = $method_overload["protected"]; } if (isset($method_overload["parameters"])) { foreach ($method_overload["parameters"] as $parameter) { if (!isset($parameter["value"])) { $parameter["value"] = ""; } if (!isset($parameter["description"])) { $parameter["description"] = ""; } $param = new Element\Parameter($parameter["name"], $parameter["type"], $parameter["value"], $parameter["description"]); if (isset($parameter["is_array"])) { $param->is_array = true; } $overload->AddParameter($param); } } $method->AddOverload($overload); } $class->AddMethod($method); } // Add enumerations if (isset($enumerations_def[$header][$namespace][$class_name])) { foreach ($enumerations_def[$header][$namespace][$class_name] as $enumeration_name => $enumeration_data) { if (!isset($enumeration_data["description"])) { $enumeration_data["description"] = ""; } $class->AddEnumeration(new Element\Enumeration($enumeration_name, $enumeration_data["options"], $enumeration_data["description"])); } } // Add variables if (isset($variables_def[$header][$namespace][$class_name])) { foreach ($variables_def[$header][$namespace][$class_name] as $variable_name => $variable_options) { $variable = new Element\ClassVariable($variable_name, $variable_options["type"]); if (isset($variable_options["static"])) { $variable->static = $variable_options["static"]; } if (isset($variable_options["mutable"])) { $variable->mutable = $variable_options["mutable"]; } if (isset($variable_options["protected"])) { $variable->protected = $variable_options["protected"]; } if (isset($variable_options["public"])) { $variable->public = $variable_options["public"]; } if (isset($variable_options["description"])) { $variable->description = $variable_options["description"]; } $class->AddVariable($variable); } } $this->symbols->headers[$header]->AddClass($class, $namespace); } } } unset($classes_def); unset($enumerations_def); unset($variables_def); }