| | |
| | | update(csn, new AttrValueHistorical(addedValue, csn, null)); |
| | | } |
| | | |
| | | private void update(CSN csn, AttrValueHistorical info) |
| | | private void update(CSN csn, AttrValueHistorical valInfo) |
| | | { |
| | | valuesHist.remove(info); |
| | | valuesHist.put(info, info); |
| | | updateValInfo(valInfo, valInfo); |
| | | if (csn.isNewerThan(lastUpdateTime)) |
| | | { |
| | | lastUpdateTime = csn; |
| | | } |
| | | } |
| | | |
| | | private void updateValInfo(AttrValueHistorical oldValInfo, AttrValueHistorical newValInfo) |
| | | { |
| | | valuesHist.remove(oldValInfo); |
| | | valuesHist.put(newValInfo, newValInfo); |
| | | } |
| | | |
| | | @Override |
| | | public Set<AttrValueHistorical> getValuesHistorical() |
| | | { |
| | |
| | | m.setModificationType(ModificationType.REPLACE); |
| | | AttributeBuilder builder = new AttributeBuilder(modAttr, true); |
| | | |
| | | Iterator<AttrValueHistorical> it = valuesHist.keySet().iterator(); |
| | | while (it.hasNext()) |
| | | for (Iterator<AttrValueHistorical> it = valuesHist.keySet().iterator(); it.hasNext();) |
| | | { |
| | | AttrValueHistorical valInfo = it.next(); |
| | | |
| | |
| | | if (csn.isNewerThanOrEqualTo(oldValInfo.getValueDeleteTime()) && |
| | | csn.isNewerThanOrEqualTo(oldValInfo.getValueUpdateTime())) |
| | | { |
| | | valuesHist.remove(oldValInfo); |
| | | valuesHist.put(valInfo, valInfo); |
| | | updateValInfo(oldValInfo, valInfo); |
| | | } |
| | | else if (oldValInfo.isUpdate()) |
| | | { |
| | |
| | | } |
| | | else |
| | | { |
| | | valuesHist.remove(oldValInfo); |
| | | valuesHist.put(valInfo, valInfo); |
| | | updateValInfo(oldValInfo, valInfo); |
| | | } |
| | | |
| | | /* if the attribute value is not to be deleted |
| | |
| | | */ |
| | | if (csn.isNewerThan(oldValInfo.getValueUpdateTime())) |
| | | { |
| | | valuesHist.remove(oldValInfo); |
| | | valuesHist.put(valInfo, valInfo); |
| | | updateValInfo(oldValInfo, valInfo); |
| | | } |
| | | builder.remove(addVal); |
| | | } |
| | |
| | | */ |
| | | if (csn.isNewerThanOrEqualTo(oldValInfo.getValueDeleteTime())) |
| | | { |
| | | /* this add is more recent, |
| | | * remove the old delete historical information |
| | | * and add our more recent one |
| | | * let the operation process |
| | | */ |
| | | valuesHist.remove(oldValInfo); |
| | | valuesHist.put(valInfo, valInfo); |
| | | updateValInfo(oldValInfo, valInfo); |
| | | } |
| | | else |
| | | { |