public override IList <HistoricDetail> executeList(CommandContext commandContext, Page page) { checkQueryOk(); IList <HistoricDetail> historicDetails = commandContext.HistoricDetailManager.findHistoricDetailsByQueryCriteria(this, page); if (historicDetails != null) { foreach (HistoricDetail historicDetail in historicDetails) { if (historicDetail is HistoricDetailVariableInstanceUpdateEntity) { HistoricDetailVariableInstanceUpdateEntity entity = (HistoricDetailVariableInstanceUpdateEntity)historicDetail; if (shouldFetchValue(entity)) { try { entity.getTypedValue(isCustomObjectDeserializationEnabled); } catch (Exception t) { // do not fail if one of the variables fails to load LOG.exceptionWhileGettingValueForVariable(t); } } } } } return(historicDetails); }
protected internal virtual IList <string> getByteArrayIds(IList <HistoricVariableUpdate> variableUpdates) { IList <string> byteArrayIds = new List <string>(); foreach (HistoricVariableUpdate variableUpdate in variableUpdates) { if (isHistoricDetailVariableInstanceUpdateEntity(variableUpdate)) { HistoricDetailVariableInstanceUpdateEntity entity = (HistoricDetailVariableInstanceUpdateEntity)variableUpdate; if (isNotByteArrayVariableType(entity)) { string byteArrayId = entity.ByteArrayValueId; if (!string.ReferenceEquals(byteArrayId, null)) { byteArrayIds.Add(byteArrayId); } } } } return(byteArrayIds); }
protected internal virtual void resolveTypedValues(IList <HistoricVariableUpdate> variableUpdates) { foreach (HistoricVariableUpdate variableUpdate in variableUpdates) { if (isHistoricDetailVariableInstanceUpdateEntity(variableUpdate)) { HistoricDetailVariableInstanceUpdateEntity entity = (HistoricDetailVariableInstanceUpdateEntity)variableUpdate; if (isNotByteArrayVariableType(entity)) { try { entity.getTypedValue(false); } catch (Exception t) { // do not fail if one of the variables fails to load LOG.exceptionWhileGettingValueForVariable(t); } } } } }
protected internal virtual bool shouldFetchValue(HistoricDetailVariableInstanceUpdateEntity entity) { // do not fetch values for byte arrays eagerly (unless requested by the user) return(isByteArrayFetchingEnabled || !AbstractTypedValueSerializer.BINARY_VALUE_TYPES.Contains(entity.Serializer.Type.Name)); }
protected internal virtual bool isNotByteArrayVariableType(HistoricDetailVariableInstanceUpdateEntity entity) { // do not fetch values for byte arrays/ blob variables (e.g. files or bytes) return(!AbstractTypedValueSerializer.BINARY_VALUE_TYPES.Contains(entity.Serializer.Type.Name)); }