Make first real commit: copy of CaRMetal 4.2.8
This commit is contained in:
parent
002acfc88e
commit
c312811084
1120 changed files with 226843 additions and 1 deletions
173
org/mozilla/javascript/xml/XMLLib.java
Normal file
173
org/mozilla/javascript/xml/XMLLib.java
Normal file
|
@ -0,0 +1,173 @@
|
|||
/* -*- Mode: java; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
*
|
||||
* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is Rhino code, released
|
||||
* May 6, 1999.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1997-2000
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Igor Bukanov
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* the GNU General Public License Version 2 or later (the "GPL"), in which
|
||||
* case the provisions of the GPL are applicable instead of those above. If
|
||||
* you wish to allow use of your version of this file only under the terms of
|
||||
* the GPL and not to allow others to use your version of this file under the
|
||||
* MPL, indicate your decision by deleting the provisions above and replacing
|
||||
* them with the notice and other provisions required by the GPL. If you do
|
||||
* not delete the provisions above, a recipient may use your version of this
|
||||
* file under either the MPL or the GPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
package org.mozilla.javascript.xml;
|
||||
|
||||
import org.mozilla.javascript.*;
|
||||
|
||||
public abstract class XMLLib
|
||||
{
|
||||
private static final Object XML_LIB_KEY = new Object();
|
||||
|
||||
/**
|
||||
An object which specifies an XMLLib implementation to be used at runtime.
|
||||
|
||||
This interface should be considered experimental. It may be better
|
||||
(and certainly more flexible) to write an interface that returns an
|
||||
XMLLib object rather than a class name, for example. But that would
|
||||
cause many more ripple effects in the code, all the way back to
|
||||
{@link ScriptRuntime}.
|
||||
*/
|
||||
public static abstract class Factory {
|
||||
public static Factory create(final String className) {
|
||||
return new Factory() {
|
||||
@Override
|
||||
public String getImplementationClassName() {
|
||||
return className;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
public abstract String getImplementationClassName();
|
||||
}
|
||||
|
||||
public static XMLLib extractFromScopeOrNull(Scriptable scope)
|
||||
{
|
||||
ScriptableObject so = ScriptRuntime.getLibraryScopeOrNull(scope);
|
||||
if (so == null) {
|
||||
// If library is not yet initialized, return null
|
||||
return null;
|
||||
}
|
||||
|
||||
// Ensure lazily initialization of real XML library instance
|
||||
// which is done on first access to XML property
|
||||
ScriptableObject.getProperty(so, "XML");
|
||||
|
||||
return (XMLLib)so.getAssociatedValue(XML_LIB_KEY);
|
||||
}
|
||||
|
||||
public static XMLLib extractFromScope(Scriptable scope)
|
||||
{
|
||||
XMLLib lib = extractFromScopeOrNull(scope);
|
||||
if (lib != null) {
|
||||
return lib;
|
||||
}
|
||||
String msg = ScriptRuntime.getMessage0("msg.XML.not.available");
|
||||
throw Context.reportRuntimeError(msg);
|
||||
}
|
||||
|
||||
protected final XMLLib bindToScope(Scriptable scope)
|
||||
{
|
||||
ScriptableObject so = ScriptRuntime.getLibraryScopeOrNull(scope);
|
||||
if (so == null) {
|
||||
// standard library should be initialized at this point
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
return (XMLLib)so.associateValue(XML_LIB_KEY, this);
|
||||
}
|
||||
|
||||
public abstract boolean isXMLName(Context cx, Object name);
|
||||
|
||||
public abstract Ref nameRef(Context cx, Object name,
|
||||
Scriptable scope, int memberTypeFlags);
|
||||
|
||||
public abstract Ref nameRef(Context cx, Object namespace, Object name,
|
||||
Scriptable scope, int memberTypeFlags);
|
||||
|
||||
/**
|
||||
* Escapes the reserved characters in a value of an attribute.
|
||||
*
|
||||
* @param value Unescaped text
|
||||
* @return The escaped text
|
||||
*/
|
||||
public abstract String escapeAttributeValue(Object value);
|
||||
|
||||
/**
|
||||
* Escapes the reserved characters in a value of a text node.
|
||||
*
|
||||
* @param value Unescaped text
|
||||
* @return The escaped text
|
||||
*/
|
||||
public abstract String escapeTextValue(Object value);
|
||||
|
||||
|
||||
/**
|
||||
* Construct namespace for default xml statement.
|
||||
*/
|
||||
public abstract Object toDefaultXmlNamespace(Context cx, Object uriValue);
|
||||
|
||||
public void setIgnoreComments(boolean b) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
public void setIgnoreWhitespace(boolean b) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
public void setIgnoreProcessingInstructions(boolean b) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
public void setPrettyPrinting(boolean b) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
public void setPrettyIndent(int i) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
public boolean isIgnoreComments() {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
public boolean isIgnoreProcessingInstructions() {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
public boolean isIgnoreWhitespace() {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
public boolean isPrettyPrinting() {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
public int getPrettyIndent() {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
}
|
128
org/mozilla/javascript/xml/XMLObject.java
Normal file
128
org/mozilla/javascript/xml/XMLObject.java
Normal file
|
@ -0,0 +1,128 @@
|
|||
/* -*- Mode: java; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
*
|
||||
* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is Rhino code, released
|
||||
* May 6, 1999.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1997-2000
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Igor Bukanov
|
||||
* Ethan Hugg
|
||||
* Terry Lucas
|
||||
* Milen Nankov
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* the GNU General Public License Version 2 or later (the "GPL"), in which
|
||||
* case the provisions of the GPL are applicable instead of those above. If
|
||||
* you wish to allow use of your version of this file only under the terms of
|
||||
* the GPL and not to allow others to use your version of this file under the
|
||||
* MPL, indicate your decision by deleting the provisions above and replacing
|
||||
* them with the notice and other provisions required by the GPL. If you do
|
||||
* not delete the provisions above, a recipient may use your version of this
|
||||
* file under either the MPL or the GPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
package org.mozilla.javascript.xml;
|
||||
|
||||
import org.mozilla.javascript.*;
|
||||
|
||||
/**
|
||||
* This Interface describes what all XML objects (XML, XMLList) should have in common.
|
||||
*
|
||||
*/
|
||||
public abstract class XMLObject extends IdScriptableObject
|
||||
{
|
||||
public XMLObject()
|
||||
{
|
||||
}
|
||||
|
||||
public XMLObject(Scriptable scope, Scriptable prototype)
|
||||
{
|
||||
super(scope, prototype);
|
||||
}
|
||||
|
||||
/**
|
||||
* Implementation of ECMAScript [[Has]].
|
||||
*/
|
||||
public abstract boolean ecmaHas(Context cx, Object id);
|
||||
|
||||
/**
|
||||
* Implementation of ECMAScript [[Get]].
|
||||
*/
|
||||
public abstract Object ecmaGet(Context cx, Object id);
|
||||
|
||||
/**
|
||||
* Implementation of ECMAScript [[Put]].
|
||||
*/
|
||||
public abstract void ecmaPut(Context cx, Object id, Object value);
|
||||
|
||||
/**
|
||||
* Implementation of ECMAScript [[Delete]].
|
||||
*/
|
||||
public abstract boolean ecmaDelete(Context cx, Object id);
|
||||
|
||||
/**
|
||||
* Return an additional object to look for methods that runtime should
|
||||
* consider during method search. Return null if no such object available.
|
||||
*/
|
||||
public abstract Scriptable getExtraMethodSource(Context cx);
|
||||
|
||||
/**
|
||||
* Generic reference to implement x.@y, x..y etc.
|
||||
*/
|
||||
public abstract Ref memberRef(Context cx, Object elem,
|
||||
int memberTypeFlags);
|
||||
|
||||
/**
|
||||
* Generic reference to implement x::ns, x.@ns::y, x..@ns::y etc.
|
||||
*/
|
||||
public abstract Ref memberRef(Context cx, Object namespace, Object elem,
|
||||
int memberTypeFlags);
|
||||
|
||||
/**
|
||||
* Wrap this object into NativeWith to implement the with statement.
|
||||
*/
|
||||
public abstract NativeWith enterWith(Scriptable scope);
|
||||
|
||||
/**
|
||||
* Wrap this object into NativeWith to implement the .() query.
|
||||
*/
|
||||
public abstract NativeWith enterDotQuery(Scriptable scope);
|
||||
|
||||
/**
|
||||
* Custom <tt>+</tt> operator.
|
||||
* Should return {@link Scriptable#NOT_FOUND} if this object does not have
|
||||
* custom addition operator for the given value,
|
||||
* or the result of the addition operation.
|
||||
* <p>
|
||||
* The default implementation returns {@link Scriptable#NOT_FOUND}
|
||||
* to indicate no custom addition operation.
|
||||
*
|
||||
* @param cx the Context object associated with the current thread.
|
||||
* @param thisIsLeft if true, the object should calculate this + value
|
||||
* if false, the object should calculate value + this.
|
||||
* @param value the second argument for addition operation.
|
||||
*/
|
||||
public Object addValues(Context cx, boolean thisIsLeft, Object value)
|
||||
{
|
||||
return Scriptable.NOT_FOUND;
|
||||
}
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue