1 16 package org.apache.commons.net.ftp.parser; 17 18 import org.apache.commons.net.ftp.FTPFile; 19 import org.apache.commons.net.ftp.FTPFileEntryParser; 20 import org.apache.commons.net.ftp.FTPFileEntryParserImpl; 21 22 31 public class CompositeFileEntryParser extends FTPFileEntryParserImpl 32 { 33 private final FTPFileEntryParser[] ftpFileEntryParsers; 34 private FTPFileEntryParser cachedFtpFileEntryParser; 35 36 public CompositeFileEntryParser(FTPFileEntryParser[] ftpFileEntryParsers) 37 { 38 super(); 39 40 this.cachedFtpFileEntryParser = null; 41 this.ftpFileEntryParsers = ftpFileEntryParsers; 42 } 43 44 public FTPFile parseFTPEntry(String listEntry) 45 { 46 if (cachedFtpFileEntryParser != null) 47 { 48 FTPFile matched = cachedFtpFileEntryParser.parseFTPEntry(listEntry); 49 if (matched != null) 50 { 51 return matched; 52 } 53 } 54 else 55 { 56 for (int iterParser=0; iterParser < ftpFileEntryParsers.length; iterParser++) 57 { 58 FTPFileEntryParser ftpFileEntryParser = ftpFileEntryParsers[iterParser]; 59 60 FTPFile matched = ftpFileEntryParser.parseFTPEntry(listEntry); 61 if (matched != null) 62 { 63 cachedFtpFileEntryParser = ftpFileEntryParser; 64 return matched; 65 } 66 } 67 } 68 return null; 69 } 70 } 71 | Popular Tags |