|  | /* | 
|  | Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) | 
|  |  | 
|  | This library is free software; you can redistribute it and/or | 
|  | modify it under the terms of the GNU Library General Public | 
|  | License as published by the Free Software Foundation; either | 
|  | version 2 of the License, or (at your option) any later version. | 
|  |  | 
|  | This library is distributed in the hope that it will be useful, | 
|  | but WITHOUT ANY WARRANTY; without even the implied warranty of | 
|  | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | 
|  | Library General Public License for more details. | 
|  |  | 
|  | You should have received a copy of the GNU Library General Public License | 
|  | along with this library; see the file COPYING.LIB.  If not, write to | 
|  | the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | 
|  | Boston, MA 02110-1301, USA. | 
|  | */ | 
|  |  | 
|  | #include "config.h" | 
|  |  | 
|  | #include "qscriptprogram.h" | 
|  |  | 
|  | #include "qscriptprogram_p.h" | 
|  |  | 
|  | /*! | 
|  | \internal | 
|  |  | 
|  | \class QScriptProgram | 
|  |  | 
|  | \brief The QScriptProgram class encapsulates a Qt Script program. | 
|  |  | 
|  | \ingroup script | 
|  |  | 
|  | QScriptProgram retains the compiled representation of the script if | 
|  | possible. Thus, QScriptProgram can be used to evaluate the same | 
|  | script multiple times more efficiently. | 
|  |  | 
|  | \code | 
|  | QScriptEngine engine; | 
|  | QScriptProgram program("1 + 2"); | 
|  | QScriptValue result = engine.evaluate(program); | 
|  | \endcode | 
|  | */ | 
|  |  | 
|  | /*! | 
|  | Constructs a null QScriptProgram. | 
|  | */ | 
|  | QScriptProgram::QScriptProgram() | 
|  | : d_ptr(new QScriptProgramPrivate) | 
|  | {} | 
|  |  | 
|  | /*! | 
|  | Constructs a new QScriptProgram with the given \a sourceCode, \a | 
|  | fileName and \a firstLineNumber. | 
|  | */ | 
|  | QScriptProgram::QScriptProgram(const QString& sourceCode, | 
|  | const QString fileName, | 
|  | int firstLineNumber) | 
|  | : d_ptr(new QScriptProgramPrivate(sourceCode, fileName, firstLineNumber)) | 
|  | {} | 
|  |  | 
|  | /*! | 
|  | Destroys this QScriptProgram. | 
|  | */ | 
|  | QScriptProgram::~QScriptProgram() | 
|  | {} | 
|  |  | 
|  | /*! | 
|  | Constructs a new QScriptProgram that is a copy of \a other. | 
|  | */ | 
|  | QScriptProgram::QScriptProgram(const QScriptProgram& other) | 
|  | { | 
|  | d_ptr = other.d_ptr; | 
|  | } | 
|  |  | 
|  | /*! | 
|  | Assigns the \a other value to this QScriptProgram. | 
|  | */ | 
|  | QScriptProgram& QScriptProgram::operator=(const QScriptProgram& other) | 
|  | { | 
|  | d_ptr = other.d_ptr; | 
|  | return *this; | 
|  | } | 
|  |  | 
|  | /*! | 
|  | Returns true if this QScriptProgram is null; otherwise | 
|  | returns false. | 
|  | */ | 
|  | bool QScriptProgram::isNull() const | 
|  | { | 
|  | return d_ptr->isNull(); | 
|  | } | 
|  |  | 
|  | /*! | 
|  | Returns the source code of this program. | 
|  | */ | 
|  | QString QScriptProgram::sourceCode() const | 
|  | { | 
|  | return d_ptr->sourceCode(); | 
|  | } | 
|  |  | 
|  | /*! | 
|  | Returns the filename associated with this program. | 
|  | */ | 
|  | QString QScriptProgram::fileName() const | 
|  | { | 
|  | return d_ptr->fileName(); | 
|  | } | 
|  |  | 
|  | /*! | 
|  | Returns the line number associated with this program. | 
|  | */ | 
|  | int QScriptProgram::firstLineNumber() const | 
|  | { | 
|  | return d_ptr->firstLineNumber(); | 
|  | } | 
|  |  | 
|  | /*! | 
|  | Returns true if this QScriptProgram is equal to \a other; | 
|  | otherwise returns false. | 
|  | */ | 
|  | bool QScriptProgram::operator==(const QScriptProgram& other) const | 
|  | { | 
|  | return d_ptr == other.d_ptr || *d_ptr == *other.d_ptr; | 
|  | } | 
|  |  | 
|  | /*! | 
|  | Returns true if this QScriptProgram is not equal to \a other; | 
|  | otherwise returns false. | 
|  | */ | 
|  | bool QScriptProgram::operator!=(const QScriptProgram& other) const | 
|  | { | 
|  | return d_ptr != other.d_ptr && *d_ptr != *other.d_ptr; | 
|  | } | 
|  |  |