1231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block/*
2231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * This file is part of the XSL implementation.
3231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block *
4231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * Copyright (C) 2009 Jakub Wieczorek <faw217@gmail.com>
5231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block *
6231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * This library is free software; you can redistribute it and/or
7231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * modify it under the terms of the GNU Library General Public
8231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * License as published by the Free Software Foundation; either
9231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * version 2 of the License, or (at your option) any later version.
10231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block *
11231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * This library is distributed in the hope that it will be useful,
12231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * but WITHOUT ANY WARRANTY; without even the implied warranty of
13231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * Library General Public License for more details.
15231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block *
16231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * You should have received a copy of the GNU Library General Public License
17231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * along with this library; see the file COPYING.LIB.  If not, write to
18231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
19231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * Boston, MA 02110-1301, USA.
20231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block */
21231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
22231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#include "config.h"
23231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#include "XSLStyleSheet.h"
24231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
25231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#if ENABLE(XSLT)
26231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
27231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#include "DOMWindow.h"
28231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#include "Document.h"
29231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#include "Node.h"
30231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#include "NotImplemented.h"
31231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#include "XSLTProcessor.h"
32231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
33231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Blocknamespace WebCore {
34231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
358a0914b749bbe7da7768e07a7db5c6d4bb09472bSteve BlockXSLStyleSheet::XSLStyleSheet(Node* parentNode, const String& originalURL, const KURL& finalURL,  bool embedded)
368a0914b749bbe7da7768e07a7db5c6d4bb09472bSteve Block    : StyleSheet(parentNode, originalURL, finalURL)
37231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    , m_embedded(embedded)
38231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block{
39231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block}
40231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
41231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve BlockXSLStyleSheet::~XSLStyleSheet()
42231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block{
43231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block}
44231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
45231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Blockbool XSLStyleSheet::isLoading()
46231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block{
47231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    notImplemented();
48231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    return false;
49231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block}
50231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
51231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Blockvoid XSLStyleSheet::checkLoaded()
52231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block{
53231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    if (ownerNode())
54231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        ownerNode()->sheetLoaded();
55231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block}
56231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
57231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Blockvoid XSLStyleSheet::clearDocuments()
58231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block{
59231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    notImplemented();
60231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block}
61231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
625abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain MerrickCachedResourceLoader* XSLStyleSheet::cachedResourceLoader()
63231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block{
642fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    Document* document = ownerDocument();
652fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    if (!document)
66231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        return 0;
672fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    return document->cachedResourceLoader();
68231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block}
69231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
70231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Blockbool XSLStyleSheet::parseString(const String& string, bool)
71231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block{
72231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    // FIXME: Fix QXmlQuery so that it allows compiling the stylesheet before setting the document
73231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    // to be transformed. This way we could not only check if the stylesheet is correct before using it
74231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    // but also turn XSLStyleSheet::sheetString() into XSLStyleSheet::query() that returns a QXmlQuery.
75231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
76231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    m_sheetString = string;
77231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    return !m_sheetString.isEmpty();
78231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block}
79231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
80231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Blockvoid XSLStyleSheet::loadChildSheets()
81231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block{
82231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    notImplemented();
83231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block}
84231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
85231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Blockvoid XSLStyleSheet::loadChildSheet(const String&)
86231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block{
87231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    notImplemented();
88231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block}
89231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
902fc2651226baac27029e38c9d6ef883fa32084dbSteve BlockDocument* XSLStyleSheet::ownerDocument()
912fc2651226baac27029e38c9d6ef883fa32084dbSteve Block{
922fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    Node* node = ownerNode();
932fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    return node ? node->document() : 0;
942fc2651226baac27029e38c9d6ef883fa32084dbSteve Block}
952fc2651226baac27029e38c9d6ef883fa32084dbSteve Block
96231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Blockvoid XSLStyleSheet::setParentStyleSheet(XSLStyleSheet*)
97231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block{
98231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    notImplemented();
99231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block}
100231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
101231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Blockvoid XSLStyleSheet::markAsProcessed()
102231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block{
103231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    notImplemented();
104231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block}
105231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
106231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block} // namespace WebCore
107231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
108231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#endif // ENABLE(XSLT)
109