@Override public Path<Boolean> createBooleanPath(PathMetadata metadata) { return Expressions.booleanPath(metadata); }
@Test public void complex() { BooleanPath a = Expressions.booleanPath("a"); BooleanPath b = Expressions.booleanPath("d"); BooleanPath c = Expressions.booleanPath("c"); BooleanPath d = Expressions.booleanPath("d"); Predicate complex = a.or(b).and(c.or(d)); assertEquals("(a || d) && (c || d)", complex.accept(ToStringVisitor.DEFAULT, templates)); }
@Test public void booleanPathString() { assertEquals("variable", Expressions.booleanPath("variable").toString()); }
@Test public void booleanPathPathOfQString() { assertEquals("variable.property", Expressions.booleanPath(Expressions.path(Object.class, "variable"), "property").toString()); }
@Test public void accept() { BooleanBuilder builder = new BooleanBuilder(); builder.and(first); builder.or(Expressions.booleanPath("condition")); assertEquals("true || condition", builder.accept(ToStringVisitor.DEFAULT, Templates.DEFAULT)); }
@Test public void with_unknown_properties() { QBean<Entity> beanProjection = Projections.bean(entity, name, age, Expressions.booleanPath("unknown")); Entity bean = beanProjection.newInstance("Fritz", 30, true); assertEquals("Fritz", bean.getName()); assertEquals(30, bean.getAge()); }
@Test public void toString_() { BooleanBuilder builder = new BooleanBuilder().and(first); assertEquals("true", builder.toString()); builder.or(Expressions.booleanPath("condition")); assertEquals("true || condition", builder.toString()); }
@Override public Path<Boolean> createBooleanPath(PathMetadata metadata) { return Expressions.booleanPath(metadata); }
@Test public void booleanTemplate() { assertSerialized(Expressions.booleanPath("b").eq(Expressions.TRUE), "b = 1"); assertSerialized(Expressions.booleanPath("b").eq(Expressions.FALSE), "b = 0"); query.setUseLiterals(true); query.where(Expressions.booleanPath("b").eq(true)); assertTrue(query.toString(), query.toString().endsWith("where b = 1")); }
@Test @Override public void booleanTemplate() { assertSerialized(Expressions.booleanPath("b").eq(Expressions.TRUE), "b = true"); assertSerialized(Expressions.booleanPath("b").eq(Expressions.FALSE), "b = false"); query.setUseLiterals(true); query.where(Expressions.booleanPath("b").eq(true)); assertTrue(query.toString(), query.toString().endsWith("where b = true")); }
@Test @Override public void booleanTemplate() { assertSerialized(Expressions.booleanPath("b").eq(Expressions.TRUE), "b = true"); assertSerialized(Expressions.booleanPath("b").eq(Expressions.FALSE), "b = false"); query.setUseLiterals(true); query.where(Expressions.booleanPath("b").eq(true)); assertTrue(query.toString(), query.toString().endsWith("where b = true")); }
protected void onCreateQuery(JPQLQuery<?> query) { Class<T> domainClass = getDomainClass(); if (ClassUtils.isAssignable(LogicDeleteable.class, domainClass)) { BeanPath<T> logicDeleteBeanPath = new BeanPath<>(domainClass, StringUtils.uncapitalize(domainClass.getSimpleName())); BooleanExpression deletedPropertyIsFalse = Expressions.booleanPath(PathMetadataFactory.forProperty(logicDeleteBeanPath, "deleted")) .isFalse(); query.where(deletedPropertyIsFalse); } if (multiTenant) { if (ClassUtils.isAssignable(MultiTenant.class, domainClass)) { Tenant tenant = multiTenantAware.getCurrentTenant(); if (tenant != null) { BeanPath<T> orgSupportBeanPath = new BeanPath<>(domainClass, StringUtils.uncapitalize(domainClass.getSimpleName())); BooleanExpression eqTenant = Expressions.path(Tenant.class, orgSupportBeanPath, "tenant").eq(tenant); query.where(eqTenant); } } } }