V8XSLTProcessorCustom.cpp [plain text]
#include "config.h"
#include "XSLTProcessor.h"
#include "Document.h"
#include "DocumentFragment.h"
#include "Node.h"
#include "V8Binding.h"
#include "V8CustomBinding.h"
#include "V8Document.h"
#include "V8Node.h"
#include "V8Proxy.h"
#include <wtf/RefPtr.h>
namespace WebCore {
CALLBACK_FUNC_DECL(XSLTProcessorConstructor)
{
INC_STATS("DOM.XSLTProcessor.Constructor");
return V8Proxy::constructDOMObject<V8ClassIndex::XSLTPROCESSOR, XSLTProcessor>(args);
}
CALLBACK_FUNC_DECL(XSLTProcessorImportStylesheet)
{
INC_STATS("DOM.XSLTProcessor.importStylesheet");
if (!V8Node::HasInstance(args[0]))
return v8::Undefined();
XSLTProcessor* imp = V8DOMWrapper::convertToNativeObject<XSLTProcessor>(V8ClassIndex::XSLTPROCESSOR, args.Holder());
Node* node = V8DOMWrapper::convertDOMWrapperToNode<Node>(args[0]);
imp->importStylesheet(node);
return v8::Undefined();
}
CALLBACK_FUNC_DECL(XSLTProcessorTransformToFragment)
{
INC_STATS("DOM.XSLTProcessor.transformToFragment");
if (!V8Node::HasInstance(args[0]) || !V8Document::HasInstance(args[1]))
return v8::Undefined();
XSLTProcessor* imp = V8DOMWrapper::convertToNativeObject<XSLTProcessor>(V8ClassIndex::XSLTPROCESSOR, args.Holder());
Node* source = V8DOMWrapper::convertDOMWrapperToNode<Node>(args[0]);
Document* owner = V8DOMWrapper::convertDOMWrapperToNode<Document>(args[1]);
RefPtr<DocumentFragment> result = imp->transformToFragment(source, owner);
return V8DOMWrapper::convertNodeToV8Object(result.get());
}
CALLBACK_FUNC_DECL(XSLTProcessorTransformToDocument)
{
INC_STATS("DOM.XSLTProcessor.transformToDocument");
if (!V8Node::HasInstance(args[0]))
return v8::Undefined();
XSLTProcessor* imp = V8DOMWrapper::convertToNativeObject<XSLTProcessor>(V8ClassIndex::XSLTPROCESSOR, args.Holder());
Node* source = V8DOMWrapper::convertDOMWrapperToNode<Node>(args[0]);
if (!source)
return v8::Undefined();
RefPtr<Document> result = imp->transformToDocument(source);
if (!result)
return v8::Undefined();
return V8DOMWrapper::convertNodeToV8Object(result.get());
}
CALLBACK_FUNC_DECL(XSLTProcessorSetParameter)
{
INC_STATS("DOM.XSLTProcessor.setParameter");
if (isUndefinedOrNull(args[1]) || isUndefinedOrNull(args[2]))
return v8::Undefined();
XSLTProcessor* imp = V8DOMWrapper::convertToNativeObject<XSLTProcessor>(V8ClassIndex::XSLTPROCESSOR, args.Holder());
String namespaceURI = toWebCoreString(args[0]);
String localName = toWebCoreString(args[1]);
String value = toWebCoreString(args[2]);
imp->setParameter(namespaceURI, localName, value);
return v8::Undefined();
}
CALLBACK_FUNC_DECL(XSLTProcessorGetParameter)
{
INC_STATS("DOM.XSLTProcessor.getParameter");
if (isUndefinedOrNull(args[1]))
return v8::Undefined();
XSLTProcessor* imp = V8DOMWrapper::convertToNativeObject<XSLTProcessor>(V8ClassIndex::XSLTPROCESSOR, args.Holder());
String namespaceURI = toWebCoreString(args[0]);
String localName = toWebCoreString(args[1]);
String result = imp->getParameter(namespaceURI, localName);
if (result.isNull())
return v8::Undefined();
return v8String(result);
}
CALLBACK_FUNC_DECL(XSLTProcessorRemoveParameter)
{
INC_STATS("DOM.XSLTProcessor.removeParameter");
if (isUndefinedOrNull(args[1]))
return v8::Undefined();
XSLTProcessor* imp = V8DOMWrapper::convertToNativeObject<XSLTProcessor>(V8ClassIndex::XSLTPROCESSOR, args.Holder());
String namespaceURI = toWebCoreString(args[0]);
String localName = toWebCoreString(args[1]);
imp->removeParameter(namespaceURI, localName);
return v8::Undefined();
}
}