Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.antlr.stringtemplate;
  
  
  import java.io.*;
  import java.util.List;
A brain dead loader that looks only in the directory(ies) you specify in the ctor. You may specify the char encoding. NOTE: this does not work when you jar things up! Use CommonGroupLoader instead in that case
 
 public class PathGroupLoader implements StringTemplateGroupLoader {
List of ':' separated dirs to pull groups from
 
 	protected List dirs = null;
 
 	protected StringTemplateErrorListener errors = null;

How are the files encoded (ascii, UTF8, ...)? You might want to read UTF8 for example on an ascii machine.
 
 	String fileCharEncoding = System.getProperty("file.encoding");
 
 		this. = errors;
 	}

Pass a single dir or multiple dirs separated by colons from which to load groups/interfaces.
 
 	public PathGroupLoader(String dirStrStringTemplateErrorListener errors) {
 		this. = errors;
 		StringTokenizer tokenizer = new StringTokenizer(dirStr":"false);
 		while (tokenizer.hasMoreElements()) {
 			String dir = (Stringtokenizer.nextElement();
 			if ( ==null ) {
 				 = new ArrayList();
 			}
 			.add(dir);
 		}
 	}

Load a group with a specified superGroup. Groups with region definitions must know their supergroup to find templates during parsing.
 
 	public StringTemplateGroup loadGroup(String groupName,
 										 Class templateLexer,
 										 StringTemplateGroup superGroup)
 	{
 		StringTemplateGroup group = null;
 		BufferedReader br = null;
 		// group file format defaults to <...>
 		Class lexer = AngleBracketTemplateLexer.class;
 		if ( templateLexer!=null ) {
 			lexer = templateLexer;
 		}
 		try {
 			br = locate(groupName+".stg");
 			if ( br==null ) {
 				error("no such group file "+groupName+".stg");
 				return null;
 			}
 			group = new StringTemplateGroup(brlexersuperGroup);
 			br.close();
 			br = null;
 		}
 		catch (IOException ioe) {
 			error("can't load group "+groupNameioe);
 		}
 		finally {
 			if ( br!=null ) {
 				try {
 					br.close();
 				}
 				catch (IOException ioe2) {
 					error("Cannot close template group file: "+groupName+".stg"ioe2);
 				}
 			}
 		}
 		return group;
 	}
 
 	public StringTemplateGroup loadGroup(String groupName,
 										 StringTemplateGroup superGroup)
 	{
 		return loadGroup(groupNamenullsuperGroup);
 	}
 
 	public StringTemplateGroup loadGroup(String groupName) {
 		return loadGroup(groupNamenull);
 	}
 
 	public StringTemplateGroupInterface loadInterface(String interfaceName) {
 		try {
			BufferedReader br = locate(interfaceName+".sti");
			if ( br==null ) {
				error("no such interface file "+interfaceName+".sti");
				return null;
			}
		}
		catch (IOException ioe) {
			error("can't load interface "+interfaceNameioe);
		}
		return I;
	}

Look in each directory for the file called 'name'.
	protected BufferedReader locate(String namethrows IOException {
		for (int i = 0; i < .size(); i++) {
			String dir = (String.get(i);
			String fileName = dir+"/"+name;
			if ( new File(fileName).exists() ) {
				FileInputStream fis = new FileInputStream(fileName);
				return new BufferedReader(isr);
			}
		}
		return null;
	}
		InputStreamReader isr = null;
		try {
			 isr = new InputStreamReader(in);
		}
			error("Invalid file character encoding: "+);
		}
		return isr;
	}
	}
	public void setFileCharEncoding(String fileCharEncoding) {
		this. = fileCharEncoding;
	}
	public void error(String msg) {
		error(msgnull);
	}
	public void error(String msgException e) {
		if ( !=null ) {
			.error(msg,e);
		}
		else {
			..println("StringTemplate: "+msg);
			if ( e!=null ) {
			}
		}
    }
New to GrepCode? Check out our FAQ X