Ignore:
Timestamp:
2012-07-26T11:04:08+12:00 (12 years ago)
Author:
sjm84
Message:

Analyse xsl files in advance to find out what metadata we need

File:
1 edited

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone3/src/java/org/greenstone/gsdl3/util/GSFile.java

    r25727 r26026  
    3232import java.nio.channels.FileChannel;
    3333import java.util.ArrayList;
     34import java.util.Collection;
    3435
    3536import org.apache.log4j.*;
     37import org.greenstone.util.GlobalProperties;
    3638
    3739/**
     
    534536    }
    535537
     538    public static ArrayList<File> getAllXSLFiles(String interfaceName, String siteName)
     539    {
     540        ArrayList<File> filesToReturn = new ArrayList<File>();
     541       
     542        File siteCollectionDir = new File(GSFile.siteHome(GlobalProperties.getGSDL3Home(), siteName) + File.separator + "collect");
     543        if(siteCollectionDir.exists() && siteCollectionDir.isDirectory())
     544        {
     545            File[] collections = siteCollectionDir.listFiles();
     546           
     547            for(File collection : collections)
     548            {
     549                if(collection.isDirectory())
     550                {
     551                    File collectionTranformDir = new File(collection.getAbsolutePath() + File.separator + "transform");
     552                    if(collectionTranformDir.exists() && collectionTranformDir.isDirectory())
     553                    {
     554                        filesToReturn.addAll(getXSLFilesFromDirectoryRecursive(collectionTranformDir));
     555                    }
     556                }
     557            }
     558        }
     559       
     560        filesToReturn.addAll(getXSLFilesFromDirectoryRecursive(new File(GSFile.interfaceHome(GlobalProperties.getGSDL3Home(), interfaceName) + File.separator + "transform")));
     561       
     562        return filesToReturn;
     563    }
     564
     565    protected static ArrayList<File> getXSLFilesFromDirectoryRecursive(File directory)
     566    {
     567        ArrayList<File> filesToReturn = new ArrayList<File>();
     568       
     569        if(!directory.isDirectory())
     570        {
     571            return filesToReturn;
     572        }
     573       
     574        File[] currentFiles = directory.listFiles();
     575        for(File current : currentFiles)
     576        {
     577            if(current.isDirectory())
     578            {
     579                filesToReturn.addAll(GSFile.getXSLFilesFromDirectoryRecursive(current));
     580            }
     581            else if(current.getName().endsWith(".xsl"))
     582            {
     583                filesToReturn.add(current);
     584            }
     585        }
     586       
     587        return filesToReturn;
     588    }
    536589}
Note: See TracChangeset for help on using the changeset viewer.