package org.japanosample;
import javax.servlet.jsp.JspException;
import org.japano.Buffer;
import org.japano.PageNode;
import org.japano.metadata.annotation.*;
/**
A tag which repeats its body a given number of times.
@author Sven Helmberger ( sven dot helmberger at gmx dot de )
@version $Id: Repeat.java,v 1.3 2005/02/25 01:27:14 fforw Exp $
@author Sven Helmberger ( sven dot helmberger at gmx dot de )
@version $Id: Repeat.java,v 1.3 2005/02/25 01:27:14 fforw Exp $
*/
@JapanoTag ( library="/sample" )
public class Repeat extends PageNode
{
/** number of times to repeat the body */
private int times;
/** current number */
private int current;
/**
Number of repetitions.
*/
@JapanoAttribute ( required=true )
public void setTimes(int times)
{
this.times=times;
}
/**
Main entry method for all page nodes.
Generates this tag and all its childs into the
given Buffer
@param out Buffer
*/
public void generate(Buffer out)
{
// iterate over all numbers from 0 to <repeat>
for (current=0; current < times; current++)
{
// for every iteration, generate all children of this tag
generateChildren(out);
}
}
/**
The current number
*/
@JapanoOutput
public int getCurrentNumber()
{
return current;
}
}