in jelly-tags/antlr/src/main/java/org/apache/commons/jelly/tags/antlr/AntlrTag.java [120:174]
protected File getGeneratedFile(String grammar) throws JellyTagException
{
File grammarFile = new File( grammar );
String generatedFileName = null;
String className = null;
String packageName = "";
try {
BufferedReader in = new BufferedReader(new FileReader(grammar));
String line;
while ((line = in.readLine()) != null) {
line = line.trim();
int extendsIndex = line.indexOf(" extends ");
if (line.startsWith("class ") && extendsIndex > -1) {
generatedFileName = line.substring(6, extendsIndex).trim();
break;
}
else if ( line.startsWith( "package" ) ) {
packageName = line.substring( 8 ).trim();
}
}
in.close();
} catch (Exception e) {
throw new JellyTagException("Unable to determine generated class",
e);
}
if (generatedFileName == null) {
return null;
}
File genFile = null;
if ( "".equals( packageName ) )
{
genFile = new File( getOutputDir(),
generatedFileName + ".java" );
}
else
{
String packagePath = packageName.replace( '.',
File.separatorChar );
packagePath = packagePath.replace( ';',
File.separatorChar );
genFile = new File( new File( getOutputDir(), packagePath),
generatedFileName + ".java" );
}
return genFile;
}