Subversion Repositories XServices

Rev

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

Rev Author Line No. Line
92 brianR 1
package net.brutex.xservices.types;
2
 
3
import java.io.File;
4
import java.io.FileFilter;
5
import java.util.ArrayList;
6
import java.util.List;
7
 
8
import javax.xml.bind.annotation.XmlElement;
9
import javax.xml.bind.annotation.XmlRootElement;
10
 
11
@XmlRootElement
12
public class FileInfoListType {
13
 
14
	private List<FileInfoType> list = new ArrayList<FileInfoType>();
15
 
16
	public void setDirectory(File dir, final boolean withDirectories, final boolean withFiles, int depth) {
17
		if(depth <=0) return;
18
 
19
		File[] files = dir.listFiles(new FileFilter() {
20
 
21
			public boolean accept(File pathname) {
22
				if(!withFiles && !pathname.isFile()) return false;
23
				return true;
24
			}
25
		});
26
		if(files==null) return;
27
		for( File e : files) {
28
			if(e.isDirectory()) setDirectory(e, withDirectories, withFiles, depth-1);
29
			if( (withDirectories && e.isDirectory())
30
					|| withFiles && e.isFile()) {
31
				this.list.add(new FileInfoType(e));
32
			}
33
		}
34
	}
35
 
36
	public void setDirectory(String dir, final boolean withDirectories, final boolean withFiles, int depth) {
37
		setDirectory( (new File(dir)), withDirectories, withFiles, depth);
38
	}
39
 
40
 
41
 
42
	@XmlElement(name="FileInfoList")
43
	public List<FileInfoType> getFiles() {
44
		return list;
45
	}
46
 
47
}