public static QcDto asDto(@Nonnull QC from) { QcDto dto = new QcDto(); dto.setId(from.getId()); dto.setDate(formatDate(from.getDate())); dto.setCreator(from.getCreator().getFullName()); dto.setType(asDto(from.getType())); dto.setResults(from.getResults()); dto.setEntityId(from.getEntity().getId()); dto.setEntityAlias(from.getEntity().getAlias()); dto.setDescription(from.getDescription()); return dto; }
@Override public QC updateQc(QC qc) throws IOException { QcTargetStore handler = getHandler(qc.getType().getQcTarget()); QualityControlEntity entity = handler.getEntity(qc.getEntity().getId()); authorizationManager.throwIfNotWritable(entity); User user = authorizationManager.getCurrentUser(); QC original = handler.get(qc.getId()); if (original.getType().getId() != qc.getType().getId()) { throw new IllegalArgumentException("QC type has changed"); } original.setResults(qc.getResults()); original.setLastModified(new Date()); entity.setChangeDetails(user); changeLoggableStore.update(entity); handler.save(original); return original; }
@Override public boolean equals(Object obj) { if (this == obj) return true; if (!super.equals(obj)) return false; if (getClass() != obj.getClass()) return false; ContainerQC other = (ContainerQC) obj; if (container == null) { if (other.container != null) return false; } else if (!container.equals(other.container)) return false; return true; }
@Override public QC createQC(QC qc) throws IOException { QcTargetStore handler = getHandler(qc.getType().getQcTarget()); QualityControlEntity entity = handler.getEntity(qc.getEntity().getId()); authorizationManager.throwIfNotWritable(entity); User user = authorizationManager.getCurrentUser(); qc.setCreator(user); qc.setCreationTime(new Date()); qc.setLastModified(qc.getCreationTime()); QcType type = qcTypeStore.get(qc.getType().getId()); if (!type.getQcTarget().equals(entity.getQcTarget())) { throw new IllegalArgumentException("QC type and entity are mismatched."); } if (qc.getType().isAutoUpdateField()) { handler.updateEntity(qc.getEntity().getId(), qc.getType().getCorrespondingField(), qc.getResults(), qc.getType().getUnits()); } entity.setChangeDetails(user); changeLoggableStore.update(entity); long id = handler.save(qc); return handler.get(id); }
to.setId(dto.getId()); to.setDate(parseDate(dto.getDate())); to.setResults(dto.getResults()); to.setType(to(dto.getType())); to.setDescription(dto.getDescription()); return to;
@Override public QC get(QcTarget target, Long id) throws IOException { QC qc = getHandler(target).get(id); authorizationManager.throwIfNotReadable(qc.getEntity()); return qc; }