// Path: src/main/java/com/adobe/epubcheck/api/Report.java
// public interface Report
// {
//   /**
//    * Called when a violation of the standard is found in epub.
//    *
//    * @param id       Id of the message being reported
//    * @param location location information for the message
//    * @param args     Arguments referenced by the format
//    *                 string for the message.
//    */
//   public void message(MessageId id, EPUBLocation location, Object... args);
// 
//   /**
//    * Called when a violation of the standard is found in epub.
//    *
//    * @param message  The message being reported
//    * @param location location information for the message
//    * @param args     Arguments referenced by the format
//    *                 string for the message.
//    */
//   void message(Message message, EPUBLocation location, Object... args);
// 
//   /**
//    * Called when when a feature is found in epub.
//    *
//    * @param resource name of the resource in the epub zip container that has this feature
//    *                 or null if the feature is on the container level.
//    * @param feature  a keyword to know what kind of feature has been found
//    * @param value    value found
//    */
//   public void info(String resource, FeatureEnum feature, String value);
// 
//   public int getErrorCount();
// 
//   public int getWarningCount();
// 
//   public int getFatalErrorCount();
// 
//   public int getInfoCount();
// 
//   public int getUsageCount();
// 
//   /**
//    * Called to create a report after the checks have been made
//    */
//   public int generate();
// 
//   /**
//    * Called when a report if first created
//    */
//   public void initialize();
// 
//   public void setEpubFileName(String value);
// 
//   public String getEpubFileName();
// 
//   void setCustomMessageFile(String customMessageFileName);
// 
//   String getCustomMessageFile();
// 
//   public int getReportingLevel();
// 
//   public void setReportingLevel(int level);
// 
//   void close();
// 
//   void setOverrideFile(File customMessageFile);
// 
//   MessageDictionary getDictionary();
// }


import com.adobe.epubcheck.api.Report;
import com.adobe.epubcheck.ocf.EncryptionFilter;
import com.adobe.epubcheck.util.EPUBVersion;
import java.io.IOException;
import java.io.InputStream;
import java.util.Hashtable;
import java.util.Vector;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
package com.adobe.epubcheck.ctc;



/**
 *  ===  WARNING  ==========================================<br/>
 *  This class is scheduled to be refactored and integrated<br/>
 *  in another package.<br/>
 *  Please keep changes minimal (bug fixes only) until then.<br/>
 *  ========================================================<br/>
 */
abstract class TextSearch {
    private final Hashtable<String, EncryptionFilter> enc;
    final ZipFile zip;
    final Report report;
    final EPUBVersion version;


// Path: src/main/java/com/adobe/epubcheck/api/Report.java
// public interface Report
// {
//   /**
//    * Called when a violation of the standard is found in epub.
//    *
//    * @param id       Id of the message being reported
//    * @param location location information for the message
//    * @param args     Arguments referenced by the format
//    *                 string for the message.
//    */
//   public void message(MessageId id, EPUBLocation location, Object... args);
// 
//   /**
//    * Called when a violation of the standard is found in epub.
//    *
//    * @param message  The message being reported
//    * @param location location information for the message
//    * @param args     Arguments referenced by the format
//    *                 string for the message.
//    */
//   void message(Message message, EPUBLocation location, Object... args);
// 
//   /**
//    * Called when when a feature is found in epub.
//    *
//    * @param resource name of the resource in the epub zip container that has this feature
//    *                 or null if the feature is on the container level.
//    * @param feature  a keyword to know what kind of feature has been found
//    * @param value    value found
//    */
//   public void info(String resource, FeatureEnum feature, String value);
// 
//   public int getErrorCount();
// 
//   public int getWarningCount();
// 
//   public int getFatalErrorCount();
// 
//   public int getInfoCount();
// 
//   public int getUsageCount();
// 
//   /**
//    * Called to create a report after the checks have been made
//    */
//   public int generate();
// 
//   /**
//    * Called when a report if first created
//    */
//   public void initialize();
// 
//   public void setEpubFileName(String value);
// 
//   public String getEpubFileName();
// 
//   void setCustomMessageFile(String customMessageFileName);
// 
//   String getCustomMessageFile();
// 
//   public int getReportingLevel();
// 
//   public void setReportingLevel(int level);
// 
//   void close();
// 
//   void setOverrideFile(File customMessageFile);
// 
//   MessageDictionary getDictionary();
// }


// Path: src/main/java/com/adobe/epubcheck/ctc/TextSearch.java
import com.adobe.epubcheck.api.Report;
import com.adobe.epubcheck.ocf.EncryptionFilter;
import com.adobe.epubcheck.util.EPUBVersion;
import java.io.IOException;
import java.io.InputStream;
import java.util.Hashtable;
import java.util.Vector;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;

package com.adobe.epubcheck.ctc;



/**
 *  ===  WARNING  ==========================================<br/>
 *  This class is scheduled to be refactored and integrated<br/>
 *  in another package.<br/>
 *  Please keep changes minimal (bug fixes only) until then.<br/>
 *  ========================================================<br/>
 */
abstract class TextSearch {
    private final Hashtable<String, EncryptionFilter> enc;
    final ZipFile zip;
    final Report report;
    final EPUBVersion version;


    public TextSearch(EPUBVersion version, ZipFile zip, Report report)