function generate() { parent::generate(); $xpath = new DOMXPath($this->_doc); $this->appendLine('<?php'); $this->appendLine('require_once("KalturaClientBase.php");'); $this->appendLine(''); // enumes $enumNodes = $xpath->query("/xml/enums/enum"); foreach ($enumNodes as $enumNode) { $this->writeEnum($enumNode); } // classes $classNodes = $xpath->query("/xml/classes/class"); foreach ($classNodes as $classNode) { $this->writeClass($classNode); } $serviceNodes = $xpath->query("/xml/services/service"); foreach ($serviceNodes as $serviceNode) { $this->writeService($serviceNode); } $this->appendLine(); $this->writeMainClient($serviceNodes); $this->appendLine(); $this->addFile("KalturaClient.php", $this->getTextBlock()); }
public function generate() { parent::generate(); $this->base_client_dir = $this->getParam("type"); $this->xml = new SimpleXMLElement($this->_xmlFile, NULL, TRUE); foreach ($this->xml->children() as $second_gen) { switch ($second_gen->getName()) { case "enums": foreach ($second_gen->children() as $enums_node) { $this->createTypeClass($enums_node); } break; case "classes": foreach ($second_gen->children() as $classes_node) { $this->createVoClass($classes_node); } break; case "services": foreach ($second_gen->children() as $services_node) { $this->createCommands($services_node); $this->createServices($services_node); } break; } } }
function generate() { parent::generate(); $this->removeFilesFromSource(); $xpath = new DOMXPath($this->_doc); $this->loadClassInheritance($xpath->query("/xml/classes/class")); $this->loadEnums($xpath->query("/xml/enums/enum")); // enumes $ types $enumNodes = $xpath->query("/xml/enums/enum"); foreach ($enumNodes as $enumNode) { $this->writeEnum($enumNode); } $classNodes = $xpath->query("/xml/classes/class"); foreach ($classNodes as $classNode) { $this->writeClass($classNode); } $this->writeObjectFactoryClass($classNodes); $serviceNodes = $xpath->query("/xml/services/service"); $this->startNewTextBlock(); foreach ($serviceNodes as $serviceNode) { $this->writeService($serviceNode); } $this->writeMainClient($serviceNodes); $this->writeCsproj(); }
function generate() { parent::generate(); $xpath = new DOMXPath($this->_doc); $this->appendLine("require 'kaltura_client_base.rb'"); $this->appendLine(); $this->appendLine("module Kaltura"); $this->appendLine(); // enumes $enumNodes = $xpath->query("/xml/enums/enum"); foreach ($enumNodes as $enumNode) { $this->writeEnum($enumNode); } // classes $classNodes = $xpath->query("/xml/classes/class"); foreach ($classNodes as $classNode) { $this->writeClass($classNode); } $serviceNodes = $xpath->query("/xml/services/service"); foreach ($serviceNodes as $serviceNode) { $this->writeService($serviceNode); } $this->appendLine(); $this->writeMainClient($serviceNodes); $this->appendLine(); $this->appendLine("end"); $this->addFile("kaltura_client.rb", $this->getTextBlock()); }
function generate() { parent::generate(); $xpath = new DOMXPath($this->_doc); $serviceNodes = $xpath->query("/xml/services/service"); foreach ($serviceNodes as $serviceNode) { $this->writeService($serviceNode); } }
/** * Parses the higher-level of the schema, divide parsing to five steps: * Enum creation, Object (VO) classes, Services and actions, Main, and project file. */ public function generate() { parent::generate(); $this->schemaXml = new SimpleXMLElement(file_get_contents($this->_xmlFile)); $services = null; $configurations = null; //parse object types foreach ($this->schemaXml->children() as $reflectionType) { switch ($reflectionType->getName()) { case 'enums': //create enum classes foreach ($reflectionType->children() as $enums_node) { $this->writeEnum($enums_node); } break; case 'classes': $this->echoLine($this->voClasses, "var util = require('util');"); $this->echoLine($this->voClasses, "var kaltura = require('./KalturaClientBase');"); $this->echoLine($this->voClasses, ""); //create object classes foreach ($reflectionType->children() as $classes_node) { $this->writeObjectClass($classes_node); } break; case 'services': $this->echoLine($this->serviceClasses, "var util = require('util');"); $this->echoLine($this->serviceClasses, "var kaltura = require('./KalturaClientBase');"); $this->echoLine($this->serviceClasses, ""); //implement services (api actions) foreach ($reflectionType->children() as $services_node) { $this->writeService($services_node); } $services = $reflectionType->children(); break; case 'configurations': $configurations = $reflectionType->children(); break; } } //write main class (if needed, this can also be included in the static sources folder if not dynamic) $this->writeMainClass($services, $configurations); $this->addFile('KalturaTypes.js', $this->enumTypes); $this->addFile('KalturaVO.js', $this->voClasses); $this->addFile('KalturaServices.js', $this->serviceClasses); $this->addFile('KalturaClient.js', $this->mainClass); //write project file (if needed, this can also be included in the static sources folder if not dynamic) $this->writeProjectFile(); }
public function generate() { parent::generate(); $xpath = new DOMXPath($this->_doc); $enumNodes = $xpath->query("/xml/enums/enum"); foreach ($enumNodes as $enumNode) { $this->writeEnum($enumNode); } $classNodes = $xpath->query("/xml/classes/class"); foreach ($classNodes as $classNode) { $this->writeClass($classNode); } $serviceNodes = $xpath->query("/xml/services/service"); foreach ($serviceNodes as $serviceNode) { $this->writeService($serviceNode); } $this->writeMainClient($serviceNodes); }
/** * Parses the higher-level of the schema, divide parsing to five steps: * Enum creation, Object (VO) classes, Services and actions, Main, and project file. */ public function generate() { parent::generate(); $this->schemaXml = new SimpleXMLElement(file_get_contents($this->_xmlFile)); //parse object types foreach ($this->schemaXml->children() as $reflectionType) { switch ($reflectionType->getName()) { case "enums": //create enum classes foreach ($reflectionType->children() as $enums_node) { $this->writeEnum($enums_node); } break; case "classes": //create object classes foreach ($reflectionType->children() as $classes_node) { $this->writeObjectClass($classes_node); } break; case "services": //implement services (api actions) foreach ($reflectionType->children() as $services_node) { $this->writeService($services_node); } //write main class (if needed, this can also be included in the static sources folder if not dynamic) $this->writeMainClass($reflectionType->children()); break; } } $this->addFile('KalturaTypes.js', $this->enumTypes); $this->addFile('KalturaVO.js', $this->voClasses); $this->addFile('KalturaServices.js', $this->serviceClasses); $this->addFile('KalturaClient.js', $this->mainClass); //write project file (if needed, this can also be included in the static sources folder if not dynamic) $this->writeProjectFile(); }
function generate() { parent::generate(); $xpath = new DOMXPath($this->_doc); $enumNodes = $xpath->query("/xml/enums/enum"); $classNodes = $xpath->query("/xml/classes/class"); $serviceNodes = $xpath->query("/xml/services/service"); $this->writePlugin('', $enumNodes, $classNodes, $serviceNodes, $serviceNodes); // plugins $pluginNodes = $xpath->query("/xml/plugins/plugin"); foreach ($pluginNodes as $pluginNode) { $pluginName = $pluginNode->getAttribute("name"); $enumNodes = $xpath->query("/xml/enums/enum[@plugin = '{$pluginName}']"); $classNodes = $xpath->query("/xml/classes/class[@plugin = '{$pluginName}']"); $serviceNodes = $xpath->query("/xml/services/service[@plugin = '{$pluginName}']"); $serviceNamesNodes = $xpath->query("/xml/plugins/plugin[@name = '{$pluginName}']/pluginService"); $this->writePlugin($pluginName, $enumNodes, $classNodes, $serviceNodes, $serviceNamesNodes); } $this->writeProjectFile(); }
protected function addFile($fileName, $fileContents, $addLicense = true) { $patterns = array('/@package\\s+.+/', '/@subpackage\\s+.+/'); $replacements = array('@package ' . $this->package, '@subpackage ' . $this->subpackage); $fileContents = preg_replace($patterns, $replacements, $fileContents); parent::addFile($fileName, $fileContents, $addLicense); }
function generate() { parent::generate(); $xpath = new DOMXPath($this->_doc); $this->appendLine("require 'kaltura_client_base.rb'"); $this->appendLine(); $this->appendLine("module Kaltura"); $this->appendLine(); // enumes $enumNodes = $xpath->query("/xml/enums/enum[not(@plugin)]"); foreach ($enumNodes as $enumNode) { $this->writeEnum($enumNode); } // classes $classNodes = $xpath->query("/xml/classes/class[not(@plugin)]"); foreach ($classNodes as $classNode) { $this->writeClass($classNode); } $serviceNodes = $xpath->query("/xml/services/service[not(@plugin)]"); foreach ($serviceNodes as $serviceNode) { $this->writeService($serviceNode); } $this->appendLine(); $serviceNodes = $xpath->query("/xml/services/service[not(@plugin)]"); $this->writeMainClient($serviceNodes); $this->appendLine(); $this->appendLine("end"); $this->addFile("lib/kaltura_client.rb", $this->getTextBlock()); // writing plugins $pluginNodes = $xpath->query("/xml/plugins/plugin"); foreach ($pluginNodes as $pluginNode) { $pluginName = $pluginNode->getAttribute("name"); $this->startNewTextBlock(); $this->appendLine("require 'kaltura_client.rb'"); $dependencies = $pluginNode->getElementsByTagName("dependency"); foreach ($dependencies as $dependency) { $this->appendLine("require File.dirname(__FILE__) + '/" . $this->camelCaseToUnderscoreAndLower("Kaltura" . $this->upperCaseFirstLetter($dependency->getAttribute("pluginName")) . "ClientPlugin.rb") . "'"); } $this->appendLine(); $this->appendLine("module Kaltura"); $this->appendLine(); $enumNodes = $xpath->query("/xml/enums/enum[@plugin='{$pluginName}']"); foreach ($enumNodes as $enumNode) { $this->writeEnum($enumNode); } $classNodes = $xpath->query("/xml/classes/class[@plugin='{$pluginName}']"); foreach ($classNodes as $classNode) { $this->writeClass($classNode); } $serviceNodes = $xpath->query("/xml/services/service[@plugin='{$pluginName}']"); foreach ($serviceNodes as $serviceNode) { $this->writeService($serviceNode); } if ($serviceNodes->length > 0) { $this->appendLine(); $this->writeMainClient($serviceNodes); } $this->appendLine(); $this->appendLine("end"); $this->addFile($this->camelCaseToUnderscoreAndLower("lib/kaltura_plugins/Kaltura" . $this->upperCaseFirstLetter($pluginName) . "ClientPlugin.rb"), $this->getTextBlock()); } }
function generate() { parent::generate(); // services / actions / parameters $serviceIds = $this->getServiceIds(); $this->addFile('services/services.map', serialize($serviceIds), false); foreach ($serviceIds as $serviceId) { $actionNames = $this->getActionNames($serviceId); $this->addFile("services/{$serviceId}.service", serialize($actionNames), false); foreach ($actionNames as $actionName) { $parameters = $this->getActionParameters($serviceId, $actionName); $this->addFile("actions/{$serviceId}/{$actionName}.action", serialize($parameters), false); } } // enums $xpath = new DOMXPath($this->_doc); $enumNodes = $xpath->query("/xml/enums/enum"); foreach ($enumNodes as $enumNode) { $enumName = $enumNode->getAttribute('name'); $values = $this->getEnumValueList($enumName); $this->addFile("enums/{$enumName}.enum", serialize($values), false); } // objects $xpath = new DOMXPath($this->_doc); $objectNodes = $xpath->query("/xml/classes/class"); foreach ($objectNodes as $objectNode) { $objectName = $objectNode->getAttribute('name'); $properties = $this->getObjectPropertiesList($objectName); $derivedTypes = $this->getDerivedTypesList($objectName); $objectDetails = array('properties' => $properties, 'derivedTypes' => $derivedTypes); $this->addFile("objects/{$objectName}.object", serialize($objectDetails), false); } }