@Override
	public void handle(StringBuilder line, TemplateReader tpl,
			Environment env, Appendable out) throws IOException {		
		// get the class name
		String klass = getArgs(line);
		
		// read in the class
		ClassReader rdr = new ClassReader();			
		while (true) {
			line = tpl.next();
			
			if (line == null || (isCodeLine(line) && getCmd(line).equals("endclass")))
				break;
			
			rdr.add( line.toString() );
		}
		
		// format and print objects!
		Environment oenv; int i = 0;
		for (TemplateObject o : env.getObjectsFor(klass)) {
			rdr.rewind();
			oenv = env.getEnvironmentFor(o);	
			oenv.setValue("FIRST", (i == 0) ? "1" : null);
			oenv.setValue("NOTFIRST", (i != 0) ? "1" : null);
			oenv.setValue("INDEX", String.valueOf(i++));			
			Template.doTemplateLoop(rdr, oenv, out);
		}
	}