package eu.dnetlib.iis.wf.importer.content.approver;
import org.apache.hadoop.mapreduce.Counter;
/**
* Wrapper of {@link ContentApprover}. It counts number of
* invalid contents
*
* @author madryk
*/
public class InvalidCountableContentApproverWrapper implements ContentApprover {
private final ContentApprover contentApprover;
private final Counter invalidContentCounter;
//------------------------ CONSTRUCTORS --------------------------
/**
* Default constructor
*
* @param contentApprover - internal content approver which determines if this wrapper should approve content
* @param invalidContentCounter - counter that will be increased when wrapper will encounter invalid content
*/
public InvalidCountableContentApproverWrapper(ContentApprover contentApprover, Counter invalidContentCounter) {
this.contentApprover = contentApprover;
this.invalidContentCounter = invalidContentCounter;
}
//------------------------ LOGIC --------------------------
/**
* Returns true if internal {@link ContentApprover} approves the given content.
* If content is not approved, then it also increase invalid content counter.
*/
@Override
public boolean approve(byte[] content) {
boolean result = contentApprover.approve(content);
if (!result) {
invalidContentCounter.increment(1);
}
return result;
}
}