use of org.motechproject.mds.domain.Entity in project motech by motech.
the class AllEntities method create.
public Entity create(EntityDto dto) {
Entity entity = new Entity();
entity.setClassName(dto.getClassName());
entity.setName(dto.getName());
entity.setModule(dto.getModule());
entity.setBundleSymbolicName(dto.getBundleSymbolicName());
entity.setNamespace(dto.getNamespace());
entity.setTableName(dto.getTableName());
entity.setMaxFetchDepth(dto.getMaxFetchDepth());
entity.setSecurityMode(dto.getSecurityMode());
entity.setSecurityMembers(dto.getSecurityMembers());
entity.setReadOnlySecurityMode(dto.getReadOnlySecurityMode());
entity.setReadOnlySecurityMembers(dto.getReadOnlySecurityMembers());
entity.setSuperClass(dto.getSuperClass());
entity.setAbstractClass(dto.isAbstractClass());
Tracking tracking = new Tracking();
tracking.setEntity(entity);
tracking.setRecordHistory(dto.isRecordHistory());
entity.setTracking(tracking);
return create(entity);
}
use of org.motechproject.mds.domain.Entity in project motech by motech.
the class AllEntities method getActualEntities.
public List<Entity> getActualEntities() {
List<Entity> entities = new ArrayList<>(retrieveAll());
CollectionUtils.filter(entities, new Predicate() {
@Override
public boolean evaluate(Object object) {
Entity entity = (Entity) object;
return entity.isActualEntity();
}
});
return entities;
}
use of org.motechproject.mds.domain.Entity in project motech by motech.
the class HistoryServiceTest method shouldCreateNewRecord.
@Test
public void shouldCreateNewRecord() throws Exception {
Entity entity = mock(Entity.class);
Field idField = mock(Field.class);
doReturn("id").when(idField).getName();
Type idType = mock(Type.class);
doReturn(idType).when(idField).getType();
doReturn(Long.class.getName()).when(idType).getTypeClassName();
doReturn(Long.class).when(idType).getTypeClass();
Field valueField = mock(Field.class);
doReturn("value").when(valueField).getName();
Type valueType = mock(Type.class);
doReturn(valueType).when(valueField).getType();
doReturn(String.class.getName()).when(valueType).getTypeClassName();
doReturn(String.class).when(valueType).getTypeClass();
Field dateField = mock(Field.class);
doReturn("date").when(dateField).getName();
Type dateType = mock(Type.class);
doReturn(dateType).when(dateField).getType();
doReturn(Date.class.getName()).when(dateType).getTypeClassName();
doReturn(Date.class).when(dateType).getTypeClass();
doReturn(17L).when(entity).getEntityVersion();
doReturn(true).when(entity).isRecordHistory();
doReturn(Arrays.asList(idField, valueField, dateField)).when(entity).getFields();
doReturn(null).when(query).execute(anyLong());
final String serviceName = ClassName.getServiceName(Record.class.getName());
doReturn(true).when(applicationContext).containsBean(serviceName);
doReturn(dataService).when(applicationContext).getBean(serviceName);
doReturn(4L).when(dataService).getSchemaVersion();
Record instance = new Record();
historyService.record(instance);
verify(manager).makePersistent(recordHistoryCaptor.capture());
Record__History history = recordHistoryCaptor.getValue();
assertEquals(instance.getId(), history.getRecord__HistoryCurrentVersion());
assertEquals(Long.valueOf(4), history.getRecord__HistorySchemaVersion());
assertEquals(instance.getValue(), history.getValue());
assertEquals(instance.getDate(), history.getDate());
}
use of org.motechproject.mds.domain.Entity in project motech by motech.
the class EntitySchemaBuilder method build.
public Entity build() {
Entity entity = new Entity(clazz, module, namespace, null);
entity.setRestOptions(rest.build());
entity.getRestOptions().setEntity(entity);
entity.setTracking(auditing.build());
entity.getTracking().setEntity(entity);
Map<String, Field> fieldsMap = new HashMap<>();
for (FieldSchemaBuilder fieldBuilder : fields) {
Field field = fieldBuilder.build();
field.setEntity(entity);
field.setExposedViaRest(rest.fields.contains(field.getName()));
field.setUIDisplayable(browsing.fields.contains(field.getName()));
field.setUIDisplayPosition(Integer.valueOf(browsing.fields.indexOf(field.getName())).longValue());
field.setUIFilterable(browsing.filters.contains(field.getName()));
fieldsMap.put(field.getName(), field);
entity.addField(field);
}
for (LookupSchemaBuilder lookupBuilder : lookups) {
Lookup lookup = lookupBuilder.build();
lookup.setEntity(entity);
lookup.setExposedViaRest(rest.lookups.contains(lookup.getLookupName()));
setLookupFields(lookup, lookupBuilder, fieldsMap);
entity.addLookup(lookup);
}
return entity;
}
use of org.motechproject.mds.domain.Entity in project motech by motech.
the class RelationshipResolver method isEntityResolved.
private boolean isEntityResolved(Entity entity, List<Entity> visitedEntities, List<Entity> resolvedEntities, EntitiesRetriever entitiesRetriever) {
if (resolvedEntities.contains(entity)) {
return true;
} else {
visitedEntities.add(entity);
for (String relatedEntityClass : EntityHelper.getRelatedEntityClasses(entity)) {
Entity relatedEntity = entitiesRetriever.retrieveEntity(relatedEntityClass);
if (null == relatedEntity) {
return false;
} else if (!visitedEntities.contains(relatedEntity) && !isEntityResolved(relatedEntity, visitedEntities, resolvedEntities, entitiesRetriever)) {
return false;
}
}
resolvedEntities.add(entity);
return true;
}
}
Aggregations