/** * Packer version 3.0 (final) * Copyright 2004-2007, Dean Edwards * Web: {@link http://dean.edwards.name/} * * This software is licensed under the MIT license * Web: {@link http://www.opensource.org/licenses/mit-license} * * Ported to Java by Pablo Santiago based on C# version by Jesse Hansen, <twindagger2k @ msn.com> * Web: {@link http://jpacker.googlecode.com/} * Email: <pablo.santiago @ gmail.com> */ package com.jpacker.evaluators; import java.util.regex.Matcher; public class StringEvaluator extends AbstractEvaluator implements Evaluator { private String replacement; public StringEvaluator(String replacement) { this.replacement = replacement; } /** * Replacement function for complicated lookups (e.g. Hello $3 $2) * */ @Override public String evaluate(Matcher matcher, int offset) { int length = getJPattern().getLength(); String result = replacement; while (length-- > 0) { String mg = matcher.group(offset + length); result = result.replace("$" + length, mg == null ? "" : mg); } return result; } }