1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
|
<?php
include_once 'SyncML/State.php';
/**
* The SyncML_Command class provides a super class fo SyncBody
* commands.
*
* $Horde: framework/SyncML/SyncML/Command.php,v 1.4.10.7 2006/01/01 21:28:36 jan Exp $
*
* Copyright 2003-2006 Anthony Mills <amills@pyramid6.com>
*
* See the enclosed file COPYING for license information (LGPL). If you
* did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
*
* @author Anthony Mills <amills@pyramid6.com>
* @since Horde 3.0
* @package SyncML
*/
class SyncML_Command {
/**
* @var integer
*/
var $_cmdID;
/**
* Internal structure used during XML parsing.
*
* @var array
*/
var $_Stack = array();
/**
* @var string
*/
var $_chars;
function &factory($command, $params = null)
{
include_once 'SyncML/Command/' . $command . '.php';
$class = 'SyncML_Command_' . $command;
if (class_exists($class)) {
$cmd = &new $class($params);
} else {
$GLOBALS['backend']->logMessage('Class definition of ' . $class . ' not found.',
__FILE__, __LINE__, PEAR_LOG_ERR);
include_once 'PEAR.php';
$cmd = PEAR::raiseError('Class definition of ' . $class . ' not found.');
}
return $cmd;
}
function output($currentCmdID, $output)
{
}
function startElement($uri, $localName, $attrs)
{
$this->_Stack[] = $localName;
}
function endElement($uri, $element)
{
switch (count($this->_Stack)) {
case 2:
if ($element == 'CmdID') {
$this->_cmdID = intval(trim($this->_chars));
}
break;
}
$this->_chars = '';
array_pop($this->_Stack);
}
function characters($str)
{
$this->_chars .= $str;
}
}
|