protected String scanModelAndAddGeneratedFiles()

in maven2-plugins/myfaces-builder-plugin/src/main/java/org/apache/myfaces/buildtools/maven2/plugin/builder/unpack/UnpackMojo.java [232:341]


    protected String scanModelAndAddGeneratedFiles(ArtifactItem artifactItem)
        throws MojoExecutionException
    {
        
        ArrayList exclusions = new ArrayList();
        
        Model model = IOUtils.getModelFromArtifact(artifactItem.getArtifact());
        
        if (model != null)
        {
            for (Iterator it = model.components(); it.hasNext();)
            {
                ComponentMeta component = (ComponentMeta) it.next();

                if (component.getModelId().equals(model.getModelId()))
                {
                    if (component.isGeneratedComponentClass().booleanValue())
                    {
                        getLog().info("Adding Generated: "+ component.getClassName());
                        exclusions.add(StringUtils.replace(
                                component.getClassName(), ".", "/")
                                + ".java");
                    }
                    if (component.isGeneratedTagClass().booleanValue())
                    {
                        getLog().info("Adding Generated: "+ component.getTagClass());
                        exclusions.add(StringUtils.replace(component.getTagClass(),
                                ".", "/")
                                + ".java");
                    }                
                }
            }
            for (Iterator it = model.converters(); it.hasNext();)
            {
                ConverterMeta converter = (ConverterMeta) it.next();

                if (converter.getModelId().equals(model.getModelId()))
                {
                    if (converter.isGeneratedComponentClass().booleanValue())
                    {
                        getLog().info("Adding Generated: "+ converter.getClassName());
                        exclusions.add(StringUtils.replace(
                                converter.getClassName(), ".", "/")
                                + ".java");
                    }
                    if (converter.isGeneratedTagClass().booleanValue())
                    {
                        getLog().info("Adding Generated: "+ converter.getTagClass());
                        exclusions.add(StringUtils.replace(converter.getTagClass(),
                                ".", "/")
                                + ".java");
                    }                
                }
            }
            for (Iterator it = model.validators(); it.hasNext();)
            {
                ValidatorMeta validator = (ValidatorMeta) it.next();

                if (validator.getModelId().equals(model.getModelId()))
                {
                    if (validator.isGeneratedComponentClass().booleanValue())
                    {
                        getLog().info("Adding Generated: "+ validator.getClassName());
                        exclusions.add(StringUtils.replace(
                                validator.getClassName(), ".", "/")
                                + ".java");
                    }
                    if (validator.isGeneratedTagClass().booleanValue())
                    {
                        getLog().info("Adding Generated: "+ validator.getTagClass());
                        exclusions.add(StringUtils.replace(validator.getTagClass(),
                                ".", "/")
                                + ".java");
                    }                
                }
            }
            for (Iterator it = model.behaviors(); it.hasNext();)
            {
                BehaviorMeta behavior = (BehaviorMeta) it.next();

                if (behavior.getModelId().equals(model.getModelId()))
                {
                    if (behavior.isGeneratedComponentClass().booleanValue())
                    {
                        getLog().info("Adding Generated: "+ behavior.getClassName());
                        exclusions.add(StringUtils.replace(
                                behavior.getClassName(), ".", "/")
                                + ".java");
                    }
                }
            }
            
        }
        else
        {
            getLog().info("No myfaces-metadata.xml found on artifact.");
        }

        StringBuffer existingFiles = new StringBuffer();
        for (int i = 0; i < exclusions.size(); i++)
        {
            existingFiles.append(exclusions.get(i));
            if (i != exclusions.size() - 1)
            {
                existingFiles.append(',');
            }
        }
        
        return existingFiles.toString();
    }