extractDrafts [sv]

Andre språk: extractDrafts (svensk)

Script

Datasett
Sist lagret
04.06.2018 10:30:24
Kode
extractDrafts
Navn
extractDrafts
Svensk

Kildekode
var result = false; var IndexService = Java.type("se.altrusoft.entitymachine.index.IndexService"); var Schema = Java.type("se.altrusoft.entitymachine.schema.Schema"); var PropertyType = Java.type("se.altrusoft.entitymachine.schema.PropertyType"); var Entity = Java.type("se.altrusoft.entitymachine.entity.Entity"); var PropertyValue = Java.type("se.altrusoft.entitymachine.entity.PropertyValue"); var PropertyStatus = Java.type("se.altrusoft.entitymachine.entity.PropertyStatus"); var PrecisionDate = Java.type("se.altrusoft.entitymachine.entity.PrecisionDate"); var KulturNavPropertyStatus = Java.type("models.KulturNavPropertyStatus"); var SecurityUtils = Java.type("security.SecurityUtils") var User = Java.type("security.User") var ServiceUtils = Java.type("util.ServiceUtils") var Constants = Java.type("util.Constants") var EntityUtils = Java.type("util.EntityUtils") var ExtDataUtils = Java.type("util.ExtDataUtils") var UserEnv = Java.type("util.UserEnv") function findRefProperty(entity, propertyTypeName, refId) { var propValIter = entity.getProperty(propertyTypeName).iterator(); while (propValIter.hasNext()) { var propVal = propValIter.next(); var sourceInfo = propVal.getSourceInfo(); if (sourceInfo != null && KulturNavPropertyStatus.HasDraft.equals(propVal.getStatus()) && refId.equals(sourceInfo.getRefId())) { return propVal; } } return null; } var propEntriesIter = entity.getProperties().entrySet().iterator(); while (propEntriesIter.hasNext()) { var propEntry = propEntriesIter.next(); var propValIter = propEntry.getValue().iterator(); while (propValIter.hasNext()) { var propVal = propValIter.next(); var status = propVal.getStatus(); if (status != null) { switch (status) { case KulturNavPropertyStatus.Draft: case KulturNavPropertyStatus.DraftDelete: case KulturNavPropertyStatus.Approved: case KulturNavPropertyStatus.DraftRejected: case KulturNavPropertyStatus.DeleteRejected: var propertyTypeName = propEntry.getKey(); var sourceInfo = propVal.getSourceInfo(); var source; var authorId = null; var author; var savedAt; var refId; if (sourceInfo != null) { source = sourceInfo.getSource(); authorId = sourceInfo.getAuthor(); savedAt = sourceInfo.getSavedAt(); refId = sourceInfo.getRefId(); } var userEntity = SecurityUtils.findUser(authorId); author = (userEntity == null) ? null : User.user(userEntity); if (author == null) { author = UserEnv.getUser(); } logger.info("extractDrafts: " + entity.getUuid() + " " + propertyTypeName + " " + status); var draftEntity = new Entity(); draftEntity.setAcl(entity.getAcl()); draftEntity.setEntityType(Constants.ENTITY_DRAFT); draftEntity.setSavedSource("Draft migration"); var refProp; switch (status) { case KulturNavPropertyStatus.Approved: refProp = Constants.PROPERTY_DRAFT_APPROVED_FOR; break; case KulturNavPropertyStatus.DraftRejected: case KulturNavPropertyStatus.DeleteRejected: refProp = Constants.PROPERTY_DRAFT_REJECTED_FOR; break; default: refProp = Constants.PROPERTY_EXTDATA_APPLIES_TO; break; } draftEntity.addProperty(refProp, new PropertyValue( null, PropertyType.ValueType.ENTITY_REFERENCE, entity.getUuid().toString())); var draftPropertyValue = new PropertyValue(null, status, propVal.getValueType(), propVal.getValue()); if (KulturNavPropertyStatus.Draft.equals(status) || KulturNavPropertyStatus.DraftDelete.equals(status)) { var hasDraft = findRefProperty(entity, propertyTypeName, refId); if (hasDraft != null) { hasDraft.setUuid(draftProperyValue.getUuid()); } } draftEntity.addProperty(propertyTypeName, draftPropertyValue); propVal.setStatus(PropertyStatus.Remove); if (savedAt != null) { draftEntity.addProperty(Constants.PROPERTY_DRAFT_ORIGINAL_TIMESTAMP, new PropertyValue(null, PropertyType.ValueType.DATE, new PrecisionDate( savedAt))); } if (storageService.put(draftEntity, author)) { indexService.index(draftEntity, IndexService.CommitMode.Soft); result = true; } break; case KulturNavPropertyStatus.HasDraft: propVal.setStatus(null); result = true; break; } } } } result;
Uuid
842dc6e4-15c7-4158-b7a6-c409f28336d8
ACL (rettigheter)
SYSTEM
Opprettet av
root
Opprettet
04.06.2018 10:30:24
Sist lagret av

Sist lagret

Tidligere lagret
Erstatt Lagret Lagret av