public void buildModel()

in maven2-plugins/myfaces-builder-plugin/src/main/java/org/apache/myfaces/buildtools/maven2/plugin/builder/qdox/CompositeComponentModelBuilder.java [476:572]


    public void buildModel(Model model, ModelParams parameters)
    {
        if (parameters.getCompositeComponentDirectories() != null &&
            parameters.getCompositeComponentLibraries() != null &&
            !parameters.getCompositeComponentDirectories().isEmpty() &&
            !parameters.getCompositeComponentLibraries().isEmpty())
        {
            for (Iterator it = parameters.getCompositeComponentDirectories().iterator(); it.hasNext();)
            {
                Object odir = it.next();
                File dir = null;
                if (odir instanceof File)
                {
                    dir = (File) odir;
                }
                else
                {
                    dir = new File(odir.toString());
                }
                if (dir != null && dir.exists())
                {
                    for (Iterator it2 = parameters.getCompositeComponentLibraries().entrySet().iterator(); 
                         it2.hasNext();)
                    {
                        Map.Entry entry = (Map.Entry) it2.next();
                        String shortTagLibraryName = (String) entry.getKey();
                        String libraryName = (String) entry.getValue();
                        File dirToScan = new File(dir,libraryName);
                        if (dirToScan != null && dirToScan.exists() && dirToScan.isDirectory() )
                        {
                             
                             final String[] fileExtensions = parameters.getCompositeComponentFileExtensions() != null ? 
                                     parameters.getCompositeComponentFileExtensions().split(" ") : new String[]{".xhtml"};
                             FileFilter fileFilter = new FileFilter()
                             {
                                 public boolean accept(File file)
                                 {
                                     for (String extension : fileExtensions)
                                     {
                                         if (file.getName().endsWith(extension))
                                         {
                                             return true;
                                         }
                                     }
                                     return false;
                                 }
                             };
                             File[] files = dirToScan.listFiles(fileFilter);
                             if (files != null)
                             {
                                 for (int i = 0; i < files.length; i++)
                                 {
                                     String fileExtension = null;
                                     for (String extension : fileExtensions)
                                     {
                                         if (files[i].getName().endsWith(extension))
                                         {
                                             fileExtension = extension;
                                             break;
                                         }
                                     }
                                     String componentName = files[i].getName().substring(
                                                 0, files[i].getName().length()-fileExtension.length());
                                     try
                                    {
                                        doParseMetadata(model, files[i].toURL(), 
                                                shortTagLibraryName, libraryName, files[i].getName(),
                                                componentName, libraryName+'.'+ componentName);
                                    }
                                    catch (MalformedURLException e)
                                    {
                                        log.error("Error while processing composite component: "+
                                                libraryName+'/'+componentName, e);
                                    }
                                    catch (IOException e)
                                    {
                                        log.error("Error while processing composite component: "+
                                                libraryName+'/'+componentName, e);
                                    }
                                    catch (SAXException e)
                                    {
                                        log.error("Error while processing composite component: "+
                                                libraryName+'/'+componentName, e);
                                    }
                                    catch (ParserConfigurationException e)
                                    {
                                        log.error("Error while processing composite component: "+
                                                libraryName+'/'+componentName, e);
                                    }
                                 }
                             }
                        }
                    }
                }
            }
        }
    }