class PathTranslatingPostProcessor implements InterpolationPostProcessor {

    private final Collection<String> unprefixedPathKeys;
    private final Path projectDir;
    private final PathTranslator pathTranslator;
    private final List<String> expressionPrefixes;

    PathTranslatingPostProcessor(
            List<String> expressionPrefixes,
            Collection<String> unprefixedPathKeys,
            Path projectDir,
            PathTranslator pathTranslator) {
        this.expressionPrefixes = expressionPrefixes;
        this.unprefixedPathKeys = unprefixedPathKeys;
        this.projectDir = projectDir;
        this.pathTranslator = pathTranslator;
    }

    @Override
    public Object execute(String expression, Object value) {<FILL_FUNCTION_BODY>}
}

        if (value != null) {
            expression = ValueSourceUtils.trimPrefix(expression, expressionPrefixes, true);

            if (unprefixedPathKeys.contains(expression)) {
                return pathTranslator.alignToBaseDirectory(String.valueOf(value), projectDir);
            }
        }

        return null;
    
<no_super_class>