use of org.motechproject.mds.domain.Entity in project motech by motech.
the class EntityServiceImpl method getEntityFieldsByClassName.
private List<FieldDto> getEntityFieldsByClassName(String className, boolean forUI) {
Entity entity = allEntities.retrieveByClassName(className);
assertEntityExists(entity, className);
List<Field> fields = new ArrayList<>(entity.getFields());
Collections.sort(fields, new UIDisplayFieldComparator());
return toFieldDtos(entity, fields, forUI);
}
use of org.motechproject.mds.domain.Entity in project motech by motech.
the class EntityServiceImpl method updateRelatedField.
private void updateRelatedField(Field oldField, Field draftField, List<String> modulesToRefresh) {
Entity relatedEntity = allEntities.retrieveByClassName(oldField.getMetadataValue(RELATED_CLASS));
Field relatedField = relatedEntity.getField(oldField.getMetadataValue(RELATED_FIELD));
boolean fieldChanged = false;
boolean relatedEntityChanged = false;
if (!StringUtils.equals(draftField.getMetadataValue(RELATED_CLASS), oldField.getMetadataValue(RELATED_CLASS))) {
addRelatedField(draftField, modulesToRefresh);
relatedEntity.removeField(relatedField.getId());
relatedEntityChanged = true;
}
if (!relatedEntityChanged && !StringUtils.equals(draftField.getMetadataValue(RELATIONSHIP_COLLECTION_TYPE), oldField.getMetadataValue(RELATIONSHIP_COLLECTION_TYPE))) {
relatedField.setMetadataValue(RELATIONSHIP_COLLECTION_TYPE, draftField.getMetadataValue(RELATIONSHIP_COLLECTION_TYPE));
fieldChanged = true;
}
if (!relatedEntityChanged && !StringUtils.equals(draftField.getMetadataValue(RELATED_FIELD), oldField.getMetadataValue(RELATED_FIELD))) {
relatedField.setName(draftField.getMetadataValue(RELATED_FIELD));
fieldChanged = true;
}
if (!relatedEntityChanged && !oldField.getName().equals(draftField.getName())) {
relatedField.setMetadataValue(RELATED_FIELD, draftField.getName());
fieldChanged = true;
}
if (fieldChanged || relatedEntityChanged) {
relatedEntity.incrementVersion();
}
addModuleToRefresh(relatedEntity, modulesToRefresh);
}
use of org.motechproject.mds.domain.Entity in project motech by motech.
the class EntityServiceImpl method incrementVersion.
@Override
@Transactional
public void incrementVersion(Long entityId) {
Entity entity = allEntities.retrieveById(entityId);
assertEntityExists(entity, entityId);
entity.incrementVersion();
}
use of org.motechproject.mds.domain.Entity in project motech by motech.
the class EntityServiceImpl method getFields.
private List<FieldDto> getFields(Long entityId, boolean forDraft, boolean forUi) {
Entity entity = (forDraft) ? getEntityDraft(entityId) : allEntities.retrieveById(entityId);
assertEntityExists(entity, entityId);
// the returned collection is unmodifiable
List<Field> fields = new ArrayList<>(entity.getFields());
// for data browser purposes, we sort the fields by their ui display order
if (!forDraft) {
Collections.sort(fields, new UIDisplayFieldComparator());
}
// if it's for the UI, then we add combobox options
List<FieldDto> fieldDtos = toFieldDtos(entity, fields, forUi);
return addNonPersistentFieldsData(fieldDtos, entity);
}
use of org.motechproject.mds.domain.Entity in project motech by motech.
the class EntityServiceImpl method findFieldByName.
@Override
@Transactional
public FieldDto findFieldByName(Long entityId, String name) {
Entity entity = getEntityDraft(entityId);
Field field = entity.getField(name);
if (field == null) {
throw new FieldNotFoundException(entity.getClassName(), name);
}
return field.toDto();
}
Aggregations