1 package org.codehaus.plexus.interpolation; 2 /* 3 * Copyright 2014 Codehaus Foundation. 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 18 /** 19 * Knows how to do basic interpolation services. 20 * 21 * TODO: Really really needs a way to communicate errors. 22 */ 23 public interface BasicInterpolator { 24 /** 25 * See {@link org.codehaus.plexus.interpolation.Interpolator#interpolate(String, String, org.codehaus.plexus.interpolation.RecursionInterceptor)}. 26 * <p> 27 * This method triggers the use of a {@link org.codehaus.plexus.interpolation.SimpleRecursionInterceptor} 28 * instance for protection against expression cycles. It also leaves empty the 29 * expression prefix which would otherwise be trimmed from expressions. The 30 * result is that any detected expression will be resolved as-is.</p> 31 * 32 * @param input The input string to interpolate 33 * @return the interpolated string. 34 * @throws InterpolationException in case of an error. 35 */ 36 String interpolate(String input) throws InterpolationException; 37 38 /** 39 * See {@link org.codehaus.plexus.interpolation.Interpolator#interpolate(String, String, org.codehaus.plexus.interpolation.RecursionInterceptor)}. 40 * <p> 41 * This method leaves empty the expression prefix which would otherwise be 42 * trimmed from expressions. The result is that any detected expression will 43 * be resolved as-is.</p> 44 * 45 * @param input The input string to interpolate 46 * 47 * @param recursionInterceptor Used to protect the interpolation process 48 * from expression cycles, and throw an 49 * exception if one is detected. 50 * @return the interpolated string. 51 * @throws InterpolationException in case of an error. 52 */ 53 String interpolate(String input, RecursionInterceptor recursionInterceptor) throws InterpolationException; 54 }