/** * Creates a new entity based from a HttpServletRequest. For file attributes persists the file in * the file store and persist a file meta data entity. * * @param meta entity meta data * @param request HTTP request parameters * @return entity created from HTTP request parameters */ public Entity toEntity(final EntityType meta, final Map<String, Object> request) { final Entity entity = entityManager.create(meta, POPULATE); for (Attribute attr : meta.getAtomicAttributes()) { if (attr.getExpression() == null) { String paramName = attr.getName(); if (request.containsKey(paramName)) { final Object paramValue = request.get(paramName); Attribute idAttribute = meta.getIdAttribute(); Object idValue = request.get(idAttribute.getName()); final Object value = this.toEntityValue(attr, paramValue, idValue); entity.set(attr.getName(), value); } } } return entity; }
/** Package-private for testablility */ Entity applyMappingToEntity( EntityMapping sourceMapping, Entity sourceEntity, EntityType targetMetaData, int depth) { Entity target = entityManager.create(targetMetaData, POPULATE); if (targetMetaData.getAttribute(SOURCE) != null) { target.set(SOURCE, sourceMapping.getName()); } sourceMapping .getAttributeMappings() .forEach( attributeMapping -> applyMappingToAttribute( attributeMapping, sourceEntity, target, sourceMapping.getSourceEntityType(), depth)); return target; }
LOG.trace("Hydrating entity: {} for entity {}", dehydratedEntity, entityType.getId()); Entity hydratedEntity = entityManager.create(entityType, NO_POPULATE);
Entity row = entityManager.create(entityType, NO_POPULATE);
private JobExecution createJobExecution(ScheduledJob scheduledJob) { JobExecution jobExecution = (JobExecution) entityManager.create(scheduledJob.getType().getJobExecutionType(), POPULATE); writePropertyValues(jobExecution, getPropertyValues(scheduledJob.getParameters())); jobExecution.setFailureEmail(scheduledJob.getFailureEmail()); jobExecution.setSuccessEmail(scheduledJob.getSuccessEmail()); jobExecution.setUser(scheduledJob.getUser()); jobExecution.setScheduledJobId(scheduledJob.getId()); return jobExecution; }
@Override public QuestionnaireResponse startQuestionnaire(String entityTypeId) { Questionnaire questionnaire = findQuestionnaireEntity(entityTypeId); if (questionnaire == null) { EntityType questionnaireEntityType = dataService.getEntityType(entityTypeId); boolean rlsEnabled = mutableAclClassService .getAclClassTypes() .contains(EntityIdentityUtils.toType(questionnaireEntityType)); if (!rlsEnabled) { throw new QuestionnaireNotRowLevelSecuredException(questionnaireEntityType); } questionnaire = questionnaireFactory.create(entityManager.create(questionnaireEntityType, POPULATE)); questionnaire.setOwner(getCurrentUsername()); questionnaire.setStatus(OPEN); dataService.add(entityTypeId, questionnaire); Questionnaire newQuestionnaire = findQuestionnaireEntity(questionnaire.getEntityType().getId()); return QuestionnaireResponse.create(newQuestionnaire); } else { return QuestionnaireResponse.create(questionnaire); } }