Subversion Repositories XServices

Rev

Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

package net.brutex.xservices.types;

import java.io.File;
import java.io.FileFilter;
import java.util.ArrayList;
import java.util.List;

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class FileInfoListType {
        
        private List<FileInfoType> list = new ArrayList<FileInfoType>();
        
        public void setDirectory(File dir, final boolean withDirectories, final boolean withFiles, int depth) {
                if(depth <=0) return;
                
                File[] files = dir.listFiles(new FileFilter() {
                        
                        public boolean accept(File pathname) {
                                if(!withFiles && !pathname.isFile()) return false;
                                return true;
                        }
                });
                if(files==null) return;
                for( File e : files) {
                        if(e.isDirectory()) setDirectory(e, withDirectories, withFiles, depth-1);
                        if( (withDirectories && e.isDirectory())
                                        || withFiles && e.isFile()) {
                                this.list.add(new FileInfoType(e));
                        }       
                }
        }
        
        public void setDirectory(String dir, final boolean withDirectories, final boolean withFiles, int depth) {
                setDirectory( (new File(dir)), withDirectories, withFiles, depth);
        }
        
        
        
        @XmlElement(name="FileInfoList")
        public List<FileInfoType> getFiles() {
                return list;
        }

}