Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Compare.java
   *
   * Copyright 2008 Mark Logic Corporation.
   * Portions Copyright 2007 Sun Microsystems, Inc.
   * All rights reserved.
   *
   * The contents of this file are subject to the terms of either the GNU
   * General Public License Version 2 only ("GPL") or the Common
  * Development and Distribution License("CDDL") (collectively, the
  * "License"). You may not use this file except in compliance with the
  * License. You can obtain a copy of the License at
  * https://xproc.dev.java.net/public/CDDL+GPL.html or
  * docs/CDDL+GPL.txt in the distribution. See the License for the
  * specific language governing permissions and limitations under the
  * License. When distributing the software, include this License Header
  * Notice in each file and include the License file at docs/CDDL+GPL.txt.
  */
 
 package com.xmlcalabash.library;
 
 
 

Author(s):
ndw
 
 public class Compare extends DefaultStep {
     private static final QName c_result = new QName("c"."result");
     private static final QName doca = new QName("","doca");
     private static final QName docb = new QName("","docb");
     private static final QName _fail_if_not_equal = new QName("","fail-if-not-equal");
     private ReadablePipe source = null;
     private ReadablePipe alternate = null;
     private WritablePipe result = null;

    
Creates a new instance of Compare
 
     public Compare(XProcRuntime runtimeXAtomicStep step) {
         super(runtime,step);
     }
 
     public void setInput(String portReadablePipe pipe) {
         if ("source".equals(port)) {
              = pipe;
         } else {
              = pipe;
         }
     }
 
     public void setOutput(String portWritablePipe pipe) {
          = pipe;
     }
 
     public void reset() {
         .resetReader();
         .resetWriter();
     }
 
     public void run() throws SaxonApiException {
         super.run();
 
         XdmNode sdoc = .read();
         XdmNode adoc = .read();
 
         XPathCompiler xcomp = .getProcessor().newXPathCompiler();
         xcomp.declareVariable();
         xcomp.declareVariable();
 
         XPathExecutable xexec = xcomp.compile("deep-equal($doca,$docb)");
         XPathSelector selector = xexec.load();
 
         selector.setVariable(,sdoc);
         selector.setVariable(,adoc);
 
         Iterator<XdmItemvalues = selector.iterator();
         XdmAtomicValue item = (XdmAtomicValuevalues.next();
         boolean same = item.getBooleanValue();
         if (!same && getOption(,false)) {
             throw XProcException.stepError(19);
         }
        TreeWriter treeWriter = new TreeWriter();
        treeWriter.startDocument(.getNode().getBaseURI());
        treeWriter.addStartElement();
        treeWriter.startContent();
        treeWriter.addText(""+same);
        treeWriter.addEndElement();
        treeWriter.endDocument();
        .write(treeWriter.getResult());
    }
New to GrepCode? Check out our FAQ X