Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.codehaus.mojo.javacc;
  
  /*
   * Copyright 2001-2005 The Codehaus.
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
  *      http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 
 import java.io.File;
 import java.util.Set;
 
 import  org.apache.maven.plugin.AbstractMojo;
 import  org.apache.maven.plugin.MojoExecutionException;
 import  org.javacc.jjtree.JJTree;


Author(s):
jesse <jesse.mcconnell@gmail.com>
Version:
$Id: JJTreeMojo.java 893 2005-11-21 20:18:03Z jesse $
Goal:
jjtree
Phase:
generate-sources
Description:
Goal which parse a JJ file and transform it to Java Source Files.
 
 public class JJTreeMojo
     extends AbstractMojo
 {      

   

Parameter:
expression="${buildNodeFiles}"
 
    private Boolean buildNodeFiles;

   

Parameter:
expression="${multi}"
 
    private Boolean multi;

   

Parameter:
expression="${nodeDefaultVoid}"
 
    private Boolean nodeDefaultVoid;

   

Parameter:
expression="${nodeFactory}"
 
    private Boolean nodeFactory;

   

Parameter:
expression="${nodeScopeHook}"
 
    private Boolean nodeScopeHook;

   

Parameter:
expression="${nodeUsesParser}"
 
    private Boolean nodeUsesParser
   
   

Parameter:
expression="${staticOption}"
 
    private Boolean staticOption;
    
   

Parameter:
expression="${visitor}"
 
    private Boolean visitor;

   

Parameter:
expression="${nodePackage}"
 
    private String nodePackage;

   

Parameter:
expression="${visitorException}"
 
    private String visitorException;

   

Parameter:
expression="${nodePrefix}"
 
   private String nodePrefix;
   
    
Directory where the JJT file(s) are located.

Parameter:
expression="${basedir}/src/main/jjtree"
Required:
    private String sourceDirectory;
    
    
Directory where the output Java Files will be located.

Parameter:
expression="${project.build.directory}/generated-sources/jjtree"
Required:
    private String outputDirectory;

    
the directory to store the processed .jjt files

Parameter:
expression="${basedir}/target"
    private String timestampDirectory;

    
The granularity in milliseconds of the last modification date for testing whether a source needs recompilation

Parameter:
expression="${lastModGranularityMs}" default-value="0"
    private int staleMillis;

    

Parameter:
expression="${project}"
Required:
    private MavenProject project;
    
    public void execute()
        throws MojoExecutionException
    {
        if ( !FileUtils.fileExists ) )
        {
            FileUtils.mkdir );
        }
        
        if ( !FileUtils.fileExists ) )
        {
            FileUtils.mkdir );
        }
        Set staleGrammars = computeStaleGrammars();
        if ( staleGrammars.isEmpty() )
        {
           getLog().info( "Nothing to process - all grammars are up to date" );
           if (  != null )
           {
              .addCompileSourceRoot );
           }
           return;
        }
        for ( Iterator i = staleGrammars.iterator(); i.hasNext(); )
        {
            File jjTreeFile = (Filei.next();
            try
            {
                JJTree jjtree = new JJTree();
                jjtree.main( generateArgumentListjjTreeFile.getAbsolutePath()) );
                
                FileUtils.copyFileToDirectory(jjTreeFilenew File());
            }
            catch ( Exception e )
            {
                throw new MojoExecutionException( "JJTree execution failed"e );
            }
        }
        
        if (  != null )
        {
           .addCompileSourceRoot );
        }
    }
    
    private String[] generateArgumentList(String jjTreeFilename) {
        ArrayList argsList = new ArrayList();
        
        if (  != null ) 
        {
            argsList.add("-BUILD_NODE_FILES=" + .toString());
        }
        
        if (  != null )
        {
            argsList.add("-MULTI=" + );
        }
        
        if (  != null )
        {
            argsList.add"-NODE_DEFAULT_VOID=" +  );
        }
        if (  != null )
        {
            argsList.add"-NODE_FACTORY=" + );
        }
        
        if (  != null )
        {
            argsList.add"-NODE_PACKAGE=" +  );
        }
        
        if (  != null )
        {
            argsList.add"-NODE_PREFIX=" +  );
        }
        
        if (  != null )
        {
            argsList.add"-NODE_SCOPE_HOOK=" +  );
        }
        
        if (  != null )
        {
            argsList.add ( "-NODE_USES_PARSER=" +  );
        }
        
        if (  != null )
        {
            argsList.add ( "-VISITOR=" + );
        }
        
        if (  != null )
        {
            argsList.add"-STATIC=" + );
        }
        
        if ( != null ) 
        {   
            argsList.add ( "-VISITOR_EXCEPTION=\'" +  + "\'");
        }
        
        argsList.add"-OUTPUT_DIRECTORY=" + );
        
        argsList.addjjTreeFilename );
        
        getLog().debug("argslist: " + argsList.toString());
        
        return (String[])argsList.toArray(new String[argsList.size()]);
     }
    
     private Set computeStaleGrammars() throws MojoExecutionException
       {
          SuffixMapping mapping = new SuffixMapping".jjt"".jjt" );
          SuffixMapping mappingCAP = new SuffixMapping".JJT"".JJT" );
          SourceInclusionScanner scanner = new StaleSourceScanner );
          scanner.addSourceMappingmapping );
          scanner.addSourceMappingmappingCAP);
          File outDir = new File );
          Set staleSources = new HashSet();
          File sourceDir = new File );
          try
          {
             staleSources.addAllscanner.getIncludedSourcessourceDiroutDir ) );
          }
          catch ( InclusionScanException e )
          {
             throw new MojoExecutionException( "Error scanning source root: \'" + sourceDir + "\' for stale grammars to reprocess."e );
          }
          return staleSources;
       }
    
New to GrepCode? Check out our FAQ X