/*
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;
}