001 package com.saelist.stx.operators;
002
003 import org.apache.log4j.*;
004 import com.saelist.stx.*;
005
006
007 /** See {@link com.saelist.stx.Operator} for general description of the Operator
008 * concept in stx. ReplaceOperator performs a regular expression replacement
009 * on each pair it visits.
010 *
011 */
012 public class ReplaceOperator extends AbstractOperator {
013
014 private String pattern;
015 private String replacement;
016
017 /** Caches the pattern and replacement settings in variables.
018 */
019 public void init() {
020 pattern = config.eval1("pattern");
021 replacement = config.eval1("replacement");
022 logger.info("init(): pattern='" + pattern + "'.");
023 logger.info("init(): replacement='" + replacement + "'.");
024 }
025
026 /** Performs the replacement operation on the given pair.
027 * @throws IllegalStateException if this hasn't been initialized.
028 */
029 public void operate(Pair pair) {
030 logger.info("visit(): '" +
031 pair.getText() + "' -> '" +
032 pair.getText().replaceAll(pattern, replacement) + "'.");
033 pair.setText(pair.getText().replaceAll(pattern, replacement));
034 }
035
036 }