/*
 * Created on 26-Apr-2006
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package uk.ac.roe.wfau;

import java.io.File;
import java.io.FilenameFilter;

import java.io.*;

public class DirList
{ 
    String survey=null;
    File file=null;

    public void setSurvey (String survey) {
        this.survey=survey;
    }
        public static void main(String[] args) 
        { 
            
                DirList dl=new DirList("u:/scratch/jakarta-tomcat-4.1.30/webapps/ssa/ukidssr1"); 
                dl.setSurvey("las");
                String [] ls=dl.getDirList();
                for (int i=0;i<ls.length;i++) {
                    System.out.println(ls[i]);
                }
                dl.setSurvey("lass");
                 ls=dl.getDirList();
                for (int i=0;i<ls.length;i++) {
                    System.out.println(ls[i]);
                }
                
                Object [] externalSurveys = new Object [2];
                String [] bestDR2 = {"SDSS DR2","BESTDR2","photoobj","SourceXDR2PhotoObj","objID"};
                String [] twomassPSC={"2MASS point source catalogue","TWOMASS","twomass_psc","SourceXtwomass_psc","pts_key"};
                externalSurveys[0]=new String [] {"SDSS DR2","BESTDR2","photoobj","SourceXDR2PhotoObj","objID"};
                externalSurveys[1]=twomassPSC;
                for (int j=0;j<ls.length;j++) {
                for (int i=0;i<externalSurveys.length;i++) {
                    String [] bits=(String [])externalSurveys[i];
                    if (ls[j].matches("(?i).*"+bits[3]+".*")) {
                        System.out.println(ls[j]+" "+bits[3]);
                    }
                }
                }
                
                
        } 


        public DirList(String d,String s) 
        { 
                file = new File(d);
                survey=s;
                /*String [] list=getDirList(file,survey); 
                for (int i=0;i<list.length;i++) {
                    System.out.println(list[i]);
                }*/
        } 
 
        public DirList(String d) 
        { 
                file = new File(d); 
                /*String [] list=getDirList(file,survey); 
                for (int i=0;i<list.length;i++) {
                    System.out.println(list[i]);
                }*/
        } 
        
        public  String [] getDirList() 
        { 
                // Create a list of files using your own filename filter. 
                //File[] list     = file.listFiles(new ImageFilenameFilter()); 
                String [] fileList = file.list(new xSourceFilter(survey));
                return fileList;
                /* for(int i=0; i<list.length; i++) 
                { 
                        if (list[i].isDirectory()) 
                        { 
                                displayFiles(list[i]); 
                        } 
                        else 
                        { 
                                System.out.println(list[i].toString()); 
                        } 
                } */
        } 


        public class xSourceFilter implements FilenameFilter 
        { 
            String survey;
            public xSourceFilter(String survey) {
                this.survey=survey;
            }
                // Create conditions for the files you want to use. 
                public boolean accept(File dir, String fn) 
                { 
                        File f = new File(dir, fn); 
                        if ( fn.matches(".*short.*")//f.isDirectory() 
                        && fn.matches("(?i).*sourceX.*") 
                        && fn.matches("(?i).*"+survey+".*") )
                        //|| fn.endsWith(".gif")) 
                        { 
                                return true; 
                        } 
                        return false; 
                } 
        } 



} 


