package ameba.scanner;
import ameba.event.Event;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.InputStream;
/**
* <p>ClassFoundEvent class.</p>
*
* @author icode
*
*/
public class ClassFoundEvent implements Event {
private static final Logger logger = LoggerFactory.getLogger(ClassFoundEvent.class);
boolean accept;
private boolean cacheMode = false;
private ClassInfo classInfo;
/**
* <p>Constructor for ClassFoundEvent.</p>
*
* @param classInfo a {@link ameba.scanner.ClassInfo} object.
* @param cacheMode a boolean.
*/
public ClassFoundEvent(ClassInfo classInfo, boolean cacheMode) {
this.cacheMode = cacheMode;
this.classInfo = classInfo;
}
/**
* <p>Constructor for ClassFoundEvent.</p>
*
* @param classInfo a {@link ameba.scanner.ClassInfo} object.
*/
public ClassFoundEvent(ClassInfo classInfo) {
this.classInfo = classInfo;
}
/**
* <p>getFileStream.</p>
*
* @return a {@link java.io.InputStream} object.
*/
public InputStream getFileStream() {
return classInfo.getFileStream();
}
/**
* <p>accept.</p>
*
* @param accept a {@link ameba.scanner.Acceptable} object.
*/
public void accept(Acceptable<ClassInfo> accept) {
try {
boolean re = accept.accept(classInfo);
if (!this.accept && re)
this.accept = true;
} catch (Exception e) {
logger.error("class accept error", e);
}
}
/**
* <p>isCacheMode.</p>
*
* @return a boolean.
*/
public boolean isCacheMode() {
return cacheMode;
}
}