package org.jmxtrans.agent; import javax.annotation.Nonnull; import javax.annotation.Nullable; import javax.management.ObjectName; /** * @author <a href="mailto:cleclerc@cloudbees.com">Cyrille Le Clerc</a> */ public interface ExpressionLanguageEngine { /** * Replace all the '#' based keywords (e.g. <code>#hostname#</code>) by the value returned by the associated function. * * @param expression the expression to resolve (e.g. <code>"servers.#hostname#."</code>) * @return the resolved expression (e.g. <code>"servers.tomcat5"</code>) */ @Nonnull String resolveExpression(@Nonnull String expression); @Nonnull String resolveExpression(@Nonnull String expression, @Nonnull ObjectName exactObjectName, @Nullable String attribute, @Nullable String compositeDataKey, @Nullable Integer position); }