/* Copyright (C) 2009 Versant Inc. http://www.db4o.com */ package sharpen.core.csharp.ast; import java.util.*; public class CSMacro extends CSNode { private final String _template; private Map<String, Object> _variables = new HashMap<String, Object>(); public CSMacro(String template) { _template = template; } @Override public void accept(CSVisitor visitor) { visitor.visit(this); } public String template() { return _template; } public void addVariable(String name, Object value) { if (_variables.containsKey(name)) { throw new IllegalArgumentException("Variable '" + name + "' already set!"); } _variables.put(name, value); } public Object resolveVariable(String name) { if (!_variables.containsKey(name)) { throw new IllegalStateException("Variable '" + name + "' is not set!"); } return _variables.get(name); } }