diff --git a/mozilla/java/dom/README b/mozilla/java/dom/README index d83eb2b991a..138192fa560 100644 --- a/mozilla/java/dom/README +++ b/mozilla/java/dom/README @@ -23,9 +23,8 @@ Building Perl 5 must be in your path JDKHOME environment variable set to your JDK dir CLASSPATH environment cvariable set to contain - org.w3c.dom classes. The sources can be found at - http://www.w3.org/TR/2000/CR-DOM-Level-2-20000307/java-binding.html - and the binaries can be found at http://www.mozilla.org/projects/blackwood/webclient/bin/m3/files.html + org.w3c.dom classes. The sources can be found at + http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/java-binding.html Solaris specific ---------------- diff --git a/mozilla/java/dom/classes/org/mozilla/dom/AttrImpl.java b/mozilla/java/dom/classes/org/mozilla/dom/AttrImpl.java index d2e132b71c3..5f54b5fcd32 100644 --- a/mozilla/java/dom/classes/org/mozilla/dom/AttrImpl.java +++ b/mozilla/java/dom/classes/org/mozilla/dom/AttrImpl.java @@ -39,7 +39,5 @@ public class AttrImpl extends NodeImpl implements Attr { * null if this attribute is not in use. * @since DOM Level 2 */ - public Element getOwnerElement() { - throw new UnsupportedOperationException(); - } + public native Element getOwnerElement(); } diff --git a/mozilla/java/dom/classes/org/mozilla/dom/DOMImplementationImpl.java b/mozilla/java/dom/classes/org/mozilla/dom/DOMImplementationImpl.java index 08e6d0d25a2..0507a4ebd83 100644 --- a/mozilla/java/dom/classes/org/mozilla/dom/DOMImplementationImpl.java +++ b/mozilla/java/dom/classes/org/mozilla/dom/DOMImplementationImpl.java @@ -52,20 +52,11 @@ public class DOMImplementationImpl implements DOMImplementation { private native int XPCOM_hashCode(); //since DOM2 - public DocumentType createDocumentType(String qualifiedName, String publicID, String systemID) { - throw new UnsupportedOperationException(); - } + public native DocumentType createDocumentType(String qualifiedName, + String publicID, + String systemID); - public Document createDocument(String namespaceURI, - String qualifiedName, - DocumentType doctype) throws DOMException { - throw new UnsupportedOperationException(); - } - - public DocumentType createDocumentType(String qualifiedName, - String publicId, - String systemId, - String internalSubset) { - throw new UnsupportedOperationException(); - } + public native Document createDocument(String namespaceURI, + String qualifiedName, + DocumentType doctype); } diff --git a/mozilla/java/dom/classes/org/mozilla/dom/DocumentImpl.java b/mozilla/java/dom/classes/org/mozilla/dom/DocumentImpl.java index b44471d3f95..a545a248c94 100644 --- a/mozilla/java/dom/classes/org/mozilla/dom/DocumentImpl.java +++ b/mozilla/java/dom/classes/org/mozilla/dom/DocumentImpl.java @@ -58,9 +58,9 @@ public class DocumentImpl extends NodeImpl implements Document, DocumentEvent { public native Element getDocumentElement(); public native NodeList getElementsByTagName(String tagName); public native DOMImplementation getImplementation(); - public Event createEvent(String type) throws DOMException { - throw new UnsupportedOperationException(); - } + public native Event createEvent(String type); + public native NodeList getElementsByTagNameNS(String namespaceURI, String localName); + public native Element getElementById(String elementId); public Node importNode(Node importedNode, boolean deep) throws DOMException { throw new UnsupportedOperationException(); @@ -75,12 +75,4 @@ public class DocumentImpl extends NodeImpl implements Document, DocumentEvent { throws DOMException { throw new UnsupportedOperationException(); } - - public NodeList getElementsByTagNameNS(String namespaceURI, String localName) { - throw new UnsupportedOperationException(); - } - - public Element getElementById(String elementId) { - throw new UnsupportedOperationException(); - }; } diff --git a/mozilla/java/dom/classes/org/mozilla/dom/DocumentTypeImpl.java b/mozilla/java/dom/classes/org/mozilla/dom/DocumentTypeImpl.java index c85b8d19791..341d31f4fed 100644 --- a/mozilla/java/dom/classes/org/mozilla/dom/DocumentTypeImpl.java +++ b/mozilla/java/dom/classes/org/mozilla/dom/DocumentTypeImpl.java @@ -34,16 +34,7 @@ public class DocumentTypeImpl extends NodeImpl implements DocumentType { public native NamedNodeMap getNotations(); //since DOM level 2 - - public String getPublicId() { - throw new UnsupportedOperationException(); - } - - public String getSystemId() { - throw new UnsupportedOperationException(); - } - - public String getInternalSubset() { - throw new UnsupportedOperationException(); - } + public native String getPublicId(); + public native String getSystemId(); + public native String getInternalSubset(); } diff --git a/mozilla/java/dom/classes/org/mozilla/dom/ElementImpl.java b/mozilla/java/dom/classes/org/mozilla/dom/ElementImpl.java index c2a36e292b8..6a7cdb66940 100644 --- a/mozilla/java/dom/classes/org/mozilla/dom/ElementImpl.java +++ b/mozilla/java/dom/classes/org/mozilla/dom/ElementImpl.java @@ -42,38 +42,12 @@ public class ElementImpl extends NodeImpl implements Element { public native Attr setAttributeNode(Attr newAttr); //since DOM2 - public String getAttributeNS(String namespaceURI, String localName) { - throw new UnsupportedOperationException(); - } - - public void setAttributeNS(String namespaceURI, String localName, - String value) throws DOMException { - throw new UnsupportedOperationException(); - } - - public void removeAttributeNS(String namespacURI, String localName) - throws DOMException { - throw new UnsupportedOperationException(); - } - - public Attr getAttributeNodeNS(String namespaceURI, String localName) { - throw new UnsupportedOperationException(); - } - - public Attr setAttributeNodeNS(Attr newAttr) throws DOMException { - throw new UnsupportedOperationException(); - } - - public NodeList getElementsByTagNameNS(String namespaceURI, String localName) { - throw new UnsupportedOperationException(); - } - - public boolean hasAttribute(String name) { - throw new UnsupportedOperationException(); - } - - public boolean hasAttributeNS(String namespaceURI, - String localName) { - throw new UnsupportedOperationException(); - } + public native String getAttributeNS(String namespaceURI, String localName); + public native void setAttributeNS(String namespaceURI, String qualifiedName, String value); + public native void removeAttributeNS(String namespacURI, String localName); + public native Attr getAttributeNodeNS(String namespaceURI, String localName); + public native Attr setAttributeNodeNS(Attr newAttr); + public native NodeList getElementsByTagNameNS(String namespaceURI, String localName); + public native boolean hasAttribute(String name); + public native boolean hasAttributeNS(String namespaceURI, String localName); } diff --git a/mozilla/java/dom/classes/org/mozilla/dom/NodeImpl.java b/mozilla/java/dom/classes/org/mozilla/dom/NodeImpl.java index fa7d1a5b06b..d742f3dd74d 100644 --- a/mozilla/java/dom/classes/org/mozilla/dom/NodeImpl.java +++ b/mozilla/java/dom/classes/org/mozilla/dom/NodeImpl.java @@ -141,25 +141,11 @@ public class NodeImpl implements Node, EventTarget { private native int XPCOM_hashCode(); //since DOM level 2 - public boolean supports(String feature, String version) { - throw new UnsupportedOperationException(); - } - - public String getNamespaceURI() { - throw new UnsupportedOperationException(); - } - - public String getPrefix() { - throw new UnsupportedOperationException(); - } - - public void setPrefix(String prefix) throws DOMException { - throw new UnsupportedOperationException(); - } - - public String getLocalName() { - throw new UnsupportedOperationException(); - } + public native boolean supports(String feature, String version); + public native String getNamespaceURI(); + public native String getPrefix(); + public native void setPrefix(String prefix); + public native String getLocalName(); public void addEventListener(String type, EventListener listener, diff --git a/mozilla/java/dom/classes/org/mozilla/dom/events/EventImpl.java b/mozilla/java/dom/classes/org/mozilla/dom/events/EventImpl.java index 275d6ed567b..3e480898005 100644 --- a/mozilla/java/dom/classes/org/mozilla/dom/events/EventImpl.java +++ b/mozilla/java/dom/classes/org/mozilla/dom/events/EventImpl.java @@ -130,9 +130,7 @@ public class EventImpl implements Event { * on the current EventTarget before event flow stops. This * method may be used during any stage of event flow. */ - public void stopPropagation() { - throw new UnsupportedOperationException(); - } + public native void stopPropagation(); /** * @@ -149,7 +147,5 @@ public class EventImpl implements Event { boolean canBubbleArg, boolean cancelableArg); - public long getTimeStamp() { - throw new UnsupportedOperationException(); - } + public native long getTimeStamp(); } diff --git a/mozilla/java/dom/jni/javaDOMGlobals.cpp b/mozilla/java/dom/jni/javaDOMGlobals.cpp index 008bec9db4e..8eb69cec1e1 100644 --- a/mozilla/java/dom/jni/javaDOMGlobals.cpp +++ b/mozilla/java/dom/jni/javaDOMGlobals.cpp @@ -76,7 +76,12 @@ const char* const JavaDOMGlobals::DOM_EXCEPTION_MESSAGE[] = "Modification disallowed", "Node not found", "Type is unsupported", - "Attribute is alreay in use"}; + "Attribute is alreay in use", + "Invalid state", + "Syntax error", + "Invalid modification", + "Namespace error", + "Invalid access"}; PRLogModuleInfo* JavaDOMGlobals::log = NULL; diff --git a/mozilla/java/dom/jni/org_mozilla_dom_AttrImpl.cpp b/mozilla/java/dom/jni/org_mozilla_dom_AttrImpl.cpp index ab57259e3eb..2f671ce00ec 100644 --- a/mozilla/java/dom/jni/org_mozilla_dom_AttrImpl.cpp +++ b/mozilla/java/dom/jni/org_mozilla_dom_AttrImpl.cpp @@ -148,4 +148,30 @@ JNIEXPORT void JNICALL Java_org_mozilla_dom_AttrImpl_setValue } } +/* + * Class: org_mozilla_dom_AttrImpl + * Method: getOwnerElement + * Signature: ()Lorg/w3c/dom/Element; + */ +JNIEXPORT jobject JNICALL Java_org_mozilla_dom_AttrImpl_getOwnerElement + (JNIEnv *env, jobject jthis) +{ + nsIDOMAttr* attr = (nsIDOMAttr*) + env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID); + if (!attr) { + JavaDOMGlobals::ThrowException(env, + "Attr.setValue: NULL pointer\n"); + return NULL; + } + + nsIDOMElement* aOwnerElement = nsnull; + nsresult rv = attr->GetOwnerElement(&aOwnerElement); + if (NS_FAILED(rv)) { + PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR, + ("Attr.getOwnerElement: failed (%x)\n", rv)); + return NULL; + } + + return JavaDOMGlobals::CreateNodeSubtype(env, (nsIDOMNode*)aOwnerElement); +} diff --git a/mozilla/java/dom/jni/org_mozilla_dom_AttrImpl.h b/mozilla/java/dom/jni/org_mozilla_dom_AttrImpl.h index 1e6b3541f4c..5f3d26af8b2 100644 --- a/mozilla/java/dom/jni/org_mozilla_dom_AttrImpl.h +++ b/mozilla/java/dom/jni/org_mozilla_dom_AttrImpl.h @@ -7,6 +7,7 @@ #ifdef __cplusplus extern "C" { #endif +/* Inaccessible static: javaDOMlisteners */ /* * Class: org_mozilla_dom_AttrImpl * Method: getName @@ -39,6 +40,14 @@ JNIEXPORT jstring JNICALL Java_org_mozilla_dom_AttrImpl_getValue JNIEXPORT void JNICALL Java_org_mozilla_dom_AttrImpl_setValue (JNIEnv *, jobject, jstring); +/* + * Class: org_mozilla_dom_AttrImpl + * Method: getOwnerElement + * Signature: ()Lorg/w3c/dom/Element; + */ +JNIEXPORT jobject JNICALL Java_org_mozilla_dom_AttrImpl_getOwnerElement + (JNIEnv *, jobject); + #ifdef __cplusplus } #endif diff --git a/mozilla/java/dom/jni/org_mozilla_dom_DOMImplementationImpl.cpp b/mozilla/java/dom/jni/org_mozilla_dom_DOMImplementationImpl.cpp index 8520db54cf7..0ca1d2b453f 100644 --- a/mozilla/java/dom/jni/org_mozilla_dom_DOMImplementationImpl.cpp +++ b/mozilla/java/dom/jni/org_mozilla_dom_DOMImplementationImpl.cpp @@ -23,6 +23,7 @@ #include "nsIDOMDOMImplementation.h" #include "javaDOMGlobals.h" #include "org_mozilla_dom_DOMImplementationImpl.h" +#include "nsDOMError.h" static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID); @@ -175,3 +176,115 @@ JNIEXPORT jboolean JNICALL Java_org_mozilla_dom_DOMImplementationImpl_hasFeature return ret == PR_TRUE ? JNI_TRUE : JNI_FALSE; } + +/* + * Class: org_mozilla_dom_DOMImplementationImpl + * Method: createDocumentType + * Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/DocumentType; + */ +JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DOMImplementationImpl_createDocumentType + (JNIEnv *env, jobject jthis, jstring jqualifiedName, jstring jpublicID, jstring jsystemID) +{ + nsIDOMDOMImplementation* dom = (nsIDOMDOMImplementation*) + env->GetLongField(jthis, JavaDOMGlobals::domImplementationPtrFID); + if (!dom || !jqualifiedName || ! jpublicID || jsystemID) { + JavaDOMGlobals::ThrowException(env, + "DOMImplementation.createDocumentType: NULL pointer"); + return NULL; + } + + nsString* qualifiedName = JavaDOMGlobals::GetUnicode(env, jqualifiedName); + if (!qualifiedName) + return NULL; + + nsString* publicID = JavaDOMGlobals::GetUnicode(env, jpublicID); + if (!publicID) { + nsString::Recycle(qualifiedName); + return NULL; + } + + nsString* systemID = JavaDOMGlobals::GetUnicode(env, jsystemID); + if (!systemID) { + nsString::Recycle(qualifiedName); + nsString::Recycle(publicID); + return NULL; + } + + nsIDOMDocumentType* docType = nsnull; + nsresult rv = dom->CreateDocumentType(*qualifiedName, *publicID, *systemID, &docType); + nsString::Recycle(qualifiedName); + nsString::Recycle(publicID); + nsString::Recycle(systemID); + + if (NS_FAILED(rv)) { + JavaDOMGlobals::ExceptionType exceptionType = JavaDOMGlobals::EXCEPTION_RUNTIME; + if (NS_ERROR_GET_MODULE(rv) == NS_ERROR_MODULE_DOM && + (rv == NS_ERROR_DOM_INVALID_CHARACTER_ERR || + rv == NS_ERROR_DOM_NAMESPACE_ERR)) { + exceptionType = JavaDOMGlobals::EXCEPTION_DOM; + } + JavaDOMGlobals::ThrowException(env, + "DOMImplementation.createDocumentType: failed", rv, exceptionType); + return NULL; + } + + return JavaDOMGlobals::CreateNodeSubtype(env, (nsIDOMNode*)docType); +} + +/* + * Class: org_mozilla_dom_DOMImplementationImpl + * Method: createDocument + * Signature: (Ljava/lang/String;Ljava/lang/String;Lorg/w3c/dom/DocumentType;)Lorg/w3c/dom/Document; + */ +JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DOMImplementationImpl_createDocument + (JNIEnv *env, jobject jthis, jstring jnamespaceURI, jstring jqualifiedName, jobject jdoctype) +{ + nsIDOMDOMImplementation* dom = (nsIDOMDOMImplementation*) + env->GetLongField(jthis, JavaDOMGlobals::domImplementationPtrFID); + if (!dom || !jnamespaceURI || !jqualifiedName) { + JavaDOMGlobals::ThrowException(env, + "DOMImplementation.createDocument: NULL pointer"); + return NULL; + } + + nsString* namespaceURI = JavaDOMGlobals::GetUnicode(env, jnamespaceURI); + if (!namespaceURI) + return NULL; + + nsString* qualifiedName = JavaDOMGlobals::GetUnicode(env, jqualifiedName); + if (!qualifiedName) { + nsString::Recycle(namespaceURI); + return NULL; + } + + nsIDOMDocumentType* docType = nsnull; + if (jdoctype) { + docType = (nsIDOMDocumentType*) + env->GetLongField(jdoctype, JavaDOMGlobals::nodeListPtrFID); + if (!docType) { + JavaDOMGlobals::ThrowException(env, + "DOMImplementation.createDocument: NULL arg pointer"); + return NULL; + } + } + + nsIDOMDocument* doc = nsnull; + nsresult rv = dom->CreateDocument(*namespaceURI, *qualifiedName, docType, &doc); + nsString::Recycle(namespaceURI); + nsString::Recycle(qualifiedName); + + if (NS_FAILED(rv)) { + JavaDOMGlobals::ExceptionType exceptionType = JavaDOMGlobals::EXCEPTION_RUNTIME; + if (NS_ERROR_GET_MODULE(rv) == NS_ERROR_MODULE_DOM && + (rv == NS_ERROR_DOM_INVALID_CHARACTER_ERR || + rv == NS_ERROR_DOM_NAMESPACE_ERR || + rv == NS_ERROR_DOM_WRONG_DOCUMENT_ERR)) { + exceptionType = JavaDOMGlobals::EXCEPTION_DOM; + } + JavaDOMGlobals::ThrowException(env, + "DOMImplementation.createDocument: failed", rv, exceptionType); + return NULL; + } + + return JavaDOMGlobals::CreateNodeSubtype(env, (nsIDOMNode*)doc); +} diff --git a/mozilla/java/dom/jni/org_mozilla_dom_DOMImplementationImpl.h b/mozilla/java/dom/jni/org_mozilla_dom_DOMImplementationImpl.h index 35ac84f313e..e4f69bbbb3d 100644 --- a/mozilla/java/dom/jni/org_mozilla_dom_DOMImplementationImpl.h +++ b/mozilla/java/dom/jni/org_mozilla_dom_DOMImplementationImpl.h @@ -39,6 +39,22 @@ JNIEXPORT jboolean JNICALL Java_org_mozilla_dom_DOMImplementationImpl_XPCOM_1equ JNIEXPORT jint JNICALL Java_org_mozilla_dom_DOMImplementationImpl_XPCOM_1hashCode (JNIEnv *, jobject); +/* + * Class: org_mozilla_dom_DOMImplementationImpl + * Method: createDocumentType + * Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/DocumentType; + */ +JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DOMImplementationImpl_createDocumentType + (JNIEnv *, jobject, jstring, jstring, jstring); + +/* + * Class: org_mozilla_dom_DOMImplementationImpl + * Method: createDocument + * Signature: (Ljava/lang/String;Ljava/lang/String;Lorg/w3c/dom/DocumentType;)Lorg/w3c/dom/Document; + */ +JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DOMImplementationImpl_createDocument + (JNIEnv *, jobject, jstring, jstring, jobject); + #ifdef __cplusplus } #endif diff --git a/mozilla/java/dom/jni/org_mozilla_dom_DocumentImpl.cpp b/mozilla/java/dom/jni/org_mozilla_dom_DocumentImpl.cpp index 00003dca654..5bcc54524b3 100644 --- a/mozilla/java/dom/jni/org_mozilla_dom_DocumentImpl.cpp +++ b/mozilla/java/dom/jni/org_mozilla_dom_DocumentImpl.cpp @@ -31,10 +31,19 @@ #include "nsIDOMEntityReference.h" #include "nsIDOMDOMImplementation.h" #include "nsIDOMProcessingInstruction.h" +#include "nsIDOMDocumentEvent.h" #include "nsDOMError.h" #include "javaDOMGlobals.h" +#include "javaDOMEventsGlobals.h" #include "org_mozilla_dom_DocumentImpl.h" +static NS_DEFINE_IID(kIDOMDocumentEventIID, NS_IDOMDOCUMENTEVENT_IID); + +// undefine macros from WINBASE.H +#ifdef CreateEvent +#undef CreateEvent +#endif + /* * Class: org_mozilla_dom_DocumentImpl * Method: createAttribute @@ -618,3 +627,118 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentImpl_getImplementation impl->AddRef(); return jret; } + +/* + * Class: org_mozilla_dom_DocumentImpl + * Method: createEvent + * Signature: (Ljava/lang/String;)Lorg/w3c/dom/events/Event; + */ +JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentImpl_createEvent + (JNIEnv *env, jobject jthis, jstring jtype) +{ + nsISupports *doc = (nsISupports*) + env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID); + if (!doc || !jtype) { + JavaDOMGlobals::ThrowException(env, + "Document.createEvent: NULL pointer"); + return NULL; + } + + nsString* type = JavaDOMGlobals::GetUnicode(env, jtype); + if (!type) + return NULL; + + nsIDOMDocumentEvent* docEvent = nsnull; + doc->QueryInterface(kIDOMDocumentEventIID, (void **) &docEvent); + if(!docEvent) { + JavaDOMGlobals::ThrowException(env, + "Document.createEvent: NULL DOMDocumentEvent pointer"); + return NULL; + } + + nsIDOMEvent* event = nsnull; + nsresult rv = docEvent->CreateEvent(*type, &event); + nsString::Recycle(type); + + if (NS_FAILED(rv) || !event) { + JavaDOMGlobals::ThrowException(env, + "Document.createEvent: failed", rv); + return NULL; + } + + return JavaDOMEventsGlobals::CreateEventSubtype(env, event); +} + +/* + * Class: org_mozilla_dom_DocumentImpl + * Method: getElementsByTagNameNS + * Signature: (Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/NodeList; + */ +JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentImpl_getElementsByTagNameNS + (JNIEnv *env, jobject jthis, jstring jnamespaceURI, jstring jlocalName) +{ + nsIDOMDocument* doc = (nsIDOMDocument*) + env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID); + if (!doc || !jnamespaceURI || !jlocalName) { + JavaDOMGlobals::ThrowException(env, + "Document.getElementsByTagNameNS: NULL pointer"); + return NULL; + } + + nsString* namespaceURI = JavaDOMGlobals::GetUnicode(env, jnamespaceURI); + if (!namespaceURI) + return NULL; + + nsString* localName = JavaDOMGlobals::GetUnicode(env, jlocalName); + if (!localName) { + nsString::Recycle(namespaceURI); + return NULL; + } + + nsIDOMNodeList* elements = nsnull; + + nsresult rv = doc->GetElementsByTagNameNS(*namespaceURI, *localName, &elements); + nsString::Recycle(namespaceURI); + nsString::Recycle(localName); + + if (NS_FAILED(rv) || !elements) { + JavaDOMGlobals::ThrowException(env, + "Document.getElementsByTagNameNS: failed", rv); + return NULL; + } + + return JavaDOMGlobals::CreateNodeSubtype(env, (nsIDOMNode*)elements); +} + +/* + * Class: org_mozilla_dom_DocumentImpl + * Method: getElementById + * Signature: (Ljava/lang/String;)Lorg/w3c/dom/Element; + */ +JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentImpl_getElementById + (JNIEnv *env, jobject jthis, jstring jelementId) +{ + nsIDOMDocument* doc = (nsIDOMDocument*) + env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID); + if (!doc || !jelementId) { + JavaDOMGlobals::ThrowException(env, + "Document.getElementById: NULL pointer"); + return NULL; + } + + nsString* elementId = JavaDOMGlobals::GetUnicode(env, jelementId); + if (!elementId) + return NULL; + + nsIDOMElement* element = nsnull; + nsresult rv = doc->GetElementById(*elementId, &element); + nsString::Recycle(elementId); + + if (NS_FAILED(rv) || !element) { + JavaDOMGlobals::ThrowException(env, + "Document.getElementById: failed", rv); + return NULL; + } + + return JavaDOMGlobals::CreateNodeSubtype(env, (nsIDOMNode*)element); +} diff --git a/mozilla/java/dom/jni/org_mozilla_dom_DocumentImpl.h b/mozilla/java/dom/jni/org_mozilla_dom_DocumentImpl.h index c623fcb417a..f67c38f3579 100644 --- a/mozilla/java/dom/jni/org_mozilla_dom_DocumentImpl.h +++ b/mozilla/java/dom/jni/org_mozilla_dom_DocumentImpl.h @@ -104,6 +104,30 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentImpl_getElementsByTagName JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentImpl_getImplementation (JNIEnv *, jobject); +/* + * Class: org_mozilla_dom_DocumentImpl + * Method: createEvent + * Signature: (Ljava/lang/String;)Lorg/w3c/dom/events/Event; + */ +JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentImpl_createEvent + (JNIEnv *, jobject, jstring); + +/* + * Class: org_mozilla_dom_DocumentImpl + * Method: getElementsByTagNameNS + * Signature: (Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/NodeList; + */ +JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentImpl_getElementsByTagNameNS + (JNIEnv *, jobject, jstring, jstring); + +/* + * Class: org_mozilla_dom_DocumentImpl + * Method: getElementById + * Signature: (Ljava/lang/String;)Lorg/w3c/dom/Element; + */ +JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentImpl_getElementById + (JNIEnv *, jobject, jstring); + #ifdef __cplusplus } #endif diff --git a/mozilla/java/dom/jni/org_mozilla_dom_DocumentTypeImpl.cpp b/mozilla/java/dom/jni/org_mozilla_dom_DocumentTypeImpl.cpp index f87adce7749..66af24915c2 100644 --- a/mozilla/java/dom/jni/org_mozilla_dom_DocumentTypeImpl.cpp +++ b/mozilla/java/dom/jni/org_mozilla_dom_DocumentTypeImpl.cpp @@ -143,3 +143,101 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentTypeImpl_getNotations return jret; } +/* + * Class: org_mozilla_dom_DocumentTypeImpl + * Method: getPublicId + * Signature: ()Ljava/lang/String; + */ +JNIEXPORT jstring JNICALL Java_org_mozilla_dom_DocumentTypeImpl_getPublicId + (JNIEnv *env, jobject jthis) +{ + nsIDOMDocumentType* docType = (nsIDOMDocumentType*) + env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID); + if (!docType) { + PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING, + ("DocumentType.getPublicId: NULL pointer\n")); + return NULL; + } + + nsString ret; + nsresult rv = docType->GetPublicId(ret); + if (NS_FAILED(rv)) { + PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR, + ("DocumentType.getPublicId: failed (%x)\n", rv)); + return NULL; + } + + jstring jret = env->NewString(ret.GetUnicode(), ret.Length()); + if (!jret) { + PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR, + ("DocumentType.getPublicId: NewString failed\n")); + } + + return jret; +} + +/* + * Class: org_mozilla_dom_DocumentTypeImpl + * Method: getSystemId + * Signature: ()Ljava/lang/String; + */ +JNIEXPORT jstring JNICALL Java_org_mozilla_dom_DocumentTypeImpl_getSystemId + (JNIEnv *env, jobject jthis) +{ + nsIDOMDocumentType* docType = (nsIDOMDocumentType*) + env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID); + if (!docType) { + PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING, + ("DocumentType.getSystemId: NULL pointer\n")); + return NULL; + } + + nsString ret; + nsresult rv = docType->GetSystemId(ret); + if (NS_FAILED(rv)) { + PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR, + ("DocumentType.getSystemId: failed (%x)\n", rv)); + return NULL; + } + + jstring jret = env->NewString(ret.GetUnicode(), ret.Length()); + if (!jret) { + PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR, + ("DocumentType.getSystemId: NewString failed\n")); + } + + return jret; +} + +/* + * Class: org_mozilla_dom_DocumentTypeImpl + * Method: getInternalSubset + * Signature: ()Ljava/lang/String; + */ +JNIEXPORT jstring JNICALL Java_org_mozilla_dom_DocumentTypeImpl_getInternalSubset + (JNIEnv *env, jobject jthis) +{ + nsIDOMDocumentType* docType = (nsIDOMDocumentType*) + env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID); + if (!docType) { + PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING, + ("DocumentType.getInternalSubset: NULL pointer\n")); + return NULL; + } + + nsString ret; + nsresult rv = docType->GetInternalSubset(ret); + if (NS_FAILED(rv)) { + PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR, + ("DocumentType.getInternalSubset: failed (%x)\n", rv)); + return NULL; + } + + jstring jret = env->NewString(ret.GetUnicode(), ret.Length()); + if (!jret) { + PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR, + ("DocumentType.getInternalSubset: NewString failed\n")); + } + + return jret; +} diff --git a/mozilla/java/dom/jni/org_mozilla_dom_DocumentTypeImpl.h b/mozilla/java/dom/jni/org_mozilla_dom_DocumentTypeImpl.h index 7eee70e8ea2..f87925aedd3 100644 --- a/mozilla/java/dom/jni/org_mozilla_dom_DocumentTypeImpl.h +++ b/mozilla/java/dom/jni/org_mozilla_dom_DocumentTypeImpl.h @@ -1,7 +1,20 @@ -#include "nsIDOMDocumentType.h" -#include "javaDOMGlobals.h" -#include "org_mozilla_dom_DocumentTypeImpl.h" +/* DO NOT EDIT THIS FILE - it is machine generated */ +#include +/* Header for class org_mozilla_dom_DocumentTypeImpl */ +#ifndef _Included_org_mozilla_dom_DocumentTypeImpl +#define _Included_org_mozilla_dom_DocumentTypeImpl +#ifdef __cplusplus +extern "C" { +#endif +/* Inaccessible static: javaDOMlisteners */ +/* + * Class: org_mozilla_dom_DocumentTypeImpl + * Method: getName + * Signature: ()Ljava/lang/String; + */ +JNIEXPORT jstring JNICALL Java_org_mozilla_dom_DocumentTypeImpl_getName + (JNIEnv *, jobject); /* * Class: org_mozilla_dom_DocumentTypeImpl @@ -9,21 +22,7 @@ * Signature: ()Lorg/w3c/dom/NamedNodeMap; */ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentTypeImpl_getEntities - (JNIEnv *, jobject) -{ - return NULL; -} - -/* - * Class: org_mozilla_dom_DocumentTypeImpl - * Method: getName - * Signature: ()Ljava/lang/String; - */ -JNIEXPORT jstring JNICALL Java_org_mozilla_dom_DocumentTypeImpl_getName - (JNIEnv *, jobject) -{ - return NULL; -} + (JNIEnv *, jobject); /* * Class: org_mozilla_dom_DocumentTypeImpl @@ -31,7 +30,33 @@ JNIEXPORT jstring JNICALL Java_org_mozilla_dom_DocumentTypeImpl_getName * Signature: ()Lorg/w3c/dom/NamedNodeMap; */ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentTypeImpl_getNotations - (JNIEnv *, jobject) -{ - return NULL; + (JNIEnv *, jobject); + +/* + * Class: org_mozilla_dom_DocumentTypeImpl + * Method: getPublicId + * Signature: ()Ljava/lang/String; + */ +JNIEXPORT jstring JNICALL Java_org_mozilla_dom_DocumentTypeImpl_getPublicId + (JNIEnv *, jobject); + +/* + * Class: org_mozilla_dom_DocumentTypeImpl + * Method: getSystemId + * Signature: ()Ljava/lang/String; + */ +JNIEXPORT jstring JNICALL Java_org_mozilla_dom_DocumentTypeImpl_getSystemId + (JNIEnv *, jobject); + +/* + * Class: org_mozilla_dom_DocumentTypeImpl + * Method: getInternalSubset + * Signature: ()Ljava/lang/String; + */ +JNIEXPORT jstring JNICALL Java_org_mozilla_dom_DocumentTypeImpl_getInternalSubset + (JNIEnv *, jobject); + +#ifdef __cplusplus } +#endif +#endif diff --git a/mozilla/java/dom/jni/org_mozilla_dom_ElementImpl.cpp b/mozilla/java/dom/jni/org_mozilla_dom_ElementImpl.cpp index 118f9dada8f..d3df8383637 100644 --- a/mozilla/java/dom/jni/org_mozilla_dom_ElementImpl.cpp +++ b/mozilla/java/dom/jni/org_mozilla_dom_ElementImpl.cpp @@ -416,3 +416,339 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_ElementImpl_setAttributeNode return jattr; } +/* + * Class: org_mozilla_dom_ElementImpl + * Method: getAttributeNS + * Signature: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + */ +JNIEXPORT jstring JNICALL Java_org_mozilla_dom_ElementImpl_getAttributeNS + (JNIEnv *env, jobject jthis, jstring jnamespaceURI, jstring jlocalName) +{ + nsIDOMElement* element = (nsIDOMElement*) + env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID); + if (!element || !jnamespaceURI || !jlocalName) { + JavaDOMGlobals::ThrowException(env, + "Element.getAttributeNS: NULL pointer"); + return NULL; + } + + nsString* namespaceURI = JavaDOMGlobals::GetUnicode(env, jnamespaceURI); + if (!namespaceURI) + return NULL; + + nsString* localName = JavaDOMGlobals::GetUnicode(env, jlocalName); + if (!localName) { + nsString::Recycle(namespaceURI); + return NULL; + } + + nsString ret; + nsresult rv = element->GetAttributeNS(*namespaceURI, *localName, ret); + nsString::Recycle(namespaceURI); + nsString::Recycle(localName); + + if (NS_FAILED(rv)) { + JavaDOMGlobals::ThrowException(env, + "Element.getAttributeNS: failed"); + return NULL; + } + + jstring jret = env->NewString(ret.GetUnicode(), ret.Length()); + if (!jret) { + PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR, + ("Element.getAttributeNS: NewString failed\n")); + } + + return jret; +} + +/* + * Class: org_mozilla_dom_ElementImpl + * Method: setAttributeNS + * Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + */ +JNIEXPORT void JNICALL Java_org_mozilla_dom_ElementImpl_setAttributeNS + (JNIEnv *env, jobject jthis, jstring jnamespaceURI, jstring jqualifiedName, jstring jvalue) +{ + nsIDOMElement* element = (nsIDOMElement*) + env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID); + if (!element || !jnamespaceURI || !jqualifiedName || !jvalue) { + JavaDOMGlobals::ThrowException(env, + "Element.setAttributeNS: NULL pointer"); + return; + } + + nsString* namespaceURI = JavaDOMGlobals::GetUnicode(env, jnamespaceURI); + if (!namespaceURI) + return; + + nsString* qualifiedName = JavaDOMGlobals::GetUnicode(env, jqualifiedName); + if (!qualifiedName) { + nsString::Recycle(namespaceURI); + return; + } + + nsString* value = JavaDOMGlobals::GetUnicode(env, jvalue); + if (!value) { + nsString::Recycle(namespaceURI); + nsString::Recycle(qualifiedName); + return; + } + + nsresult rv = element->SetAttributeNS(*namespaceURI, *qualifiedName, *value); + nsString::Recycle(namespaceURI); + nsString::Recycle(qualifiedName); + nsString::Recycle(value); + + if (NS_FAILED(rv)) { + JavaDOMGlobals::ExceptionType exceptionType = JavaDOMGlobals::EXCEPTION_RUNTIME; + if (NS_ERROR_GET_MODULE(rv) == NS_ERROR_MODULE_DOM && + (rv == NS_ERROR_DOM_INVALID_CHARACTER_ERR || + rv == NS_ERROR_DOM_NAMESPACE_ERR || + rv == NS_ERROR_DOM_WRONG_DOCUMENT_ERR)) { + exceptionType = JavaDOMGlobals::EXCEPTION_DOM; + } + JavaDOMGlobals::ThrowException(env, + "ElementImpl.setAttributeNS: failed", rv, exceptionType); + } +} + +/* + * Class: org_mozilla_dom_ElementImpl + * Method: removeAttributeNS + * Signature: (Ljava/lang/String;Ljava/lang/String;)V + */ +JNIEXPORT void JNICALL Java_org_mozilla_dom_ElementImpl_removeAttributeNS + (JNIEnv *env, jobject jthis, jstring jnamespaceURI, jstring jlocalName) +{ + nsIDOMElement* element = (nsIDOMElement*) + env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID); + if (!element || !jnamespaceURI || !jlocalName) { + JavaDOMGlobals::ThrowException(env, + "Element.removeAttributeNS: NULL pointer"); + } + + nsString* namespaceURI = JavaDOMGlobals::GetUnicode(env, jnamespaceURI); + if (!namespaceURI) + return; + + nsString* localName = JavaDOMGlobals::GetUnicode(env, jlocalName); + if (!localName) { + nsString::Recycle(namespaceURI); + return; + } + + nsresult rv = element->RemoveAttributeNS(*namespaceURI, *localName); + nsString::Recycle(namespaceURI); + nsString::Recycle(localName); + + if (NS_FAILED(rv)) { + JavaDOMGlobals::ExceptionType exceptionType = JavaDOMGlobals::EXCEPTION_RUNTIME; + if (rv == NS_ERROR_DOM_NO_MODIFICATION_ALLOWED_ERR) { + exceptionType = JavaDOMGlobals::EXCEPTION_DOM; + } + JavaDOMGlobals::ThrowException(env, + "Element.removeAttributeNS: failed", rv, exceptionType); + } +} + +/* + * Class: org_mozilla_dom_ElementImpl + * Method: getAttributeNodeNS + * Signature: (Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/Attr; + */ +JNIEXPORT jobject JNICALL Java_org_mozilla_dom_ElementImpl_getAttributeNodeNS + (JNIEnv *env, jobject jthis, jstring jnamespaceURI, jstring jlocalName) +{ + nsIDOMElement* element = (nsIDOMElement*) + env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID); + if (!element || !jnamespaceURI || !jlocalName) { + JavaDOMGlobals::ThrowException(env, + "Element.getAttributeNodeNS: NULL pointer"); + return NULL; + } + + nsString* namespaceURI = JavaDOMGlobals::GetUnicode(env, jnamespaceURI); + if (!namespaceURI) + return NULL; + + nsString* localName = JavaDOMGlobals::GetUnicode(env, jlocalName); + if (!localName) { + nsString::Recycle(namespaceURI); + return NULL; + } + + nsIDOMAttr* attr = nsnull; + nsresult rv = element->GetAttributeNodeNS(*namespaceURI, *localName, &attr); + nsString::Recycle(namespaceURI); + nsString::Recycle(localName); + + if (NS_FAILED(rv)) { + JavaDOMGlobals::ThrowException(env, + "Element.getAttributeNodeNS: failed", rv); + return NULL; + } + if (!attr) + return NULL; + + return JavaDOMGlobals::CreateNodeSubtype(env, (nsIDOMNode*)attr); +} + + +/* + * Class: org_mozilla_dom_ElementImpl + * Method: setAttributeNodeNS + * Signature: (Lorg/w3c/dom/Attr;)Lorg/w3c/dom/Attr; + */ +JNIEXPORT jobject JNICALL Java_org_mozilla_dom_ElementImpl_setAttributeNodeNS + (JNIEnv *env, jobject jthis, jobject jnewAttr) +{ + nsIDOMElement* element = (nsIDOMElement*) + env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID); + if (!element || !jnewAttr) { + JavaDOMGlobals::ThrowException(env, + "Element.setAttributeNodeNS: NULL pointer"); + return NULL; + } + + nsIDOMAttr* newAttr = (nsIDOMAttr*) + env->GetLongField(jnewAttr, JavaDOMGlobals::nodePtrFID); + if (!newAttr) { + JavaDOMGlobals::ThrowException(env, + "Element.setAttributeNodeNS: NULL arg pointer"); + return NULL; + } + + nsIDOMAttr* ret = nsnull; + nsresult rv = element->SetAttributeNodeNS(newAttr, &ret); + if (NS_FAILED(rv)) { + JavaDOMGlobals::ExceptionType exceptionType = JavaDOMGlobals::EXCEPTION_RUNTIME; + if (NS_ERROR_GET_MODULE(rv) == NS_ERROR_MODULE_DOM && + (rv == NS_ERROR_DOM_NO_MODIFICATION_ALLOWED_ERR || + rv == NS_ERROR_DOM_WRONG_DOCUMENT_ERR || + rv == NS_ERROR_DOM_INUSE_ATTRIBUTE_ERR)) { + exceptionType = JavaDOMGlobals::EXCEPTION_DOM; + } + JavaDOMGlobals::ThrowException(env, + "Element.setAttributeNodeNS: failed", rv, exceptionType); + return NULL; + } + if (!ret) + return NULL; + + return JavaDOMGlobals::CreateNodeSubtype(env, (nsIDOMNode*)ret); +} + +/* + * Class: org_mozilla_dom_ElementImpl + * Method: getElementsByTagNameNS + * Signature: (Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/NodeList; + */ +JNIEXPORT jobject JNICALL Java_org_mozilla_dom_ElementImpl_getElementsByTagNameNS + (JNIEnv *env, jobject jthis, jstring jnamespaceURI, jstring jlocalName) +{ + nsIDOMElement* element = (nsIDOMElement*) + env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID); + if (!element || !jnamespaceURI || !jlocalName) { + JavaDOMGlobals::ThrowException(env, + "Element.getElementsByTagNameNS: NULL pointer"); + return NULL; + } + + nsString* namespaceURI = JavaDOMGlobals::GetUnicode(env, jnamespaceURI); + if (!namespaceURI) + return NULL; + + nsString* localName = JavaDOMGlobals::GetUnicode(env, jlocalName); + if (!localName) { + nsString::Recycle(namespaceURI); + return NULL; + } + + nsIDOMNodeList* nodes = nsnull; + nsresult rv = element->GetElementsByTagNameNS(*namespaceURI, *localName, &nodes); + nsString::Recycle(namespaceURI); + nsString::Recycle(localName); + + if (NS_FAILED(rv) || !nodes) { + JavaDOMGlobals::ThrowException(env, + "Element.getElementsByTagNameNS: failed", rv); + return NULL; + } + + return JavaDOMGlobals::CreateNodeSubtype(env, (nsIDOMNode*)nodes); +} + +/* + * Class: org_mozilla_dom_ElementImpl + * Method: hasAttribute + * Signature: (Ljava/lang/String;)Z + */ +JNIEXPORT jboolean JNICALL Java_org_mozilla_dom_ElementImpl_hasAttribute + (JNIEnv *env, jobject jthis, jstring jname) +{ + nsIDOMElement* element = (nsIDOMElement*) + env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID); + if (!element || !jname) { + JavaDOMGlobals::ThrowException(env, + "Element.hasAttribute: NULL pointer"); + return JNI_FALSE; + } + + nsString* name = JavaDOMGlobals::GetUnicode(env, jname); + if (!name) + return JNI_FALSE; + + PRBool hasAttr = PR_FALSE; + nsresult rv = element->HasAttribute(*name, &hasAttr); + nsString::Recycle(name); + + if (NS_FAILED(rv)) { + JavaDOMGlobals::ThrowException(env, + "Element.hasAttribute: failed", rv); + return JNI_FALSE; + } + + return (hasAttr == PR_TRUE) ? JNI_TRUE : JNI_FALSE; +} + + +/* + * Class: org_mozilla_dom_ElementImpl + * Method: hasAttributeNS + * Signature: (Ljava/lang/String;Ljava/lang/String;)Z + */ +JNIEXPORT jboolean JNICALL Java_org_mozilla_dom_ElementImpl_hasAttributeNS + (JNIEnv *env, jobject jthis, jstring jnamespaceURI, jstring jlocalName) +{ + nsIDOMElement* element = (nsIDOMElement*) + env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID); + if (!element || !jnamespaceURI || !jlocalName) { + JavaDOMGlobals::ThrowException(env, + "Element.hasAttributeNS: NULL pointer"); + return JNI_FALSE; + } + + nsString* namespaceURI = JavaDOMGlobals::GetUnicode(env, jnamespaceURI); + if (!namespaceURI) + return JNI_FALSE; + + nsString* localName = JavaDOMGlobals::GetUnicode(env, jlocalName); + if (!localName) { + nsString::Recycle(namespaceURI); + return JNI_FALSE; + } + + PRBool hasAttr = PR_FALSE; + nsresult rv = element->HasAttributeNS(*namespaceURI, *localName, &hasAttr); + nsString::Recycle(namespaceURI); + nsString::Recycle(localName); + + if (NS_FAILED(rv)) { + JavaDOMGlobals::ThrowException(env, + "Element.hasAttributeNS: failed", rv); + return JNI_FALSE; + } + + return (hasAttr == PR_TRUE) ? JNI_TRUE : JNI_FALSE; +} diff --git a/mozilla/java/dom/jni/org_mozilla_dom_ElementImpl.h b/mozilla/java/dom/jni/org_mozilla_dom_ElementImpl.h index 2e37a847e50..c2524b575ee 100644 --- a/mozilla/java/dom/jni/org_mozilla_dom_ElementImpl.h +++ b/mozilla/java/dom/jni/org_mozilla_dom_ElementImpl.h @@ -7,7 +7,7 @@ #ifdef __cplusplus extern "C" { #endif - +/* Inaccessible static: javaDOMlisteners */ /* * Class: org_mozilla_dom_ElementImpl * Method: getAttribute @@ -80,6 +80,70 @@ JNIEXPORT void JNICALL Java_org_mozilla_dom_ElementImpl_setAttribute JNIEXPORT jobject JNICALL Java_org_mozilla_dom_ElementImpl_setAttributeNode (JNIEnv *, jobject, jobject); +/* + * Class: org_mozilla_dom_ElementImpl + * Method: getAttributeNS + * Signature: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + */ +JNIEXPORT jstring JNICALL Java_org_mozilla_dom_ElementImpl_getAttributeNS + (JNIEnv *, jobject, jstring, jstring); + +/* + * Class: org_mozilla_dom_ElementImpl + * Method: setAttributeNS + * Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + */ +JNIEXPORT void JNICALL Java_org_mozilla_dom_ElementImpl_setAttributeNS + (JNIEnv *, jobject, jstring, jstring, jstring); + +/* + * Class: org_mozilla_dom_ElementImpl + * Method: removeAttributeNS + * Signature: (Ljava/lang/String;Ljava/lang/String;)V + */ +JNIEXPORT void JNICALL Java_org_mozilla_dom_ElementImpl_removeAttributeNS + (JNIEnv *, jobject, jstring, jstring); + +/* + * Class: org_mozilla_dom_ElementImpl + * Method: getAttributeNodeNS + * Signature: (Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/Attr; + */ +JNIEXPORT jobject JNICALL Java_org_mozilla_dom_ElementImpl_getAttributeNodeNS + (JNIEnv *, jobject, jstring, jstring); + +/* + * Class: org_mozilla_dom_ElementImpl + * Method: setAttributeNodeNS + * Signature: (Lorg/w3c/dom/Attr;)Lorg/w3c/dom/Attr; + */ +JNIEXPORT jobject JNICALL Java_org_mozilla_dom_ElementImpl_setAttributeNodeNS + (JNIEnv *, jobject, jobject); + +/* + * Class: org_mozilla_dom_ElementImpl + * Method: getElementsByTagNameNS + * Signature: (Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/NodeList; + */ +JNIEXPORT jobject JNICALL Java_org_mozilla_dom_ElementImpl_getElementsByTagNameNS + (JNIEnv *, jobject, jstring, jstring); + +/* + * Class: org_mozilla_dom_ElementImpl + * Method: hasAttribute + * Signature: (Ljava/lang/String;)Z + */ +JNIEXPORT jboolean JNICALL Java_org_mozilla_dom_ElementImpl_hasAttribute + (JNIEnv *, jobject, jstring); + +/* + * Class: org_mozilla_dom_ElementImpl + * Method: hasAttributeNS + * Signature: (Ljava/lang/String;Ljava/lang/String;)Z + */ +JNIEXPORT jboolean JNICALL Java_org_mozilla_dom_ElementImpl_hasAttributeNS + (JNIEnv *, jobject, jstring, jstring); + #ifdef __cplusplus } #endif diff --git a/mozilla/java/dom/jni/org_mozilla_dom_NodeImpl.cpp b/mozilla/java/dom/jni/org_mozilla_dom_NodeImpl.cpp index 021e1824dbd..55002f1d57d 100644 --- a/mozilla/java/dom/jni/org_mozilla_dom_NodeImpl.cpp +++ b/mozilla/java/dom/jni/org_mozilla_dom_NodeImpl.cpp @@ -836,8 +836,6 @@ JNIEXPORT void JNICALL Java_org_mozilla_dom_NodeImpl_setNodeValue } JavaDOMGlobals::ThrowException(env, "Node.setNodeValue: failed", rv, exceptionType); - - return; } } @@ -934,3 +932,184 @@ JNIEXPORT void JNICALL Java_org_mozilla_dom_NodeImpl_removeNativeEventListener } } +/* + * Class: org_mozilla_dom_NodeImpl + * Method: supports + * Signature: (Ljava/lang/String;Ljava/lang/String;)Z + */ +JNIEXPORT jboolean JNICALL Java_org_mozilla_dom_NodeImpl_supports + (JNIEnv *env, jobject jthis, jstring jfeature, jstring jversion) +{ + nsIDOMNode* node = (nsIDOMNode*) + env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID); + if (!node || !jfeature) { + JavaDOMGlobals::ThrowException(env, + "Node.supports: NULL pointer"); + return JNI_FALSE; + } + + nsString* feature = JavaDOMGlobals::GetUnicode(env, jfeature); + if (!feature) + return JNI_FALSE; + + nsString* version; + if (jversion) { + version = JavaDOMGlobals::GetUnicode(env, jversion); + if (!version) { + nsString::Recycle(feature); + return JNI_FALSE; + } + } else { + version = new nsString(); + } + + PRBool ret = PR_FALSE; + nsresult rv = node->Supports(*feature, *version, &ret); + nsString::Recycle(feature); + nsString::Recycle(version); + + if (NS_FAILED(rv)) { + PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR, + ("Node.supports: failed (%x)\n", rv)); + } + + return ret == PR_TRUE ? JNI_TRUE : JNI_FALSE; +} + +/* + * Class: org_mozilla_dom_NodeImpl + * Method: getNamespaceURI + * Signature: ()Ljava/lang/String; + */ +JNIEXPORT jstring JNICALL Java_org_mozilla_dom_NodeImpl_getNamespaceURI + (JNIEnv *env, jobject jthis) +{ + nsIDOMNode* node = (nsIDOMNode*) + env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID); + if (!node) { + JavaDOMGlobals::ThrowException(env, + "Node.getNamespaceURI: NULL pointer"); + return NULL; + } + + nsString ret; + nsresult rv = node->GetNamespaceURI(ret); + + if (NS_FAILED(rv)) { + JavaDOMGlobals::ThrowException(env, + "Node.getNamespaceURI: failed"); + return NULL; + } + + jstring jret = env->NewString(ret.GetUnicode(), ret.Length()); + if (!jret) { + PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR, + ("Node.getNamespaceURI: NewString failed\n")); + } + + return jret; +} + +/* + * Class: org_mozilla_dom_NodeImpl + * Method: getPrefix + * Signature: ()Ljava/lang/String; + */ +JNIEXPORT jstring JNICALL Java_org_mozilla_dom_NodeImpl_getPrefix + (JNIEnv *env, jobject jthis) +{ + nsIDOMNode* node = (nsIDOMNode*) + env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID); + if (!node) { + JavaDOMGlobals::ThrowException(env, + "Node.getPrefix: NULL pointer"); + return NULL; + } + + nsString ret; + nsresult rv = node->GetPrefix(ret); + + if (NS_FAILED(rv)) { + JavaDOMGlobals::ThrowException(env, + "Node.getPrefix: failed"); + return NULL; + } + + jstring jret = env->NewString(ret.GetUnicode(), ret.Length()); + if (!jret) { + PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR, + ("Node.getPrefix: NewString failed\n")); + } + + return jret; +} + +/* + * Class: org_mozilla_dom_NodeImpl + * Method: setPrefix + * Signature: (Ljava/lang/String;)V + */ +JNIEXPORT void JNICALL Java_org_mozilla_dom_NodeImpl_setPrefix + (JNIEnv *env, jobject jthis, jstring jprefix) +{ + nsIDOMNode* node = (nsIDOMNode*) + env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID); + if (!node || !jprefix) { + JavaDOMGlobals::ThrowException(env, + "Node.setPrefix: NULL pointer"); + return; + } + + nsString* prefix = JavaDOMGlobals::GetUnicode(env, jprefix); + if (!prefix) + return; + + nsresult rv = node->SetPrefix(*prefix); + nsString::Recycle(prefix); + + if (NS_FAILED(rv)) { + JavaDOMGlobals::ExceptionType exceptionType = JavaDOMGlobals::EXCEPTION_RUNTIME; + if (NS_ERROR_GET_MODULE(rv) == NS_ERROR_MODULE_DOM && + (rv == NS_ERROR_DOM_INVALID_CHARACTER_ERR || + rv == NS_ERROR_DOM_NAMESPACE_ERR || + rv == NS_ERROR_DOM_NO_MODIFICATION_ALLOWED_ERR)) { + exceptionType = JavaDOMGlobals::EXCEPTION_DOM; + } + JavaDOMGlobals::ThrowException(env, + "Node.setPrefix: failed", rv, exceptionType); + } +} + +/* + * Class: org_mozilla_dom_NodeImpl + * Method: getLocalName + * Signature: ()Ljava/lang/String; + */ +JNIEXPORT jstring JNICALL Java_org_mozilla_dom_NodeImpl_getLocalName + (JNIEnv *env, jobject jthis) +{ + nsIDOMNode* node = (nsIDOMNode*) + env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID); + if (!node) { + JavaDOMGlobals::ThrowException(env, + "Node.getLocalName: NULL pointer"); + return NULL; + } + + nsString ret; + nsresult rv = node->GetLocalName(ret); + + if (NS_FAILED(rv)) { + JavaDOMGlobals::ThrowException(env, + "Node.getLocalName: failed"); + return NULL; + } + + jstring jret = env->NewString(ret.GetUnicode(), ret.Length()); + if (!jret) { + PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR, + ("Node.getLocalName: NewString failed\n")); + } + + return jret; +} diff --git a/mozilla/java/dom/jni/org_mozilla_dom_NodeImpl.h b/mozilla/java/dom/jni/org_mozilla_dom_NodeImpl.h index 3a8546379e8..df07d0a7a06 100644 --- a/mozilla/java/dom/jni/org_mozilla_dom_NodeImpl.h +++ b/mozilla/java/dom/jni/org_mozilla_dom_NodeImpl.h @@ -7,30 +7,7 @@ #ifdef __cplusplus extern "C" { #endif -/* - * Class: org_mozilla_dom_NodeImpl - * Method: XPCOM_equals - * Signature: (Ljava/lang/Object;)Z - */ -JNIEXPORT jboolean JNICALL Java_org_mozilla_dom_NodeImpl_XPCOM_1equals - (JNIEnv *, jobject, jobject); - -/* - * Class: org_mozilla_dom_NodeImpl - * Method: XPCOM_hashCode - * Signature: ()I - */ -JNIEXPORT jint JNICALL Java_org_mozilla_dom_NodeImpl_XPCOM_1hashCode - (JNIEnv *, jobject); - -/* - * Class: org_mozilla_dom_NodeImpl - * Method: addNativeEventListener - * Signature: (Ljava/lang/String;Lorg/w3c/dom/events/EventListener;Z)J - */ -JNIEXPORT jlong JNICALL Java_org_mozilla_dom_NodeImpl_addNativeEventListener - (JNIEnv *, jobject, jstring, jobject, jboolean); - +/* Inaccessible static: javaDOMlisteners */ /* * Class: org_mozilla_dom_NodeImpl * Method: appendChild @@ -47,14 +24,6 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_NodeImpl_appendChild JNIEXPORT jobject JNICALL Java_org_mozilla_dom_NodeImpl_cloneNode (JNIEnv *, jobject, jboolean); -/* - * Class: org_mozilla_dom_NodeImpl - * Method: finalize - * Signature: ()V - */ -JNIEXPORT void JNICALL Java_org_mozilla_dom_NodeImpl_finalize - (JNIEnv *, jobject); - /* * Class: org_mozilla_dom_NodeImpl * Method: getAttributes @@ -167,14 +136,6 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_NodeImpl_insertBefore JNIEXPORT jobject JNICALL Java_org_mozilla_dom_NodeImpl_removeChild (JNIEnv *, jobject, jobject); -/* - * Class: org_mozilla_dom_NodeImpl - * Method: removeNativeEventListener - * Signature: (Ljava/lang/String;JZ)V - */ -JNIEXPORT void JNICALL Java_org_mozilla_dom_NodeImpl_removeNativeEventListener - (JNIEnv *, jobject, jstring, jlong, jboolean); - /* * Class: org_mozilla_dom_NodeImpl * Method: replaceChild @@ -191,6 +152,86 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_NodeImpl_replaceChild JNIEXPORT void JNICALL Java_org_mozilla_dom_NodeImpl_setNodeValue (JNIEnv *, jobject, jstring); +/* + * Class: org_mozilla_dom_NodeImpl + * Method: finalize + * Signature: ()V + */ +JNIEXPORT void JNICALL Java_org_mozilla_dom_NodeImpl_finalize + (JNIEnv *, jobject); + +/* + * Class: org_mozilla_dom_NodeImpl + * Method: XPCOM_equals + * Signature: (Ljava/lang/Object;)Z + */ +JNIEXPORT jboolean JNICALL Java_org_mozilla_dom_NodeImpl_XPCOM_1equals + (JNIEnv *, jobject, jobject); + +/* + * Class: org_mozilla_dom_NodeImpl + * Method: XPCOM_hashCode + * Signature: ()I + */ +JNIEXPORT jint JNICALL Java_org_mozilla_dom_NodeImpl_XPCOM_1hashCode + (JNIEnv *, jobject); + +/* + * Class: org_mozilla_dom_NodeImpl + * Method: supports + * Signature: (Ljava/lang/String;Ljava/lang/String;)Z + */ +JNIEXPORT jboolean JNICALL Java_org_mozilla_dom_NodeImpl_supports + (JNIEnv *, jobject, jstring, jstring); + +/* + * Class: org_mozilla_dom_NodeImpl + * Method: getNamespaceURI + * Signature: ()Ljava/lang/String; + */ +JNIEXPORT jstring JNICALL Java_org_mozilla_dom_NodeImpl_getNamespaceURI + (JNIEnv *, jobject); + +/* + * Class: org_mozilla_dom_NodeImpl + * Method: getPrefix + * Signature: ()Ljava/lang/String; + */ +JNIEXPORT jstring JNICALL Java_org_mozilla_dom_NodeImpl_getPrefix + (JNIEnv *, jobject); + +/* + * Class: org_mozilla_dom_NodeImpl + * Method: setPrefix + * Signature: (Ljava/lang/String;)V + */ +JNIEXPORT void JNICALL Java_org_mozilla_dom_NodeImpl_setPrefix + (JNIEnv *, jobject, jstring); + +/* + * Class: org_mozilla_dom_NodeImpl + * Method: getLocalName + * Signature: ()Ljava/lang/String; + */ +JNIEXPORT jstring JNICALL Java_org_mozilla_dom_NodeImpl_getLocalName + (JNIEnv *, jobject); + +/* + * Class: org_mozilla_dom_NodeImpl + * Method: addNativeEventListener + * Signature: (Ljava/lang/String;Lorg/w3c/dom/events/EventListener;Z)J + */ +JNIEXPORT jlong JNICALL Java_org_mozilla_dom_NodeImpl_addNativeEventListener + (JNIEnv *, jobject, jstring, jobject, jboolean); + +/* + * Class: org_mozilla_dom_NodeImpl + * Method: removeNativeEventListener + * Signature: (Ljava/lang/String;JZ)V + */ +JNIEXPORT void JNICALL Java_org_mozilla_dom_NodeImpl_removeNativeEventListener + (JNIEnv *, jobject, jstring, jlong, jboolean); + #ifdef __cplusplus } #endif diff --git a/mozilla/java/dom/jni/org_mozilla_dom_events_EventImpl.cpp b/mozilla/java/dom/jni/org_mozilla_dom_events_EventImpl.cpp index 8a72a51bbb2..81f2e6d3a43 100644 --- a/mozilla/java/dom/jni/org_mozilla_dom_events_EventImpl.cpp +++ b/mozilla/java/dom/jni/org_mozilla_dom_events_EventImpl.cpp @@ -331,3 +331,53 @@ JNIEXPORT void JNICALL Java_org_mozilla_dom_events_EventImpl_initEvent ("Event.initEvent: failed (%x)\n", rv)); } } + +/* + * Class: org_mozilla_dom_events_EventImpl + * Method: stopPropagation + * Signature: ()V + */ +JNIEXPORT void JNICALL Java_org_mozilla_dom_events_EventImpl_stopPropagation + (JNIEnv *env, jobject jthis) +{ + nsIDOMEvent* event = (nsIDOMEvent*) + env->GetLongField(jthis, JavaDOMEventsGlobals::eventPtrFID); + if (!event) { + JavaDOMGlobals::ThrowException(env, + "Event.stopPropagation: NULL pointer"); + return; + } + + nsresult rv = event->StopPropagation(); + if (NS_FAILED(rv)) { + JavaDOMGlobals::ThrowException(env, + "Event.stopPropagation: failed", rv); + } +} + +/* + * Class: org_mozilla_dom_events_EventImpl + * Method: getTimeStamp + * Signature: ()J + */ +JNIEXPORT jlong JNICALL Java_org_mozilla_dom_events_EventImpl_getTimeStamp + (JNIEnv *env, jobject jthis) +{ + nsIDOMEvent* event = (nsIDOMEvent*) + env->GetLongField(jthis, JavaDOMEventsGlobals::eventPtrFID); + if (!event) { + JavaDOMGlobals::ThrowException(env, + "Event.getTimeStamp: NULL pointer"); + return 0; + } + + PRUint64 aTimeStamp; + nsresult rv = event->GetTimeStamp(&aTimeStamp); + if (NS_FAILED(rv)) { + JavaDOMGlobals::ThrowException(env, + "Event.getTimeStamp: failed", rv); + return 0; + } + + return (jlong)aTimeStamp; +} diff --git a/mozilla/java/dom/jni/org_mozilla_dom_events_EventImpl.h b/mozilla/java/dom/jni/org_mozilla_dom_events_EventImpl.h index e5d56503241..972e1625ac1 100644 --- a/mozilla/java/dom/jni/org_mozilla_dom_events_EventImpl.h +++ b/mozilla/java/dom/jni/org_mozilla_dom_events_EventImpl.h @@ -25,10 +25,10 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_events_EventImpl_getTarget /* * Class: org_mozilla_dom_events_EventImpl - * Method: getCurrentNode - * Signature: ()Lorg/w3c/dom/Node; + * Method: getCurrentTarget + * Signature: ()Lorg/w3c/dom/events/EventTarget; */ -JNIEXPORT jobject JNICALL Java_org_mozilla_dom_events_EventImpl_getCurrentNode +JNIEXPORT jobject JNICALL Java_org_mozilla_dom_events_EventImpl_getCurrentTarget (JNIEnv *, jobject); /* @@ -79,6 +79,14 @@ JNIEXPORT void JNICALL Java_org_mozilla_dom_events_EventImpl_preventCapture JNIEXPORT void JNICALL Java_org_mozilla_dom_events_EventImpl_preventDefault (JNIEnv *, jobject); +/* + * Class: org_mozilla_dom_events_EventImpl + * Method: stopPropagation + * Signature: ()V + */ +JNIEXPORT void JNICALL Java_org_mozilla_dom_events_EventImpl_stopPropagation + (JNIEnv *, jobject); + /* * Class: org_mozilla_dom_events_EventImpl * Method: initEvent @@ -87,6 +95,14 @@ JNIEXPORT void JNICALL Java_org_mozilla_dom_events_EventImpl_preventDefault JNIEXPORT void JNICALL Java_org_mozilla_dom_events_EventImpl_initEvent (JNIEnv *, jobject, jstring, jboolean, jboolean); +/* + * Class: org_mozilla_dom_events_EventImpl + * Method: getTimeStamp + * Signature: ()J + */ +JNIEXPORT jlong JNICALL Java_org_mozilla_dom_events_EventImpl_getTimeStamp + (JNIEnv *, jobject); + #ifdef __cplusplus } #endif diff --git a/mozilla/java/dom/jni/org_mozilla_dom_events_MouseEventImpl.h b/mozilla/java/dom/jni/org_mozilla_dom_events_MouseEventImpl.h index cb8fa78c169..0ad6b4618fa 100644 --- a/mozilla/java/dom/jni/org_mozilla_dom_events_MouseEventImpl.h +++ b/mozilla/java/dom/jni/org_mozilla_dom_events_MouseEventImpl.h @@ -81,16 +81,16 @@ JNIEXPORT jshort JNICALL Java_org_mozilla_dom_events_MouseEventImpl_getButton /* * Class: org_mozilla_dom_events_MouseEventImpl - * Method: getRelatedNode - * Signature: ()Lorg/w3c/dom/Node; + * Method: getRelatedTarget + * Signature: ()Lorg/w3c/dom/events/EventTarget; */ -JNIEXPORT jobject JNICALL Java_org_mozilla_dom_events_MouseEventImpl_getRelatedNode +JNIEXPORT jobject JNICALL Java_org_mozilla_dom_events_MouseEventImpl_getRelatedTarget (JNIEnv *, jobject); /* * Class: org_mozilla_dom_events_MouseEventImpl * Method: initMouseEvent - * Signature: (Ljava/lang/String;ZZLorg/w3c/dom/views/AbstractView;IIIIIZZZZSLorg/w3c/dom/Node;)V + * Signature: (Ljava/lang/String;ZZLorg/w3c/dom/views/AbstractView;IIIIIZZZZSLorg/w3c/dom/events/EventTarget;)V */ JNIEXPORT void JNICALL Java_org_mozilla_dom_events_MouseEventImpl_initMouseEvent (JNIEnv *, jobject, jstring, jboolean, jboolean, jobject, jint, jint, jint, jint, jint, jboolean, jboolean, jboolean, jboolean, jshort, jobject);