public void generate()

in modello-plugins/modello-plugin-store/src/main/java/org/apache/archiva/redback/components/modello/plugin/store/StoreModelloGenerator.java [45:93]


    public void generate( Model model, Properties properties )
        throws ModelloException
    {
        initialize( model, properties );


        // ----------------------------------------------------------------------
        // Initialize the Velocity context
        // ----------------------------------------------------------------------

        Context context = new VelocityContext();

        context.put( "version", getGeneratedVersion() );

        context.put( "package", model.getDefaultPackageName( false, getGeneratedVersion() ) );

        context.put( "metadataId", StoreClassMetadata.ID );

        context.put( "model", model );

        // ----------------------------------------------------------------------
        // Generate the code
        // ----------------------------------------------------------------------

        String packageName = model.getDefaultPackageName( false, getGeneratedVersion() );

        File packageFile = new File( getOutputDirectory(), packageName.replace( '.', File.separatorChar ) );

        File interfaceFile = new File( packageFile, model.getName() + "Store.java" );

        File exceptionFile = new File( packageFile, model.getName() + "StoreException.java" );

        if ( !interfaceFile.getParentFile().exists() )
        {
            if ( !interfaceFile.getParentFile().mkdirs() )
            {
                throw new ModelloException( "Error while creating parent directories for '" + interfaceFile.getAbsolutePath() + "'." );
            }
        }

        String interfaceTemplate = "org/apache/archiva/redback/components/modello/plugin/store/templates/Store.vm";

        String exceptionTemplate =
            "org/apache/archiva/redback/components/modello/plugin/store/templates/StoreException.vm";

        writeTemplate( interfaceTemplate, interfaceFile, context );

        writeTemplate( exceptionTemplate, exceptionFile, context );
    }