public ResourceHistoryTable toHistory() { ResourceHistoryTable retVal = new ResourceHistoryTable(); retVal.setResourceId(myId); retVal.setResourceType(myResourceType); retVal.setVersion(myVersion); retVal.setPublished(getPublished()); retVal.setUpdated(getUpdated()); retVal.setFhirVersion(getFhirVersion()); retVal.setDeleted(getDeleted()); retVal.setForcedId(getForcedId()); retVal.getTags().clear(); retVal.setHasTags(isHasTags()); if (isHasTags()) { for (ResourceTag next : getTags()) { retVal.addTag(next); } } return retVal; }
@Override public IdDt getIdDt() { if (getForcedId() == null) { Long id = myResourceId; return new IdDt(myResourceType + '/' + id + '/' + Constants.PARAM_HISTORY + '/' + getVersion()); } else { return new IdDt(getForcedId().getResourceType() + '/' + getForcedId().getForcedId() + '/' + Constants.PARAM_HISTORY + '/' + getVersion()); } }
private Slice<Long> toSlice(ResourceHistoryTable theVersion) { Validate.notNull(theVersion); return new SliceImpl<>(Collections.singletonList(theVersion.getId())); }
protected void expungeHistoricalVersion(Long theNextVersionId) { ResourceHistoryTable version = myResourceHistoryTableDao.findById(theNextVersionId).orElseThrow(IllegalArgumentException::new); ourLog.info("Deleting resource version {}", version.getIdDt().getValue()); myResourceHistoryTagDao.deleteAll(version.getTags()); myResourceHistoryTableDao.delete(version); }
resourceBytes = history.getResource(); resourceEncoding = history.getEncoding(); myTagList = history.getTags(); version = history.getVersion(); } else if (theEntity instanceof ResourceTable) { ResourceTable resource = (ResourceTable) theEntity; resourceBytes = history.getResource(); resourceEncoding = history.getEncoding(); myTagList = resource.getTags(); version = history.getVersion(); } else if (theEntity instanceof ResourceSearchView) {
historyEntry.setEncoding(changed.getEncoding()); historyEntry.setResource(changed.getResource()); ourLog.debug("Saving history entry {}", historyEntry.getIdDt()); myResourceHistoryTableDao.save(historyEntry);
public ResourceHistoryTag(ResourceHistoryTable theResourceHistoryTable, TagDefinition theTag) { setTag(theTag); setResource(theResourceHistoryTable); setResourceId(theResourceHistoryTable.getResourceId()); setResourceType(theResourceHistoryTable.getResourceType()); }
} else { ResourceHistoryTable currentHistoryVersion = myResourceHistoryTableDao.findForIdAndVersion(theEntity.getId(), theEntity.getVersion()); if (currentHistoryVersion == null || currentHistoryVersion.getResource() == null) { changed = true; } else { changed = !Arrays.equals(currentHistoryVersion.getResource(), bytes);
resourceBytes = history.getResource(); resourceEncoding = history.getEncoding(); myTagList = history.getTags(); version = history.getVersion(); } else if (theEntity instanceof ResourceTable) { ResourceTable resource = (ResourceTable) theEntity; resourceBytes = history.getResource(); resourceEncoding = history.getEncoding(); myTagList = resource.getTags(); version = history.getVersion(); } else if (theEntity instanceof ResourceSearchView) {
protected void expungeHistoricalVersion(Long theNextVersionId) { ResourceHistoryTable version = myResourceHistoryTableDao.findById(theNextVersionId).orElseThrow(IllegalArgumentException::new); ourLog.info("Deleting resource version {}", version.getIdDt().getValue()); myResourceHistoryTagDao.deleteAll(version.getTags()); myResourceHistoryTableDao.delete(version); }
historyEntry.setEncoding(changed.getEncoding()); historyEntry.setResource(changed.getResource()); ourLog.debug("Saving history entry {}", historyEntry.getIdDt()); myResourceHistoryTableDao.save(historyEntry);
} else { ResourceHistoryTable currentHistoryVersion = myResourceHistoryTableDao.findForIdAndVersion(theEntity.getId(), theEntity.getVersion()); if (currentHistoryVersion == null || currentHistoryVersion.getResource() == null) { changed = true; } else { changed = !Arrays.equals(currentHistoryVersion.getResource(), bytes);
public boolean hasTag(String theTerm, String theScheme) { for (ResourceHistoryTag next : getTags()) { if (next.getTag().getSystem().equals(theScheme) && next.getTag().getCode().equals(theTerm)) { return true; } } return false; }
private void expungeCurrentVersionOfResource(Long theResourceId, AtomicInteger theRemainingCount) { ResourceTable resource = myResourceTableDao.findById(theResourceId).orElseThrow(IllegalStateException::new); ResourceHistoryTable currentVersion = myResourceHistoryTableDao.findForIdAndVersion(resource.getId(), resource.getVersion()); if (currentVersion != null) { expungeHistoricalVersion(currentVersion.getId()); } ourLog.info("Expunging current version of resource {}", resource.getIdDt().getValue()); myResourceIndexedSearchParamUriDao.deleteAll(resource.getParamsUri()); myResourceIndexedSearchParamCoordsDao.deleteAll(resource.getParamsCoords()); myResourceIndexedSearchParamDateDao.deleteAll(resource.getParamsDate()); myResourceIndexedSearchParamNumberDao.deleteAll(resource.getParamsNumber()); myResourceIndexedSearchParamQuantityDao.deleteAll(resource.getParamsQuantity()); myResourceIndexedSearchParamStringDao.deleteAll(resource.getParamsString()); myResourceIndexedSearchParamTokenDao.deleteAll(resource.getParamsToken()); myResourceLinkDao.deleteAll(resource.getResourceLinks()); myResourceLinkDao.deleteAll(resource.getResourceLinksAsTarget()); myResourceTagDao.deleteAll(resource.getTags()); resource.getTags().clear(); if (resource.getForcedId() != null) { ForcedId forcedId = resource.getForcedId(); resource.setForcedId(null); myResourceTableDao.saveAndFlush(resource); myIdHelperService.delete(forcedId); } myResourceTableDao.delete(resource); theRemainingCount.decrementAndGet(); }
public void addTag(ResourceTag theTag) { ResourceHistoryTag tag = new ResourceHistoryTag(this, theTag.getTag()); tag.setResourceType(theTag.getResourceType()); getTags().add(tag); }
private Slice<Long> toSlice(ResourceHistoryTable theVersion) { Validate.notNull(theVersion); return new SliceImpl<>(Collections.singletonList(theVersion.getId())); }
private void expungeCurrentVersionOfResource(Long theResourceId, AtomicInteger theRemainingCount) { ResourceTable resource = myResourceTableDao.findById(theResourceId).orElseThrow(IllegalStateException::new); ResourceHistoryTable currentVersion = myResourceHistoryTableDao.findForIdAndVersion(resource.getId(), resource.getVersion()); if (currentVersion != null) { expungeHistoricalVersion(currentVersion.getId()); } ourLog.info("Expunging current version of resource {}", resource.getIdDt().getValue()); myResourceIndexedSearchParamUriDao.deleteAll(resource.getParamsUri()); myResourceIndexedSearchParamCoordsDao.deleteAll(resource.getParamsCoords()); myResourceIndexedSearchParamDateDao.deleteAll(resource.getParamsDate()); myResourceIndexedSearchParamNumberDao.deleteAll(resource.getParamsNumber()); myResourceIndexedSearchParamQuantityDao.deleteAll(resource.getParamsQuantity()); myResourceIndexedSearchParamStringDao.deleteAll(resource.getParamsString()); myResourceIndexedSearchParamTokenDao.deleteAll(resource.getParamsToken()); myResourceLinkDao.deleteAll(resource.getResourceLinks()); myResourceLinkDao.deleteAll(resource.getResourceLinksAsTarget()); myResourceTagDao.deleteAll(resource.getTags()); resource.getTags().clear(); if (resource.getForcedId() != null) { ForcedId forcedId = resource.getForcedId(); resource.setForcedId(null); myResourceTableDao.saveAndFlush(resource); myIdHelperService.delete(forcedId); } myResourceTableDao.delete(resource); theRemainingCount.decrementAndGet(); }