VariablesSubstitutionAware
VariablesSubstitutionAware provides interface for variables substitution.
It is supposed that T implements VariablesSubstitutionAware<T>
If implementors don't have variables to be replaced, they may return this
. Non-trivial implementations are supposed for classes representing text code snippets.