| 1 21 package proguard.io; 22 23 import java.io.*; 24 25 32 public class FilteredDataEntryWriter implements DataEntryWriter 33 { 34 private DataEntryFilter dataEntryFilter; 35 private DataEntryWriter acceptedDataEntryWriter; 36 private DataEntryWriter rejectedDataEntryWriter; 37 38 39 47 public FilteredDataEntryWriter(DataEntryFilter dataEntryFilter, 48 DataEntryWriter acceptedDataEntryWriter) 49 { 50 this(dataEntryFilter, acceptedDataEntryWriter, null); 51 } 52 53 54 65 public FilteredDataEntryWriter(DataEntryFilter dataEntryFilter, 66 DataEntryWriter acceptedDataEntryWriter, 67 DataEntryWriter rejectedDataEntryWriter) 68 { 69 this.dataEntryFilter = dataEntryFilter; 70 this.acceptedDataEntryWriter = acceptedDataEntryWriter; 71 this.rejectedDataEntryWriter = rejectedDataEntryWriter; 72 } 73 74 75 77 public OutputStream getOutputStream(DataEntry dataEntry) throws IOException 78 { 79 return getOutputStream(dataEntry, null); 80 } 81 82 83 public OutputStream getOutputStream(DataEntry dataEntry, 84 Finisher finisher) throws IOException 85 { 86 DataEntryWriter dataEntryWriter = dataEntryFilter.accepts(dataEntry) ? 88 acceptedDataEntryWriter : 89 rejectedDataEntryWriter; 90 91 return dataEntryWriter != null ? 93 dataEntryWriter.getOutputStream(dataEntry, finisher) : 94 null; 95 } 96 97 98 public void close() throws IOException 99 { 100 if (acceptedDataEntryWriter != null) 101 { 102 acceptedDataEntryWriter.close(); 103 acceptedDataEntryWriter = null; 104 } 105 106 if (rejectedDataEntryWriter != null) 107 { 108 rejectedDataEntryWriter.close(); 109 rejectedDataEntryWriter = null; 110 } 111 } 112 } 113 | Popular Tags |