package com.hubspot.jinjava.lib.filter;
import com.hubspot.jinjava.doc.annotations.JinjavaDoc;
import com.hubspot.jinjava.doc.annotations.JinjavaParam;
import com.hubspot.jinjava.doc.annotations.JinjavaSnippet;
import com.hubspot.jinjava.interpret.JinjavaInterpreter;
import com.hubspot.jinjava.util.ForLoop;
import com.hubspot.jinjava.util.ObjectIterator;
@JinjavaDoc(
value = "Return the first item of a sequence.",
params = {
@JinjavaParam(value = "seq", type = "sequence", desc = "Sequence to return first item from")
},
snippets = {
@JinjavaSnippet(
code = "{% set my_sequence = ['Item 1', 'Item 2', 'Item 3'] %}\n" +
"{{ my_sequence|first }}")
})
public class FirstFilter implements Filter {
@Override
public String getName() {
return "first";
}
@Override
public Object filter(Object var, JinjavaInterpreter interpreter, String... args) {
ForLoop loop = ObjectIterator.getLoop(var);
return loop.next();
}
}