/** * @file * @author This file has been generated by generate-bindings.pl. DO NOT MODIFY! * @copyright Simplified BSD * * @cond * This program is free software: you can redistribute it and/or modify * it under the terms of the FreeBSD license as published by the FreeBSD * project. * * This program 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. * * You should have received a copy of the FreeBSD license along with this * program. If not, see . * @endcond */ #include "V8Document.h" #include "V8Node.h" #include "V8NodeList.h" namespace Arabica { namespace DOM { v8::Persistent V8Node::Tmpl; v8::Handle V8Node::nodeNameAttrGetter(v8::Local property, const v8::AccessorInfo& info) { v8::Local self = info.Holder(); struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); return v8::String::New(privData->nativeObj->getNodeName().c_str()); } v8::Handle V8Node::nodeValueAttrGetter(v8::Local property, const v8::AccessorInfo& info) { v8::Local self = info.Holder(); struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); return v8::String::New(privData->nativeObj->getNodeValue().c_str()); } void V8Node::nodeValueAttrSetter(v8::Local property, v8::Local value, const v8::AccessorInfo& info) { v8::Local self = info.Holder(); struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); v8::String::AsciiValue localNodeValue(value); privData->nativeObj->setNodeValue(*localNodeValue); } v8::Handle V8Node::nodeTypeAttrGetter(v8::Local property, const v8::AccessorInfo& info) { v8::Local self = info.Holder(); struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); return v8::Integer::New(privData->nativeObj->getNodeType()); } v8::Handle V8Node::parentNodeAttrGetter(v8::Local property, const v8::AccessorInfo& info) { v8::Local self = info.Holder(); struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); if (!privData->nativeObj->getParentNode()) return v8::Undefined(); Arabica::DOM::Node* arbaicaRet = new Arabica::DOM::Node(privData->nativeObj->getParentNode()); v8::Handle arbaicaRetCtor = V8Node::getTmpl()->GetFunction(); v8::Persistent arbaicaRetObj = v8::Persistent::New(arbaicaRetCtor->NewInstance()); struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); retPrivData->dom = privData->dom; retPrivData->nativeObj = arbaicaRet; arbaicaRetObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); arbaicaRetObj.MakeWeak(0, V8Node::jsDestructor); return arbaicaRetObj; } v8::Handle V8Node::childNodesAttrGetter(v8::Local property, const v8::AccessorInfo& info) { v8::Local self = info.Holder(); struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); Arabica::DOM::NodeList* arbaicaRet = new Arabica::DOM::NodeList(privData->nativeObj->getChildNodes()); v8::Handle arbaicaRetCtor = V8NodeList::getTmpl()->GetFunction(); v8::Persistent arbaicaRetObj = v8::Persistent::New(arbaicaRetCtor->NewInstance()); struct V8NodeList::V8NodeListPrivate* retPrivData = new V8NodeList::V8NodeListPrivate(); retPrivData->dom = privData->dom; retPrivData->nativeObj = arbaicaRet; arbaicaRetObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); arbaicaRetObj.MakeWeak(0, V8NodeList::jsDestructor); return arbaicaRetObj; } v8::Handle V8Node::firstChildAttrGetter(v8::Local property, const v8::AccessorInfo& info) { v8::Local self = info.Holder(); struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); if (!privData->nativeObj->getFirstChild()) return v8::Undefined(); Arabica::DOM::Node* arbaicaRet = new Arabica::DOM::Node(privData->nativeObj->getFirstChild()); v8::Handle arbaicaRetCtor = V8Node::getTmpl()->GetFunction(); v8::Persistent arbaicaRetObj = v8::Persistent::New(arbaicaRetCtor->NewInstance()); struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); retPrivData->dom = privData->dom; retPrivData->nativeObj = arbaicaRet; arbaicaRetObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); arbaicaRetObj.MakeWeak(0, V8Node::jsDestructor); return arbaicaRetObj; } v8::Handle V8Node::lastChildAttrGetter(v8::Local property, const v8::AccessorInfo& info) { v8::Local self = info.Holder(); struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); if (!privData->nativeObj->getLastChild()) return v8::Undefined(); Arabica::DOM::Node* arbaicaRet = new Arabica::DOM::Node(privData->nativeObj->getLastChild()); v8::Handle arbaicaRetCtor = V8Node::getTmpl()->GetFunction(); v8::Persistent arbaicaRetObj = v8::Persistent::New(arbaicaRetCtor->NewInstance()); struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); retPrivData->dom = privData->dom; retPrivData->nativeObj = arbaicaRet; arbaicaRetObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); arbaicaRetObj.MakeWeak(0, V8Node::jsDestructor); return arbaicaRetObj; } v8::Handle V8Node::previousSiblingAttrGetter(v8::Local property, const v8::AccessorInfo& info) { v8::Local self = info.Holder(); struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); if (!privData->nativeObj->getPreviousSibling()) return v8::Undefined(); Arabica::DOM::Node* arbaicaRet = new Arabica::DOM::Node(privData->nativeObj->getPreviousSibling()); v8::Handle arbaicaRetCtor = V8Node::getTmpl()->GetFunction(); v8::Persistent arbaicaRetObj = v8::Persistent::New(arbaicaRetCtor->NewInstance()); struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); retPrivData->dom = privData->dom; retPrivData->nativeObj = arbaicaRet; arbaicaRetObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); arbaicaRetObj.MakeWeak(0, V8Node::jsDestructor); return arbaicaRetObj; } v8::Handle V8Node::nextSiblingAttrGetter(v8::Local property, const v8::AccessorInfo& info) { v8::Local self = info.Holder(); struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); if (!privData->nativeObj->getNextSibling()) return v8::Undefined(); Arabica::DOM::Node* arbaicaRet = new Arabica::DOM::Node(privData->nativeObj->getNextSibling()); v8::Handle arbaicaRetCtor = V8Node::getTmpl()->GetFunction(); v8::Persistent arbaicaRetObj = v8::Persistent::New(arbaicaRetCtor->NewInstance()); struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); retPrivData->dom = privData->dom; retPrivData->nativeObj = arbaicaRet; arbaicaRetObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); arbaicaRetObj.MakeWeak(0, V8Node::jsDestructor); return arbaicaRetObj; } v8::Handle V8Node::ownerDocumentAttrGetter(v8::Local property, const v8::AccessorInfo& info) { v8::Local self = info.Holder(); struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); if (!privData->nativeObj->getOwnerDocument()) return v8::Undefined(); Arabica::DOM::Document* arbaicaRet = new Arabica::DOM::Document(privData->nativeObj->getOwnerDocument()); v8::Handle arbaicaRetCtor = V8Document::getTmpl()->GetFunction(); v8::Persistent arbaicaRetObj = v8::Persistent::New(arbaicaRetCtor->NewInstance()); struct V8Document::V8DocumentPrivate* retPrivData = new V8Document::V8DocumentPrivate(); retPrivData->dom = privData->dom; retPrivData->nativeObj = arbaicaRet; arbaicaRetObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); arbaicaRetObj.MakeWeak(0, V8Document::jsDestructor); return arbaicaRetObj; } v8::Handle V8Node::namespaceURIAttrGetter(v8::Local property, const v8::AccessorInfo& info) { v8::Local self = info.Holder(); struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); return v8::String::New(privData->nativeObj->getNamespaceURI().c_str()); } v8::Handle V8Node::prefixAttrGetter(v8::Local property, const v8::AccessorInfo& info) { v8::Local self = info.Holder(); struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); return v8::String::New(privData->nativeObj->getPrefix().c_str()); } void V8Node::prefixAttrSetter(v8::Local property, v8::Local value, const v8::AccessorInfo& info) { v8::Local self = info.Holder(); struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); v8::String::AsciiValue localPrefix(value); privData->nativeObj->setPrefix(*localPrefix); } v8::Handle V8Node::localNameAttrGetter(v8::Local property, const v8::AccessorInfo& info) { v8::Local self = info.Holder(); struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); return v8::String::New(privData->nativeObj->getLocalName().c_str()); } v8::Handle V8Node::insertBeforeCallback(const v8::Arguments& args) { v8::Local self = args.Holder(); struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); if (false) { } else if (args.Length() == 2 && args[0]->IsObject() && V8Node::hasInstance(args[0]) && args[1]->IsObject() && V8Node::hasInstance(args[1])) { Arabica::DOM::Node* localNewChild = V8DOM::toClassPtr(args[0]->ToObject()->GetInternalField(0))->nativeObj; Arabica::DOM::Node* localRefChild = V8DOM::toClassPtr(args[1]->ToObject()->GetInternalField(0))->nativeObj; Arabica::DOM::Node* retVal = new Arabica::DOM::Node(privData->nativeObj->insertBefore(*localNewChild, *localRefChild)); v8::Handle retCtor = V8Node::getTmpl()->GetFunction(); v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); retPrivData->dom = privData->dom; retPrivData->nativeObj = retVal; retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); retObj.MakeWeak(0, V8Node::jsDestructor); return retObj; } throw V8Exception("Parameter mismatch while calling insertBefore"); return v8::Undefined(); } v8::Handle V8Node::replaceChildCallback(const v8::Arguments& args) { v8::Local self = args.Holder(); struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); if (false) { } else if (args.Length() == 2 && args[0]->IsObject() && V8Node::hasInstance(args[0]) && args[1]->IsObject() && V8Node::hasInstance(args[1])) { Arabica::DOM::Node* localNewChild = V8DOM::toClassPtr(args[0]->ToObject()->GetInternalField(0))->nativeObj; Arabica::DOM::Node* localOldChild = V8DOM::toClassPtr(args[1]->ToObject()->GetInternalField(0))->nativeObj; Arabica::DOM::Node* retVal = new Arabica::DOM::Node(privData->nativeObj->replaceChild(*localNewChild, *localOldChild)); v8::Handle retCtor = V8Node::getTmpl()->GetFunction(); v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); retPrivData->dom = privData->dom; retPrivData->nativeObj = retVal; retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); retObj.MakeWeak(0, V8Node::jsDestructor); return retObj; } throw V8Exception("Parameter mismatch while calling replaceChild"); return v8::Undefined(); } v8::Handle V8Node::removeChildCallback(const v8::Arguments& args) { v8::Local self = args.Holder(); struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); if (false) { } else if (args.Length() == 1 && args[0]->IsObject() && V8Node::hasInstance(args[0])) { Arabica::DOM::Node* localOldChild = V8DOM::toClassPtr(args[0]->ToObject()->GetInternalField(0))->nativeObj; Arabica::DOM::Node* retVal = new Arabica::DOM::Node(privData->nativeObj->removeChild(*localOldChild)); v8::Handle retCtor = V8Node::getTmpl()->GetFunction(); v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); retPrivData->dom = privData->dom; retPrivData->nativeObj = retVal; retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); retObj.MakeWeak(0, V8Node::jsDestructor); return retObj; } throw V8Exception("Parameter mismatch while calling removeChild"); return v8::Undefined(); } v8::Handle V8Node::appendChildCallback(const v8::Arguments& args) { v8::Local self = args.Holder(); struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); if (false) { } else if (args.Length() == 1 && args[0]->IsObject() && V8Node::hasInstance(args[0])) { Arabica::DOM::Node* localNewChild = V8DOM::toClassPtr(args[0]->ToObject()->GetInternalField(0))->nativeObj; Arabica::DOM::Node* retVal = new Arabica::DOM::Node(privData->nativeObj->appendChild(*localNewChild)); v8::Handle retCtor = V8Node::getTmpl()->GetFunction(); v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); retPrivData->dom = privData->dom; retPrivData->nativeObj = retVal; retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); retObj.MakeWeak(0, V8Node::jsDestructor); return retObj; } throw V8Exception("Parameter mismatch while calling appendChild"); return v8::Undefined(); } v8::Handle V8Node::hasChildNodesCallback(const v8::Arguments& args) { v8::Local self = args.Holder(); struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); if (false) { } else if (args.Length() == 0) { bool retVal = privData->nativeObj->hasChildNodes(); return v8::Boolean::New(retVal); } throw V8Exception("Parameter mismatch while calling hasChildNodes"); return v8::Undefined(); } v8::Handle V8Node::cloneNodeCallback(const v8::Arguments& args) { v8::Local self = args.Holder(); struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); if (false) { } else if (args.Length() == 1 && args[0]->IsBoolean()) { bool localDeep = args[0]->ToBoolean()->BooleanValue(); Arabica::DOM::Node* retVal = new Arabica::DOM::Node(privData->nativeObj->cloneNode(localDeep)); v8::Handle retCtor = V8Node::getTmpl()->GetFunction(); v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); retPrivData->dom = privData->dom; retPrivData->nativeObj = retVal; retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); retObj.MakeWeak(0, V8Node::jsDestructor); return retObj; } throw V8Exception("Parameter mismatch while calling cloneNode"); return v8::Undefined(); } v8::Handle V8Node::normalizeCallback(const v8::Arguments& args) { v8::Local self = args.Holder(); struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); if (false) { } else if (args.Length() == 0) { privData->nativeObj->normalize(); return v8::Undefined(); } throw V8Exception("Parameter mismatch while calling normalize"); return v8::Undefined(); } v8::Handle V8Node::isSupportedCallback(const v8::Arguments& args) { v8::Local self = args.Holder(); struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); if (false) { } else if (args.Length() == 2 && args[0]->IsString() && args[1]->IsString()) { v8::String::AsciiValue localFeature(args[0]); v8::String::AsciiValue localVersion(args[1]); bool retVal = privData->nativeObj->isSupported(*localFeature, *localVersion); return v8::Boolean::New(retVal); } throw V8Exception("Parameter mismatch while calling isSupported"); return v8::Undefined(); } v8::Handle V8Node::hasAttributesCallback(const v8::Arguments& args) { v8::Local self = args.Holder(); struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); if (false) { } else if (args.Length() == 0) { bool retVal = privData->nativeObj->hasAttributes(); return v8::Boolean::New(retVal); } throw V8Exception("Parameter mismatch while calling hasAttributes"); return v8::Undefined(); } bool V8Node::hasInstance(v8::Handle value) { return getTmpl()->HasInstance(value); } } }