public static BehaviorProvider<ForeachBehavior> getProvider() {
return new BehaviorProvider<ForeachBehavior>() {
public ForeachBehavior get(DynamicAttribute keyAttribute, Map<AttributeKey, Attribute> attributes, int line, int col) throws ExpressionParsingException, BehaviorInstantiationException {
AttributeKey asKey = new AttributeKey(keyAttribute.getAttributeNameSpace(), "as");
Attribute asAttribute = attributes.get(asKey);
AttributeKey iterKey = new AttributeKey(keyAttribute.getAttributeNameSpace(), "iter");
Attribute iterAttribute = attributes.get(iterKey);
Expression e = keyAttribute.getExpression();
return new ForeachBehavior(e, asAttribute == null ? null : asAttribute.getValue(), iterAttribute == null ? null : iterAttribute.getValue(), line, col);
}