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