package org.jactr.tools.itr;
import java.util.Collection;
import java.util.Map;
import org.antlr.runtime.tree.CommonTree;
import org.jactr.io.antlr3.builder.JACTRBuilder;
import org.jactr.io.antlr3.misc.ASTSupport;
public class BufferParameterModifier extends AbstractParameterModifier
{
static public final String BUFFER_NAME = "BufferName";
private String _bufferName;
static public void setBufferParameter(CommonTree modelDescriptor, String bufferName, String parameterName, String value)
{
Map<String, CommonTree> buffers = ASTSupport.getMapOfTrees(modelDescriptor, JACTRBuilder.BUFFER);
for(String name : buffers.keySet())
if(name.equalsIgnoreCase(bufferName))
{
ASTSupport support = new ASTSupport();
support.setParameter(buffers.get(bufferName), parameterName, value, true);
}
}
@Override
protected void setParameter(CommonTree modelDescriptor, String parameter,
String value)
{
setBufferParameter(modelDescriptor, _bufferName, parameter, value);
}
@Override
public String getParameterDisplayName()
{
return _bufferName + "." + getParameterName();
}
@Override
public Collection<String> getSetableParameters()
{
Collection<String> rtn = super.getSetableParameters();
rtn.add(BUFFER_NAME);
return rtn;
}
@Override
public void setParameter(String key, String value)
{
if(BUFFER_NAME.equalsIgnoreCase(key))
_bufferName = value;
else super.setParameter(key, value);
}
}