1/*
2   +----------------------------------------------------------------------+
3   | PHP Version 5                                                        |
4   +----------------------------------------------------------------------+
5   | Copyright (c) 1997-2014 The PHP Group                                |
6   +----------------------------------------------------------------------+
7   | This source file is subject to version 3.01 of the PHP license,      |
8   | that is bundled with this package in the file LICENSE, and is        |
9   | available through the world-wide-web at the following url:           |
10   | http://www.php.net/license/3_01.txt                                  |
11   | If you did not receive a copy of the PHP license and are unable to   |
12   | obtain it through the world-wide-web, please send a note to          |
13   | license@php.net so we can mail you a copy immediately.               |
14   +----------------------------------------------------------------------+
15   | Authors: Christian Stocker <chregu@php.net>                          |
16   |          Rob Richards <rrichards@php.net>                            |
17   +----------------------------------------------------------------------+
18*/
19
20/* $Id$ */
21
22#ifdef HAVE_CONFIG_H
23#include "config.h"
24#endif
25
26#include "php.h"
27#if HAVE_LIBXML && HAVE_DOM
28#include "php_dom.h"
29
30
31/*
32* class DOMEntity extends DOMNode
33*
34* URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-527DCFF2
35* Since:
36*/
37
38const zend_function_entry php_dom_entity_class_functions[] = {
39    PHP_FE_END
40};
41
42/* {{{ publicId string
43readonly=yes
44URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-D7303025
45Since:
46*/
47int dom_entity_public_id_read(dom_object *obj, zval **retval TSRMLS_DC)
48{
49    xmlEntity *nodep;
50
51    nodep = (xmlEntity *) dom_object_get_node(obj);
52
53    if (nodep == NULL) {
54        php_dom_throw_error(INVALID_STATE_ERR, 0 TSRMLS_CC);
55        return FAILURE;
56    }
57
58    ALLOC_ZVAL(*retval);
59    if (nodep->etype != XML_EXTERNAL_GENERAL_UNPARSED_ENTITY) {
60        ZVAL_NULL(*retval);
61    } else {
62        ZVAL_STRING(*retval, (char *) (nodep->ExternalID), 1);
63    }
64
65    return SUCCESS;
66}
67
68/* }}} */
69
70/* {{{ systemId string
71readonly=yes
72URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-D7C29F3E
73Since:
74*/
75int dom_entity_system_id_read(dom_object *obj, zval **retval TSRMLS_DC)
76{
77    xmlEntity *nodep;
78
79    nodep = (xmlEntity *) dom_object_get_node(obj);
80
81    if (nodep == NULL) {
82        php_dom_throw_error(INVALID_STATE_ERR, 0 TSRMLS_CC);
83        return FAILURE;
84    }
85
86    ALLOC_ZVAL(*retval);
87    if (nodep->etype != XML_EXTERNAL_GENERAL_UNPARSED_ENTITY) {
88        ZVAL_NULL(*retval);
89    } else {
90        ZVAL_STRING(*retval, (char *) (nodep->SystemID), 1);
91    }
92
93    return SUCCESS;
94}
95
96/* }}} */
97
98/* {{{ notationName string
99readonly=yes
100URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-6ABAEB38
101Since:
102*/
103int dom_entity_notation_name_read(dom_object *obj, zval **retval TSRMLS_DC)
104{
105    xmlEntity *nodep;
106    char *content;
107
108    nodep = (xmlEntity *) dom_object_get_node(obj);
109
110    if (nodep == NULL) {
111        php_dom_throw_error(INVALID_STATE_ERR, 0 TSRMLS_CC);
112        return FAILURE;
113    }
114
115    ALLOC_ZVAL(*retval);
116    if (nodep->etype != XML_EXTERNAL_GENERAL_UNPARSED_ENTITY) {
117        ZVAL_NULL(*retval);
118    } else {
119        content = xmlNodeGetContent((xmlNodePtr) nodep);
120        ZVAL_STRING(*retval, content, 1);
121        xmlFree(content);
122    }
123
124    return SUCCESS;
125}
126
127/* }}} */
128
129/* {{{ actualEncoding   string
130readonly=no
131URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Entity3-actualEncoding
132Since: DOM Level 3
133*/
134int dom_entity_actual_encoding_read(dom_object *obj, zval **retval TSRMLS_DC)
135{
136    ALLOC_ZVAL(*retval);
137    ZVAL_NULL(*retval);
138    return SUCCESS;
139}
140
141int dom_entity_actual_encoding_write(dom_object *obj, zval *newval TSRMLS_DC)
142{
143    return SUCCESS;
144}
145
146/* }}} */
147
148/* {{{ encoding string
149readonly=no
150URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Entity3-encoding
151Since: DOM Level 3
152*/
153int dom_entity_encoding_read(dom_object *obj, zval **retval TSRMLS_DC)
154{
155    ALLOC_ZVAL(*retval);
156    ZVAL_NULL(*retval);
157    return SUCCESS;
158}
159
160int dom_entity_encoding_write(dom_object *obj, zval *newval TSRMLS_DC)
161{
162    return SUCCESS;
163}
164
165/* }}} */
166
167/* {{{ version  string
168readonly=no
169URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Entity3-version
170Since: DOM Level 3
171*/
172int dom_entity_version_read(dom_object *obj, zval **retval TSRMLS_DC)
173{
174    ALLOC_ZVAL(*retval);
175    ZVAL_NULL(*retval);
176    return SUCCESS;
177}
178
179int dom_entity_version_write(dom_object *obj, zval *newval TSRMLS_DC)
180{
181    return SUCCESS;
182}
183
184/* }}} */
185
186#endif
187
188/*
189 * Local variables:
190 * tab-width: 4
191 * c-basic-offset: 4
192 * End:
193 * vim600: noet sw=4 ts=4 fdm=marker
194 * vim<600: noet sw=4 ts=4
195 */
196