From 52a837d31e7273be6489d8907e2b5426f9165760 Mon Sep 17 00:00:00 2001 From: Joey Smith Date: Fri, 5 Oct 2018 08:32:28 -0600 Subject: [PATCH] Add a `length` property to the AbstractRepeatPlugin --- .../scripting/sightly/impl/plugin/AbstractRepeatPlugin.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/apache/sling/scripting/sightly/impl/plugin/AbstractRepeatPlugin.java b/src/main/java/org/apache/sling/scripting/sightly/impl/plugin/AbstractRepeatPlugin.java index 801d4e8..6452ecd 100644 --- a/src/main/java/org/apache/sling/scripting/sightly/impl/plugin/AbstractRepeatPlugin.java +++ b/src/main/java/org/apache/sling/scripting/sightly/impl/plugin/AbstractRepeatPlugin.java @@ -41,15 +41,17 @@ public abstract class AbstractRepeatPlugin extends AbstractPlugin { protected static final String BEGIN = "begin"; protected static final String STEP = "step"; protected static final String END = "end"; + protected static final String LENGTH = "length"; protected MapLiteral buildStatusObj(String indexVar, String sizeVar) { HashMap obj = new HashMap<>(); Identifier indexId = new Identifier(indexVar); + Identifier size = new Identifier(size); BinaryOperation firstExpr = new BinaryOperation(BinaryOperator.EQ, indexId, NumericConstant.ZERO); BinaryOperation lastExpr = new BinaryOperation( BinaryOperator.EQ, indexId, - new BinaryOperation(BinaryOperator.SUB, new Identifier(sizeVar), NumericConstant.ONE)); + new BinaryOperation(BinaryOperator.SUB, size, NumericConstant.ONE)); obj.put(INDEX, indexId); obj.put(COUNT, new BinaryOperation(BinaryOperator.ADD, indexId, NumericConstant.ONE)); obj.put(FIRST, firstExpr); @@ -59,6 +61,7 @@ protected MapLiteral buildStatusObj(String indexVar, String sizeVar) { obj.put(LAST, lastExpr); obj.put(ODD, parityCheck(indexId, NumericConstant.ZERO)); obj.put(EVEN, parityCheck(indexId, NumericConstant.ONE)); + obj.put(LENGTH, size); return new MapLiteral(obj); }