parent
9175a7911f
commit
6ccd2a91a3
@ -0,0 +1,74 @@
|
|||||||
|
package info.bukova.isspst.filters;
|
||||||
|
|
||||||
|
import info.bukova.isspst.DateTimeUtils;
|
||||||
|
import info.bukova.isspst.StringUtils;
|
||||||
|
import info.bukova.isspst.data.Invoicing;
|
||||||
|
import info.bukova.isspst.data.Requirement;
|
||||||
|
import info.bukova.isspst.data.Workgroup;
|
||||||
|
|
||||||
|
import org.hamcrest.Description;
|
||||||
|
import org.hamcrest.Factory;
|
||||||
|
import org.hamcrest.Matcher;
|
||||||
|
import org.hamcrest.TypeSafeMatcher;
|
||||||
|
|
||||||
|
public class InvoicingFilter implements Filter<Invoicing>
|
||||||
|
{
|
||||||
|
|
||||||
|
private Invoicing condition;
|
||||||
|
|
||||||
|
public InvoicingFilter(Invoicing cond)
|
||||||
|
{
|
||||||
|
this.condition = cond;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class InvoicingMatcher extends TypeSafeMatcher<Invoicing>
|
||||||
|
{
|
||||||
|
|
||||||
|
private Invoicing condition;
|
||||||
|
|
||||||
|
public InvoicingMatcher(Invoicing cond)
|
||||||
|
{
|
||||||
|
this.condition = cond;
|
||||||
|
|
||||||
|
if (condition.getRequirement() == null) {
|
||||||
|
condition.setRequirement(new Requirement());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void describeTo(Description desc)
|
||||||
|
{
|
||||||
|
desc.appendText("Invoicing matches");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean matchesSafely(Invoicing item)
|
||||||
|
{
|
||||||
|
boolean foundNumser = StringUtils.isEqualForFilter(item.getRequirement().getNumser(), condition.getRequirement().getNumser());
|
||||||
|
boolean foundReqDate = DateTimeUtils.isEqualByDateForFilter(item.getRequirement().getReqDate(), condition.getRequirement().getReqDate());
|
||||||
|
boolean foundCenter = Workgroup.isEqualByWorkgroupForFilter(item.getRequirement().getCentre(), condition.getRequirement().getCentre());
|
||||||
|
boolean foundWorkgroup = Workgroup.isEqualByWorkgroupForFilter(item.getRequirement().getWorkgroup(), condition.getRequirement().getWorkgroup());
|
||||||
|
boolean foundDescription = StringUtils.isEqualForFilter(item.getRequirement().getDescription(), condition.getRequirement().getDescription());
|
||||||
|
return (foundNumser && foundReqDate && foundCenter && foundDescription && foundWorkgroup);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Factory
|
||||||
|
public static Matcher<Invoicing> matchBuilding(Invoicing building)
|
||||||
|
{
|
||||||
|
return new InvoicingMatcher(building);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public InvoicingMatcher matcher()
|
||||||
|
{
|
||||||
|
return new InvoicingMatcher(condition);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String queryString()
|
||||||
|
{
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue