ro.isdc.wro.util.Transformers Maven / Gradle / Ivy
/**
* Copyright Alex Objelean
*/
package ro.isdc.wro.util;
import org.apache.commons.io.FilenameUtils;
/**
* Contains factory methods for creating {@link Transformer} object.
*
* @author Alex Objelean
*/
public class Transformers {
/**
* Creates a {@link Transformer} which replace a original filename extension with a new extension.
* @param newExtension extension to use for the returned value.
* @return original filename but with the new extension.
*/
public static Transformer extensionTransformer(final String newExtension) {
return new Transformer() {
public String transform(final String input) {
return FilenameUtils.getBaseName(input) + "." + newExtension;
}
};
}
/**
* Appends a suffix to the source baseName.
* @param suffix to append.
* @return {@link Transformer} capable to append a suffix to provided baseName.
*/
public static Transformer baseNameSuffixTransformer(final String suffix) {
return new Transformer() {
public String transform(final String input) {
final String baseName = FilenameUtils.getBaseName(input);
final String extension = FilenameUtils.getExtension(input);
return baseName + suffix + "." + extension;
}
};
}
/**
* @return a {@link Transformer} which doesn't change the input.
*/
public static Transformer noOpTransformer() {
return new Transformer() {
public String transform(final String input) {
return input;
}
};
}
}