use of com.qcadoo.model.api.Entity in project qcadoo by qcadoo.
the class PriorityServiceImpl method getCriteria.
private Criteria getCriteria(final InternalDataDefinition dataDefinition, final FieldDefinition fieldDefinition, final Object databaseEntity) {
Criteria criteria = hibernateService.getCurrentSession().createCriteria(dataDefinition.getClassForEntity());
FieldDefinition scopeFieldDefinition = getScopeForPriority(fieldDefinition);
if (scopeFieldDefinition != null) {
Object scopeValue = entityService.getField(databaseEntity, scopeFieldDefinition);
if (scopeValue instanceof Entity) {
criteria.add(Restrictions.eq(scopeFieldDefinition.getName() + ".id", ((Entity) scopeValue).getId()));
} else {
criteria.add(Restrictions.eq(scopeFieldDefinition.getName(), scopeValue));
}
}
return criteria;
}
use of com.qcadoo.model.api.Entity in project qcadoo by qcadoo.
the class ValidationServiceImpl method parseBelongsToField.
private Object parseBelongsToField(final InternalFieldDefinition fieldDefinition, final Object value, final Entity validatedEntity) {
Entity referencedEntity = null;
if (value != null) {
Long referencedEntityId = null;
if (value instanceof String) {
try {
referencedEntityId = Long.valueOf((String) value);
} catch (NumberFormatException e) {
validatedEntity.addError(fieldDefinition, "qcadooView.validate.field.error.wrongType", value.getClass().getSimpleName(), fieldDefinition.getType().getType().getSimpleName());
}
} else if (value instanceof Long) {
referencedEntityId = (Long) value;
} else if (value instanceof Integer) {
referencedEntityId = Long.valueOf((Integer) value);
} else if (value instanceof Entity) {
referencedEntityId = ((Entity) value).getId();
} else {
validatedEntity.addError(fieldDefinition, "qcadooView.validate.field.error.wrongType", value.getClass().getSimpleName(), fieldDefinition.getType().getType().getSimpleName());
}
if (referencedEntityId != null) {
BelongsToType belongsToFieldType = (BelongsToType) fieldDefinition.getType();
referencedEntity = belongsToFieldType.getDataDefinition().get(referencedEntityId);
}
}
return referencedEntity;
}
use of com.qcadoo.model.api.Entity in project qcadoo by qcadoo.
the class DataAccessServiceGetTest method shouldGetHasManyField.
@Test
public void shouldGetHasManyField() throws Exception {
// given
SampleParentDatabaseObject parentDatabaseObject = new SampleParentDatabaseObject();
parentDatabaseObject.setId(1L);
parentDatabaseObject.setName("Mr T");
given(session.get(any(Class.class), Matchers.anyInt())).willReturn(parentDatabaseObject);
// when
Entity entity = parentDataDefinition.get(1L);
// then
assertEquals(1L, entity.getId().longValue());
assertEquals("Mr T", entity.getField("name"));
assertThat(entity.getField("entities"), CoreMatchers.instanceOf(EntityListImpl.class));
EntityList entities = entity.getHasManyField("entities");
assertEquals(1L, getField(entities, "parentId"));
assertEquals("belongsTo", ((FieldDefinition) getField(entities, "joinFieldDefinition")).getName());
assertEquals("simple.entity", ((DataDefinition) getField(entities, "dataDefinition")).getName());
}
use of com.qcadoo.model.api.Entity in project qcadoo by qcadoo.
the class DataAccessServiceGetTest method shouldReturnNullIfEntityNotFound.
public void shouldReturnNullIfEntityNotFound() throws Exception {
// given
dataDefinition.setFullyQualifiedClassName(SampleSimpleDatabaseObject.class.getCanonicalName());
given(criteria.uniqueResult()).willReturn(null);
// when
Entity entity = dataDefinition.get(1L);
// then
assertNull(entity);
}
use of com.qcadoo.model.api.Entity in project qcadoo by qcadoo.
the class DataAccessServiceSaveTest method shouldSaveNewEntity.
@Test
public void shouldSaveNewEntity() throws Exception {
// given
Entity entity = new DefaultEntity(dataDefinition);
entity.setField("name", "Mr T");
entity.setField("age", 66);
SampleSimpleDatabaseObject databaseObject = new SampleSimpleDatabaseObject();
databaseObject.setName("Mr T");
databaseObject.setAge(66);
// when
entity = dataDefinition.save(entity);
// then
verify(session).save(databaseObject);
assertTrue(entity.isValid());
}
Aggregations