Package client.net.sf.saxon.ce.pattern

Source Code of client.net.sf.saxon.ce.pattern.JSObjectPattern

package client.net.sf.saxon.ce.pattern;

import com.google.gwt.core.client.JavaScriptObject;

import client.net.sf.saxon.ce.Configuration;
import client.net.sf.saxon.ce.expr.Expression;
import client.net.sf.saxon.ce.expr.XPathContext;
import client.net.sf.saxon.ce.js.IXSLFunction;
import client.net.sf.saxon.ce.om.ValueRepresentation;
import client.net.sf.saxon.ce.trans.XPathException;
import client.net.sf.saxon.ce.type.Type;

public class JSObjectPattern extends NodeSetPattern {
 
  private Expression expression;
  private JavaScriptObject val = null;
 
  public JSObjectPattern(Expression exp, Configuration config) {
    super(exp, config);
    expression = exp;
  }
 
    public int getNodeKind() {
      return Type.EMPTY;
    }

    /**
     * Get a NodeTest that all the nodes matching this pattern must satisfy
     */

    public NodeTest getNodeTest() {
        return AnyJSObjectNodeTest.getInstance();
    }
    /**
     * Evaluate the pattern - it should normally be ixsl:window() - uses
     * local variable to cache value so it can be used for a match test
     */
    public JavaScriptObject evaluate(XPathContext context) throws XPathException{
      ValueRepresentation valueRep = (ValueRepresentation)expression.evaluateItem(context);
      val = (JavaScriptObject)IXSLFunction.convertToJavaScript(valueRep);
      return val;
    }
   
    public boolean matchesObject(JavaScriptObject obj) {
      return testEquality(val, obj);
    }
   
    private static native boolean testEquality(JavaScriptObject a, JavaScriptObject b) /*-{
    return a === b;
  }-*/;

}

// This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
// If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
// This Source Code Form is “Incompatible With Secondary Licenses”, as defined by the Mozilla Public License, v. 2.0.
TOP

Related Classes of client.net.sf.saxon.ce.pattern.JSObjectPattern

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.