class Template {

    private String resolve(String placeholder, DeclaringComponent currentComponent, Resolver resolver) {
        if (isValidPlaceholder(placeholder)) {
            return doResolve(placeholder, resolver, currentComponent);
        }

        String newFormat = "${this@" + placeholder.substring("${".length());
        if (!isValidPlaceholder(newFormat)) return null;
        try {
            return doResolve(newFormat, resolver, currentComponent);
        } catch (RuntimeException e) {
            return null;//todo warn
        }
    }

      Template(String templateName, File source, Pattern pattern);

}