package com.sleepycat.je.log; import java.io.File; import java.io.FilenameFilter; import java.util.StringTokenizer; import de.ovgu.cide.jakutil.*; /** * JEFileFilters are used for listing je files. */ class JEFileFilter implements FilenameFilter { String[] suffix; JEFileFilter( String[] suffix){ this.suffix=suffix; } private boolean matches( String fileSuffix){ for (int i=0; i < suffix.length; i++) { if (fileSuffix.equalsIgnoreCase(suffix[i])) { return true; } } return false; } /** * A JE file has to be of the format nnnnnnnn.suffix. */ public boolean accept( File dir, String name){ boolean ok=false; StringTokenizer tokenizer=new StringTokenizer(name,"."); int nTokens=tokenizer.countTokens(); if (nTokens == 2 || nTokens == 3) { boolean hasVersion=(nTokens == 3); String fileNumber=tokenizer.nextToken(); String fileSuffix="." + tokenizer.nextToken(); String fileVersion=(hasVersion ? tokenizer.nextToken() : null); if ((fileNumber.length() == 8) && matches(fileSuffix)) { try { Integer.parseInt(fileNumber,16); ok=true; } catch ( NumberFormatException e) { ok=false; } if (hasVersion) { try { Integer.parseInt(fileVersion); ok=true; } catch ( NumberFormatException e) { ok=false; } } } } return ok; } }