Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * StringReplace.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 StringReplace extends DefaultStep implements ProcessMatchingNodes {
     private static final QName _match = new QName("""match");
     private static final QName _replace = new QName("""replace");
     private ReadablePipe source = null;
     private WritablePipe result = null;
     private ProcessMatch matcher = null;
     private RuntimeValue replace = null;
     private Hashtable<String,Stringrns = new Hashtable<String,String> ();
     private static Hashtable<QName,RuntimeValueatomicStepsGetNoInScopeOptions = new Hashtable<QName,RuntimeValue> ();

    
Creates a new instance of StringReplace
 
     public StringReplace(XProcRuntime runtimeXAtomicStep step) {
         super(runtime,step);
     }
 
     public void setInput(String portReadablePipe pipe) {
          = pipe;
     }
 
     public void setOutput(String portWritablePipe pipe) {
          = pipe;
     }
 
     public void reset() {
         .resetReader();
         .resetWriter();
     }
 
 
     public void run() throws SaxonApiException {
         super.run();
 
         RuntimeValue match = getOption();
          = getOption();
         for (String prefix : .getNamespaceBindings().keySet()) {
             .put(prefix.getNamespaceBindings().get(prefix));
         }
 
          = new ProcessMatch(this);
         .match(.read(), match);
 
         .write(.getResult());
     }
 
     public boolean processStartDocument(XdmNode nodethrows SaxonApiException {
         return true;
     }
 
     public void processEndDocument(XdmNode nodethrows SaxonApiException {
         // nop?
     }
 
     public boolean processStartElement(XdmNode nodethrows SaxonApiException {
         String newValue = computeReplacement(node);
         .addText(newValue);
         return false;
     }
 
     public void processEndElement(XdmNode nodethrows SaxonApiException {
         // nop?
     }
 
    public void processText(XdmNode nodethrows SaxonApiException {
        String newValue = computeReplacement(node);
        .addText(newValue);
    }
    public void processComment(XdmNode nodethrows SaxonApiException {
        String newValue = computeReplacement(node);
        .addText(newValue);
    }
    public void processPI(XdmNode nodethrows SaxonApiException {
        String newValue = computeReplacement(node);
        .addText(newValue);
    }
    public void processAttribute(XdmNode nodethrows SaxonApiException {
        String newValue = computeReplacement(node);
        .addAttribute(nodenewValue);
    }
    private String computeReplacement(XdmNode node) {
        String newValue = "";
        for (XdmItem item : values) {
            newValue += item.getStringValue();
        }
        return newValue;
    }
New to GrepCode? Check out our FAQ X