Changeset 5735 for CMDIValidator
- Timestamp:
- 10/20/14 16:26:44 (10 years ago)
- Location:
- CMDIValidator/trunk/cmdi-validator-tool
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
CMDIValidator/trunk/cmdi-validator-tool/pom.xml
r5387 r5735 61 61 <artifactId>humanize-slim</artifactId> 62 62 <version>1.1.5</version> 63 </dependency> 64 <dependency> 65 <groupId>commons-io</groupId> 66 <artifactId>commons-io</artifactId> 67 <version>2.4</version> 63 68 </dependency> 64 69 </dependencies> -
CMDIValidator/trunk/cmdi-validator-tool/src/main/java/eu/clarin/cmdi/validator/tool/CMDIValidatorTool.java
r5402 r5735 20 20 21 21 import java.io.File; 22 import java.io.FileFilter; 22 23 import java.io.PrintWriter; 23 24 import java.util.Locale; … … 25 26 import java.util.concurrent.atomic.AtomicInteger; 26 27 import java.util.concurrent.atomic.AtomicLong; 27 28 28 import net.java.truevfs.access.TFile; 29 29 import net.java.truevfs.access.TVFS; … … 38 38 import org.apache.commons.cli.Options; 39 39 import org.apache.commons.cli.ParseException; 40 import org.apache.commons.io.filefilter.WildcardFileFilter; 40 41 import org.slf4j.Logger; 41 42 import org.slf4j.LoggerFactory; … … 68 69 private static final char OPT_NO_SCHEMATRON = 'S'; 69 70 private static final char OPT_SCHEMATRON_FILE = 's'; 71 private static final char OPT_FILENAME_FILTER = 'F'; 70 72 private static final char OPT_CHECK_PIDS = 'p'; 71 73 private static final char OPT_CHECK_AND_RESOLVE_PIDS = 'P'; … … 88 90 boolean disableSchematron = false; 89 91 File schematronFile = null; 92 FileFilter fileFilter = null; 90 93 boolean checkPids = false; 91 94 boolean checkAndResolvePids = false; … … 168 171 schematronFile = new File(name); 169 172 } 173 if (line.hasOption(OPT_FILENAME_FILTER)) { 174 String wildcard = line.getOptionValue(OPT_FILENAME_FILTER); 175 if ((wildcard == null) || wildcard.isEmpty()) { 176 throw new ParseException("invalid argument for -" + 177 OPT_FILENAME_FILTER); 178 } 179 try { 180 fileFilter = new WildcardFileFilter(wildcard); 181 } catch (IllegalArgumentException e) { 182 throw new ParseException("invalid argument for -" + 183 OPT_FILENAME_FILTER); 184 } 185 } 186 170 187 if (line.hasOption(OPT_CHECK_PIDS)) { 171 188 checkPids = true; … … 223 240 if (estimate && logger.isInfoEnabled()) { 224 241 logger.debug("counting files ..."); 225 totalFileCount = countFiles(archive );242 totalFileCount = countFiles(archive, fileFilter); 226 243 } 227 244 … … 243 260 if (disableSchematron) { 244 261 builder.disableSchematron(); 262 } 263 if (fileFilter != null) { 264 builder.fileFilter(fileFilter); 245 265 } 246 266 … … 438 458 .create(OPT_SCHEMATRON_FILE)); 439 459 options.addOptionGroup(g3); 460 options.addOption(OptionBuilder 461 .withDescription("only process filenames matching a wildcard") 462 .hasArg() 463 .withArgName("WILDCARD") 464 .withLongOpt("file-filter") 465 .create(OPT_FILENAME_FILTER)); 440 466 OptionGroup g4 = new OptionGroup(); 441 467 g4.addOption(OptionBuilder … … 452 478 453 479 454 private static final int countFiles(TFile directory) { 480 private static final int countFiles(TFile directory, 481 FileFilter fileFilter) { 455 482 int count = 0; 456 483 final TFile[] entries = directory.listFiles(); … … 458 485 for (TFile entry : entries) { 459 486 if (entry.isDirectory()) { 460 count += countFiles(entry );487 count += countFiles(entry, fileFilter); 461 488 } else { 489 if ((fileFilter != null) && !fileFilter.accept(entry)) { 490 continue; 491 } 462 492 count++; 463 493 }
Note: See TracChangeset
for help on using the changeset viewer.