@Test public void with_class_and_map_using_fields() { Map<String,Expression<?>> bindings = new LinkedHashMap<String,Expression<?>>(); bindings.put("name", name); bindings.put("age", age); bindings.put("married", married); QBean<Entity> beanProjection = new QBean<Entity>(Entity.class, true, bindings); Entity bean = beanProjection.newInstance("Fritz", 30, true); assertEquals("Fritz", bean.name); assertEquals(30, bean.age); assertEquals(true, bean.married); }
@Test public void with_class_and_map() { Map<String,Expression<?>> bindings = new LinkedHashMap<String,Expression<?>>(); bindings.put("name", name); bindings.put("age", age); bindings.put("married", married); QBean<Entity> beanProjection = new QBean<Entity>(Entity.class, bindings); Entity bean = beanProjection.newInstance("Fritz", 30, true); assertEquals("Fritz", bean.getName()); assertEquals(30, bean.getAge()); assertEquals(true, bean.isMarried()); }
@Test public void fieldsClassOfTExpressionOfQArray() { PathBuilder<Entity> entity = new PathBuilder<Entity>(Entity.class, "entity"); QBean<Entity> beanProjection = Projections.fields(Entity.class, entity.getNumber("cId", Integer.class), entity.getNumber("eId", Integer.class)); assertEquals(Entity.class, beanProjection.newInstance(1, 2).getClass()); }
@Test public void beanClassOfTExpressionOfQArray() { PathBuilder<Entity> entity = new PathBuilder<Entity>(Entity.class, "entity"); QBean<Entity> beanProjection = Projections.bean(Entity.class, entity.getNumber("cId", Integer.class), entity.getNumber("eId", Integer.class)); assertEquals(Entity.class, beanProjection.newInstance(1, 2).getClass()); }
@Test public void with_path_and_exprs_using_fields() { QBean<Entity> beanProjection = Projections.fields(entity, name, age, married); Entity bean = beanProjection.newInstance("Fritz", 30, true); assertEquals("Fritz", bean.name); assertEquals(30, bean.age); assertEquals(true, bean.married); }
@Test public void with_class_and_exprs_using_fields() { QBean<Entity> beanProjection = new QBean<Entity>(Entity.class, true, name, age, married); Entity bean = beanProjection.newInstance("Fritz", 30, true); assertEquals("Fritz", bean.name); assertEquals(30, bean.age); assertEquals(true, bean.married); }
@Test public void field_access() { PathBuilder<Entity> entity = new PathBuilder<Entity>(Entity.class, "entity"); QBean<Entity> beanProjection = new QBean<Entity>(Entity.class, true, entity.getNumber("cId",Integer.class), entity.getNumber("eId", Integer.class)); Entity bean = beanProjection.newInstance(1,2); assertEquals(Integer.valueOf(1), bean.getcId()); assertEquals(Integer.valueOf(2), bean.geteId()); }
@Test public void property_access() { PathBuilder<Entity> entity = new PathBuilder<Entity>(Entity.class, "entity"); QBean<Entity> beanProjection = new QBean<Entity>(Entity.class, entity.getNumber("cId",Integer.class), entity.getNumber("eId", Integer.class)); Entity bean = beanProjection.newInstance(1,2); assertEquals(Integer.valueOf(1), bean.getcId()); assertEquals(Integer.valueOf(2), bean.geteId()); }
@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 supertype_population() { QBean<SubEntity> beanProjection = new QBean<SubEntity>(SubEntity.class, true, name, age, married); SubEntity bean = beanProjection.newInstance("Fritz", 30, true); assertEquals("Fritz", bean.getName()); assertEquals(30, bean.getAge()); assertEquals(true, bean.isMarried()); }
@Test public void with_path_and_exprs() { QBean<Entity> beanProjection = Projections.bean(entity, name, age, married); Entity bean = beanProjection.newInstance("Fritz", 30, true); assertEquals("Fritz", bean.getName()); assertEquals(30, bean.getAge()); assertEquals(true, bean.isMarried()); }
@Test public void with_class_and_exprs() { QBean<Entity> beanProjection = new QBean<Entity>(Entity.class, name, age, married); Entity bean = beanProjection.newInstance("Fritz", 30, true); assertEquals("Fritz", bean.getName()); assertEquals(30, bean.getAge()); assertEquals(true, bean.isMarried()); }
@Test public void with_class_and_alias_using_fields() { StringPath name2 = Expressions.stringPath("name2"); QBean<Entity> beanProjection = new QBean<Entity>(Entity.class, true, name.as(name2), age, married); Entity bean = beanProjection.newInstance("Fritz", 30, true); assertNull(bean.name); assertEquals("Fritz", bean.name2); assertEquals(30, bean.age); assertEquals(true, bean.married); }
@Test public void with_class_and_alias() { StringPath name2 = Expressions.stringPath("name2"); QBean<Entity> beanProjection = new QBean<Entity>(Entity.class, name.as(name2), age, married); Entity bean = beanProjection.newInstance("Fritz", 30, true); assertNull(bean.getName()); assertEquals("Fritz", bean.getName2()); assertEquals(30, bean.getAge()); assertEquals(true, bean.isMarried()); }
@Override public Beans newInstance(Object... args) { int offset = 0; Map<RelationalPath<?>, Object> beans = new HashMap<RelationalPath<?>, Object>(); for (Map.Entry<RelationalPath<?>, QBean<?>> entry : qBeans.entrySet()) { RelationalPath<?> path = entry.getKey(); QBean<?> qBean = entry.getValue(); int argsSize = qBean.getArgs().size(); Object[] subArgs = ArrayUtils.subarray(args, offset, offset + argsSize); beans.put(path, qBean.newInstance(subArgs)); offset += argsSize; } return new Beans(beans); }
public Iterable<T> iterable( Iterator<Map<String, Object>> result ) { List<T> entities = new ArrayList<T>(); while (result.hasNext()) { Map<String, Object> row = result.next(); Object[] args = new Object[row.size()]; int idx = 0; for ( Expression<?> expression : bean.getArgs() ) { args[idx++] = row.get( ((Path) expression).getMetadata().getElement().toString() ); } entities.add( bean.newInstance( args ) ); } return entities; } }
@Test public void populate() { QPerson person = QPerson.person; QBean<Person> personProjection = Projections.bean(Person.class, person.id, person.firstname, person.securedid); Person p = personProjection.newInstance(3, "X", "Y"); assertEquals(3, p.getId()); assertEquals("X", p.getFirstname()); assertEquals("Y", p.getSecuredid()); }
@Test public void newInstance() { QPerson p = QPerson.person; QBean<Person> projection = Projections.bean(Person.class, p.id, p.firstName.as("firstName"), p.lastName.as("lastName")); Person person = projection.newInstance(3, "John", "Doe"); assertEquals(3, person.getId()); assertEquals("John", person.getFirstName()); assertEquals("Doe", person.getLastName()); }