}
public static void processSolutionStructure( final Element parentNode, final ISolutionFile targetFile,
final ISolutionFilter solutionFilter, final ISolutionAttributeContributor contributor,
final int actionOperation ) {
ISolutionFilter sFilter = solutionFilter == null ? DEFAULT_FILTER : solutionFilter;
if ( targetFile.isDirectory() ) {
if ( !SolutionReposHelper.ignoreDirectories.contains( targetFile.getFileName() )
&& sFilter.keepFile( targetFile, actionOperation ) ) {
Element childNode =
parentNode.addElement( SolutionReposHelper.ENTRY_NODE_NAME ).addAttribute(
SolutionReposHelper.TYPE_ATTR_NAME, SolutionReposHelper.DIRECTORY_ATTR ).addAttribute(
SolutionReposHelper.NAME_ATTR_NAME, targetFile.getFileName() );
contributor.contributeAttributes( targetFile, childNode );
ISolutionFile[] files = targetFile.listFiles();
for ( ISolutionFile file : files ) {
SolutionReposHelper.processSolutionStructure( childNode, file, actionOperation );
}
}
} else {
if ( !SolutionReposHelper.ignoreFiles.contains( targetFile.getFileName() )
&& sFilter.keepFile( targetFile, actionOperation ) ) {
Element childNode =
parentNode.addElement( SolutionReposHelper.ENTRY_NODE_NAME ).addAttribute(
SolutionReposHelper.TYPE_ATTR_NAME, SolutionReposHelper.FILE_ATTR ).addAttribute(
SolutionReposHelper.NAME_ATTR_NAME, targetFile.getFileName() );
contributor.contributeAttributes( targetFile, childNode );