src/declarative/qml/qdeclarativedom_p.h
changeset 30 5dc02b23752f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/declarative/qml/qdeclarativedom_p.h	Tue Jul 06 15:10:48 2010 +0300
@@ -0,0 +1,360 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file.  Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights.  These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QDECLARATIVEDOM_P_H
+#define QDECLARATIVEDOM_P_H
+
+//
+//  W A R N I N G
+//  -------------
+//
+// This file is not part of the Qt API.  It exists purely as an
+// implementation detail.  This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+#include "qdeclarativeerror.h"
+
+#include <QtCore/qlist.h>
+#include <QtCore/qshareddata.h>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(Declarative)
+
+class QString;
+class QByteArray;
+class QDeclarativeDomObject;
+class QDeclarativeDomList;
+class QDeclarativeDomValue;
+class QDeclarativeEngine;
+class QDeclarativeDomComponent;
+class QDeclarativeDomImport;
+class QIODevice;
+
+class QDeclarativeDomDocumentPrivate;
+
+class Q_DECLARATIVE_EXPORT QDeclarativeDomDocument
+{
+public:
+    QDeclarativeDomDocument();
+    QDeclarativeDomDocument(const QDeclarativeDomDocument &);
+    ~QDeclarativeDomDocument();
+    QDeclarativeDomDocument &operator=(const QDeclarativeDomDocument &);
+
+    QList<QDeclarativeDomImport> imports() const;
+
+    QList<QDeclarativeError> errors() const;
+    bool load(QDeclarativeEngine *, const QByteArray &, const QUrl & = QUrl());
+
+    QDeclarativeDomObject rootObject() const;
+
+private:
+    QSharedDataPointer<QDeclarativeDomDocumentPrivate> d;
+};
+
+class QDeclarativeDomPropertyPrivate;
+class Q_DECLARATIVE_EXPORT QDeclarativeDomProperty
+{
+public:
+    QDeclarativeDomProperty();
+    QDeclarativeDomProperty(const QDeclarativeDomProperty &);
+    ~QDeclarativeDomProperty();
+    QDeclarativeDomProperty &operator=(const QDeclarativeDomProperty &);
+
+    bool isValid() const;
+
+    QByteArray propertyName() const;
+    QList<QByteArray> propertyNameParts() const;
+
+    bool isDefaultProperty() const;
+
+    QDeclarativeDomValue value() const;
+
+    int position() const;
+    int length() const;
+
+private:
+    friend class QDeclarativeDomObject;
+    friend class QDeclarativeDomDynamicProperty;
+    QSharedDataPointer<QDeclarativeDomPropertyPrivate> d;
+};
+
+class QDeclarativeDomDynamicPropertyPrivate;
+class Q_DECLARATIVE_EXPORT QDeclarativeDomDynamicProperty
+{
+public:
+    QDeclarativeDomDynamicProperty();
+    QDeclarativeDomDynamicProperty(const QDeclarativeDomDynamicProperty &);
+    ~QDeclarativeDomDynamicProperty();
+    QDeclarativeDomDynamicProperty &operator=(const QDeclarativeDomDynamicProperty &);
+
+    bool isValid() const;
+
+    QByteArray propertyName() const;
+    int propertyType() const;
+    QByteArray propertyTypeName() const;
+
+    bool isDefaultProperty() const;
+    QDeclarativeDomProperty defaultValue() const;
+
+    bool isAlias() const;
+
+    int position() const;
+    int length() const;
+
+private:
+    friend class QDeclarativeDomObject;
+    QSharedDataPointer<QDeclarativeDomDynamicPropertyPrivate> d;
+};
+
+class QDeclarativeDomObjectPrivate;
+class Q_DECLARATIVE_EXPORT QDeclarativeDomObject
+{
+public:
+    QDeclarativeDomObject();
+    QDeclarativeDomObject(const QDeclarativeDomObject &);
+    ~QDeclarativeDomObject();
+    QDeclarativeDomObject &operator=(const QDeclarativeDomObject &);
+
+    bool isValid() const;
+
+    QByteArray objectType() const;
+    QByteArray objectClassName() const;
+
+    int objectTypeMajorVersion() const;
+    int objectTypeMinorVersion() const;
+
+    QString objectId() const;
+
+    QList<QDeclarativeDomProperty> properties() const;
+    QDeclarativeDomProperty property(const QByteArray &) const;
+
+    QList<QDeclarativeDomDynamicProperty> dynamicProperties() const;
+    QDeclarativeDomDynamicProperty dynamicProperty(const QByteArray &) const;
+
+    bool isCustomType() const;
+    QByteArray customTypeData() const;
+
+    bool isComponent() const;
+    QDeclarativeDomComponent toComponent() const;
+
+    int position() const;
+    int length() const;
+
+    QUrl url() const;
+private:
+    friend class QDeclarativeDomDocument;
+    friend class QDeclarativeDomComponent;
+    friend class QDeclarativeDomValue;
+    friend class QDeclarativeDomValueValueSource;
+    friend class QDeclarativeDomValueValueInterceptor;
+    QSharedDataPointer<QDeclarativeDomObjectPrivate> d;
+};
+
+class QDeclarativeDomValuePrivate;
+class QDeclarativeDomBasicValuePrivate;
+class Q_DECLARATIVE_EXPORT QDeclarativeDomValueLiteral
+{
+public:
+    QDeclarativeDomValueLiteral();
+    QDeclarativeDomValueLiteral(const QDeclarativeDomValueLiteral &);
+    ~QDeclarativeDomValueLiteral();
+    QDeclarativeDomValueLiteral &operator=(const QDeclarativeDomValueLiteral &);
+
+    QString literal() const;
+
+private:
+    friend class QDeclarativeDomValue;
+    QSharedDataPointer<QDeclarativeDomBasicValuePrivate> d;
+};
+
+class Q_DECLARATIVE_EXPORT QDeclarativeDomValueBinding
+{
+public:
+    QDeclarativeDomValueBinding();
+    QDeclarativeDomValueBinding(const QDeclarativeDomValueBinding &);
+    ~QDeclarativeDomValueBinding();
+    QDeclarativeDomValueBinding &operator=(const QDeclarativeDomValueBinding &);
+
+    QString binding() const;
+
+private:
+    friend class QDeclarativeDomValue;
+    QSharedDataPointer<QDeclarativeDomBasicValuePrivate> d;
+};
+
+class Q_DECLARATIVE_EXPORT QDeclarativeDomValueValueSource
+{
+public:
+    QDeclarativeDomValueValueSource();
+    QDeclarativeDomValueValueSource(const QDeclarativeDomValueValueSource &);
+    ~QDeclarativeDomValueValueSource();
+    QDeclarativeDomValueValueSource &operator=(const QDeclarativeDomValueValueSource &);
+
+    QDeclarativeDomObject object() const;
+
+private:
+    friend class QDeclarativeDomValue;
+    QSharedDataPointer<QDeclarativeDomBasicValuePrivate> d;
+};
+
+class Q_DECLARATIVE_EXPORT QDeclarativeDomValueValueInterceptor
+{
+public:
+    QDeclarativeDomValueValueInterceptor();
+    QDeclarativeDomValueValueInterceptor(const QDeclarativeDomValueValueInterceptor &);
+    ~QDeclarativeDomValueValueInterceptor();
+    QDeclarativeDomValueValueInterceptor &operator=(const QDeclarativeDomValueValueInterceptor &);
+
+    QDeclarativeDomObject object() const;
+
+private:
+    friend class QDeclarativeDomValue;
+    QSharedDataPointer<QDeclarativeDomBasicValuePrivate> d;
+};
+
+
+class Q_DECLARATIVE_EXPORT QDeclarativeDomComponent : public QDeclarativeDomObject
+{
+public:
+    QDeclarativeDomComponent();
+    QDeclarativeDomComponent(const QDeclarativeDomComponent &);
+    ~QDeclarativeDomComponent();
+    QDeclarativeDomComponent &operator=(const QDeclarativeDomComponent &);
+
+    QDeclarativeDomObject componentRoot() const;
+};
+
+class Q_DECLARATIVE_EXPORT QDeclarativeDomValue
+{
+public:
+    enum Type { 
+        Invalid,
+        Literal, 
+        PropertyBinding, 
+        ValueSource,
+        ValueInterceptor,
+        Object,
+        List 
+    };
+
+    QDeclarativeDomValue();
+    QDeclarativeDomValue(const QDeclarativeDomValue &);
+    ~QDeclarativeDomValue();
+    QDeclarativeDomValue &operator=(const QDeclarativeDomValue &);
+
+    Type type() const;
+
+    bool isInvalid() const;
+    bool isLiteral() const;
+    bool isBinding() const;
+    bool isValueSource() const;
+    bool isValueInterceptor() const;
+    bool isObject() const;
+    bool isList() const;
+
+    QDeclarativeDomValueLiteral toLiteral() const;
+    QDeclarativeDomValueBinding toBinding() const;
+    QDeclarativeDomValueValueSource toValueSource() const;
+    QDeclarativeDomValueValueInterceptor toValueInterceptor() const;
+    QDeclarativeDomObject toObject() const;
+    QDeclarativeDomList toList() const;
+
+    int position() const;
+    int length() const;
+
+private:
+    friend class QDeclarativeDomProperty;
+    friend class QDeclarativeDomList;
+    QSharedDataPointer<QDeclarativeDomValuePrivate> d;
+};
+
+class Q_DECLARATIVE_EXPORT QDeclarativeDomList
+{
+public:
+    QDeclarativeDomList();
+    QDeclarativeDomList(const QDeclarativeDomList &);
+    ~QDeclarativeDomList();
+    QDeclarativeDomList &operator=(const QDeclarativeDomList &);
+
+    QList<QDeclarativeDomValue> values() const;
+
+    int position() const;
+    int length() const;
+
+    QList<int> commaPositions() const;
+
+private:
+    friend class QDeclarativeDomValue;
+    QSharedDataPointer<QDeclarativeDomValuePrivate> d;
+};
+
+class QDeclarativeDomImportPrivate;
+class Q_DECLARATIVE_EXPORT QDeclarativeDomImport
+{
+public:
+    enum Type { Library, File };
+
+    QDeclarativeDomImport();
+    QDeclarativeDomImport(const QDeclarativeDomImport &);
+    ~QDeclarativeDomImport();
+    QDeclarativeDomImport &operator=(const QDeclarativeDomImport &);
+
+    Type type() const;
+    QString uri() const;
+    QString version() const;
+    QString qualifier() const;
+
+private:
+    friend class QDeclarativeDomDocument;
+    QSharedDataPointer<QDeclarativeDomImportPrivate> d;
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QDECLARATIVEDOM_P_H