KJS

kjsobject.h
1 /*
2  * This file is part of the KDE libraries
3  * Copyright (C) 2008 Harri Porten ([email protected])
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Library General Public
7  * License as published by the Free Software Foundation; either
8  * version 2 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * Library General Public License for more details.
14  *
15  * You should have received a copy of the GNU Library General Public License
16  * along with this library; see the file COPYING.LIB. If not, write to
17  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18  * Boston, MA 02110-1301, USA.
19  *
20  */
21 
22 #ifndef KJSOBJECT_H
23 #define KJSOBJECT_H
24 
25 #include "kjsapi_export.h"
26 #include <QString>
27 
28 class QDateTime;
29 class KJSContext;
30 class KJSNull;
31 class KJSUndefined;
32 class KJSBoolean;
33 class KJSNumber;
34 class KJSString;
35 class KJSArray;
36 class KJSDate;
37 class KJSArguments;
38 class KJSInterpreter;
39 class KJSObjectHandle;
40 class KJSCustomProperty;
41 class KJSCustomFunction;
42 
43 /**
44  * A class representing a JavaScript value.
45  *
46  * @short Script object
47  */
48 class KJSAPI_EXPORT KJSObject
49 {
50  friend class KJSNull;
51  friend class KJSUndefined;
52  friend class KJSBoolean;
53  friend class KJSNumber;
54  friend class KJSString;
55  friend class KJSArray;
56  friend class KJSDate;
57  friend class KJSGlobalObject;
58  friend class KJSPrototype;
59  friend class KJSContext;
60  friend class KJSArguments;
61  friend class KJSInterpreter;
62  friend class KJSCustomProperty;
63  friend class KJSCustomFunction;
64 public:
65  /**
66  * Constructs a JavaScript object of the generic Object type.
67  */
68  KJSObject();
69  /**
70  * Constructs on object from another one
71  */
72  KJSObject(const KJSObject &o);
73  /**
74  * Assigns another JS object references to this one.
75  */
76  KJSObject &operator=(const KJSObject &o);
77  /**
78  * Destructs this object freeing any references it might have held.
79  */
80  ~KJSObject();
81  /**
82  * Returns whether this object is undefined.
83  */
84  bool isUndefined() const;
85  /**
86  * Returns whether this object is null.
87  */
88  bool isNull() const;
89  /**
90  * Returns whether this object is a boolean.
91  */
92  bool isBoolean() const;
93  /**
94  * Returns whether this object is a number.
95  */
96  bool isNumber() const;
97  /**
98  * Returns whether this object is a string.
99  */
100  bool isString() const;
101  /**
102  * Returns whether this object is a full blown object.
103  */
104  bool isObject() const;
105 
106  /**
107  * Returns this value converted to a boolean. If the conversion
108  * fails the context will have an exception set.
109  */
110  bool toBoolean(KJSContext *ctx);
111  /**
112  * Returns this value converted to a number. If the conversion
113  * fails the context will have an exception set.
114  */
115  double toNumber(KJSContext *ctx);
116  /**
117  * Returns this value converted to a 32-bit integer number. NaN,
118  * positive and negative Infinity will be converted to 0. If the
119  * conversion fails the context will have an exception set.
120  */
121  int toInt32(KJSContext *ctx);
122  /**
123  * Returns this value converted to a string. If the conversion
124  * fails the context will have an exception set.
125  */
126  QString toString(KJSContext *ctx);
127  /**
128  * Reads the specified property from this object. This operation
129  * might throw an exception.
130  */
131  KJSObject property(KJSContext *ctx, const QString &name);
132  /**
133  * Sets the specified property on this object. This operation
134  * might throw an exception.
135  */
136  void setProperty(KJSContext *ctx, const QString &name,
137  const KJSObject &value);
138  /**
139  * @overload
140  */
141  void setProperty(KJSContext *ctx, const QString &name, bool value);
142  /**
143  * @overload
144  */
145  void setProperty(KJSContext *ctx, const QString &name, double value);
146  /**
147  * @overload
148  */
149  void setProperty(KJSContext *ctx, const QString &name, int value);
150  /**
151  * @overload
152  */
153  void setProperty(KJSContext *ctx, const QString &name,
154  const QString &value);
155  /**
156  * @overload
157  *
158  * Accepts a Latin1 encoded, null-terminated string.
159  */
160  void setProperty(KJSContext *ctx, const QString &name,
161  const char *value);
162 
163 private:
164  KJSObject(KJSObjectHandle *h) : hnd(h) { }
165  KJSObjectHandle *hnd;
166 };
167 
168 /**
169  * A class representing a JavaScript null value.
170  *
171  * @short Null value
172  */
173 class KJSAPI_EXPORT KJSNull : public KJSObject
174 {
175 public:
176  /**
177  * Constructs a null object.
178  */
179  KJSNull();
180 };
181 
182 /**
183  * A class representing an undefined JavaScript value.
184  *
185  * @short Undefined value
186  */
187 class KJSAPI_EXPORT KJSUndefined : public KJSObject
188 {
189 public:
190  /**
191  * Constructs an undefined object.
192  */
193  KJSUndefined();
194 };
195 
196 /**
197  * A class representing a boolean JavaScript value.
198  *
199  * @short Boolean value
200  */
201 class KJSAPI_EXPORT KJSBoolean : public KJSObject
202 {
203 public:
204  /**
205  * Constructs a boolean object.
206  */
207  KJSBoolean(bool b);
208 };
209 
210 /**
211  * A class representing a JavaScript number value.
212  *
213  * @short Number value
214  */
215 class KJSAPI_EXPORT KJSNumber : public KJSObject
216 {
217 public:
218  /**
219  * Constructs a number object.
220  */
221  KJSNumber(double d);
222 };
223 
224 /**
225  * A class representing a JavaScript string value.
226  *
227  * @short String value
228  */
229 class KJSAPI_EXPORT KJSString : public KJSObject
230 {
231 public:
232  /**
233  * Constructs a string object.
234  */
235  KJSString(const QString &s);
236  /**
237  * Constructs a string object from an Latin1 encoded,
238  * null-terminated string. Note the limited input character range
239  * which rules out a big part of Unicode.
240  *
241  * @overload
242  */
243  KJSString(const char *s);
244 };
245 
246 /**
247  * A class representing a JavaScript array object.
248  *
249  * @short Array object
250  */
251 class KJSAPI_EXPORT KJSArray : public KJSObject
252 {
253 public:
254  /**
255  * Constructs an array object with the specified length.
256  */
257  KJSArray(KJSContext *ctx, int len = 0);
258 };
259 
260 /**
261  * A class representing a JavaScript date object.
262  *
263  * @short Date object
264  */
265 class KJSAPI_EXPORT KJSDate : public KJSObject
266 {
267 public:
268  /**
269  * Constructs a date object from the specified date and time.
270  */
271  KJSDate(KJSContext *ctx, const QDateTime &dt);
272 };
273 
274 /**
275  * A class representing a global object of an execution environment.
276  *
277  * @short Global object
278  */
279 class KJSAPI_EXPORT KJSGlobalObject : public KJSObject
280 {
281  friend class KJSPrototype;
282 public:
283  /**
284  * Constructs an empty global object. Usually done through
285  * KJSPrototype::constructGlobalObject().
286  */
287  KJSGlobalObject();
288 
289 private:
290  KJSGlobalObject(KJSObjectHandle *h) : KJSObject(h) { }
291 };
292 
293 #endif
KJSObject()
Constructs a JavaScript object of the generic Object type.
Definition: kjsobject.cpp:36
A class representing a JavaScript null value.
Definition: kjsobject.h:173
A class representing an undefined JavaScript value.
Definition: kjsobject.h:187
A class representing a global object of an execution environment.
Definition: kjsobject.h:279
A class representing a JavaScript array object.
Definition: kjsobject.h:251
A class representing a JavaScript execution context.
Definition: kjscontext.h:41
A class representing a JavaScript date object.
Definition: kjsobject.h:265
A class representing a JavaScript interpreter.
A class representing a JavaScript number value.
Definition: kjsobject.h:215
A class representing a list of JavaScript arguments.
Definition: kjsarguments.h:36
A class representing a JavaScript value.
Definition: kjsobject.h:48
A class representing a JavaScript string value.
Definition: kjsobject.h:229
A class representing a JavaScript prototype object.
Definition: kjsprototype.h:38
QCA_EXPORT void setProperty(const QString &name, const QVariant &value)
A class representing a boolean JavaScript value.
Definition: kjsobject.h:201
This file is part of the KDE documentation.
Documentation copyright © 1996-2021 The KDE developers.
Generated on Tue Mar 2 2021 23:58:09 by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.