class CleansingOperator {

	@Branch
	public CleansingResultType dataCleansing(final Receipt receipt) {

		if (receipt.getReceiptIdOption().isNull()
				|| receipt.getUnitSalesOption().isNull()
				|| receipt.getUnitSales() < 0
				|| receipt.getSellingPriceOption().isNull()
				|| receipt.getSellingPrice() < 0) {
			return CleansingResultType.INVALID;
		}
		if (receipt.getIssueDate().getElapsedSeconds() >= parameters
				.getFromIssueDate().getElapsedSeconds()
				&& receipt.getIssueDate().getElapsedSeconds() <= parameters
						.getToIssueDate().getElapsedSeconds()) {
			return CleansingResultType.VALID;
		} else {
			return CleansingResultType.EXCLUDE;
		}

	}

}