Mercurial > hg > openjdk > jdk6 > langtools
changeset 120:e5b59e1e2b1e
7003006: add option to list directory in deterministic order
Reviewed-by: jjg
author | jjh |
---|---|
date | Sun, 27 Mar 2011 09:31:59 -0700 |
parents | f9cffe4fc4c6 |
children | 8eb53e0c5dc9 |
files | src/share/classes/com/sun/tools/javac/file/JavacFileManager.java |
diffstat | 1 files changed, 24 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/classes/com/sun/tools/javac/file/JavacFileManager.java Sun Mar 27 09:31:58 2011 -0700 +++ b/src/share/classes/com/sun/tools/javac/file/JavacFileManager.java Sun Mar 27 09:31:59 2011 -0700 @@ -25,6 +25,7 @@ package com.sun.tools.javac.file; +import java.util.Comparator; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileNotFoundException; @@ -110,6 +111,20 @@ protected boolean mmappedIO; protected boolean ignoreSymbolFile; + protected enum SortFiles implements Comparator<File> { + FORWARD { + public int compare(File f1, File f2) { + return f1.getName().compareTo(f2.getName()); + } + }, + REVERSE { + public int compare(File f1, File f2) { + return -f1.getName().compareTo(f2.getName()); + } + }; + }; + protected SortFiles sortFiles; + /** * Register a Context.Factory to create a JavacFileManager. */ @@ -152,6 +167,12 @@ mmappedIO = options.get("mmappedIO") != null; ignoreSymbolFile = options.get("ignore.symbol.file") != null; + + String sf = options.get("sortFiles"); + if (sf != null) { + sortFiles = (sf.equals("reverse") ? SortFiles.REVERSE : SortFiles.FORWARD); + } + } public JavaFileObject getFileForInput(String name) { @@ -293,6 +314,9 @@ if (files == null) return; + if (sortFiles != null) + Arrays.sort(files, sortFiles); + for (File f: files) { String fname = f.getName(); if (f.isDirectory()) {