class VariableResolver {

    public <T> T resolve(String variableName, Class<T> clazz) {
        if (!resolver.containsProperty(variableName)) {
            throw new UnknownVariableException(variableName);
        }

        return resolver.getProperty(variableName, clazz);
    }

    public  VariableResolver(PropertySource appVariables, PropertySource envTypeVariables, PropertySource envVariables, AlienContextVariables alienContextVariables);
    public  VariableResolver(Properties appVariables, Properties envTypeVariables, Properties envVariables, AlienContextVariables alienContextVariables);

}