/*
 * TemplateBuilder.java
 *
 * Created on 01 July 2002, 14:38
 */

package org.bodington.installation;

import java.io.*;
import org.bodington.servlet.template.*;

/**
 *
 * @author  bmb6jrm
 * @version
 */
public class TemplateBuilder
{
    
    /** Creates new TemplateBuilder */
    public TemplateBuilder()
    {
    }
    
    /**
     * @param args the command line arguments
     */
    public static void main(String args[])
    {
	if ( args.length != 3 )
	{
	    System.err.println( "Usage: java org.bodington.TemplateBuilder template_dir class_dir class_path" );
	    System.exit( 1 );
	}
	
	File template_dir = new File( args[0] );
	File class_dir = new File( args[1] );
	
	if ( !template_dir.exists() || !template_dir.isDirectory() )
	{
	    System.err.println( "Template directory not found." );
	    System.exit( 1 );
	}
	
	if ( !class_dir.exists() || !class_dir.isDirectory() )
	{
	    System.err.println( "Class directory not found." );
	    System.exit( 1 );
	}
	
	
	File[] style_dirs = template_dir.listFiles();
	File[] facility_dirs;
	File[] template_files;
	XmlTemplate template;
	String class_name;
	String template_name;
	
	int i, j, k;
	for ( i=0; i< style_dirs.length; i++ )
	{
	    if ( !style_dirs[i].isDirectory() )
		continue;
	    
	    facility_dirs = style_dirs[i].listFiles();
	    
	    for ( j=0; j< facility_dirs.length; j++ )
	    {
		if ( !facility_dirs[j].isDirectory() )
		    continue;

		template_files = facility_dirs[j].listFiles();

		for ( k=0; k<template_files.length; k++ )
		{
		    if ( !template_files[k].isFile() )
			continue;
		    template_name = template_files[k].getName();
		    if ( !template_name.endsWith( ".html" ) )
			continue;
		    
		    class_name = "working." + 
				    style_dirs[i].getName() + "_" +
				    facility_dirs[j].getName() + ".template_" +
				    template_name.substring( 0, template_name.length()-5 );

		    class_name = class_name.replace( '-', '_' );
		    
		    System.out.println( class_name );
		    template = new XmlTemplate( template_files[k], 
						    class_dir, 
						    class_name, 
						    args[2] );
		    template.getProcessor();
		}
	    }
	}
    }
    
}
