package spoon.test.template; import java.util.Collection; import spoon.reflect.code.CtVariableRead; import spoon.reflect.declaration.CtVariable; import spoon.reflect.reference.CtVariableReference; import spoon.template.StatementTemplate; import spoon.template.TemplateParameter; public class CheckBoundTemplate extends StatementTemplate { public TemplateParameter<Collection<?>> _col_; @Override public void statement() { if (_col_.S().size() > 10) throw new IndexOutOfBoundsException(); } /** * Sets _col_ to be replaced by a reference to variable (a local variable, a * field, a parameter */ public void setVariable(CtVariable<?> var) { CtVariableRead<Collection<?>> va = var.getFactory().Core().createVariableRead(); va.setVariable((CtVariableReference<Collection<?>>) var.getReference()); _col_ = va; } }