/** * Return a new EvidenceRecord with an added ArchiveTimeStamp * * @param ats the archive timestamp to add * @param newChain states whether this new archive timestamp must be added as part of a * new sequence (i.e. in the case of hashtree renewal) or not (i.e. in the case of timestamp * renewal) * @return the new EvidenceRecord */ public EvidenceRecord addArchiveTimeStamp(final ArchiveTimeStamp ats, final boolean newChain) { if (newChain) { ArchiveTimeStampChain chain = new ArchiveTimeStampChain(ats); return new EvidenceRecord(this, archiveTimeStampSequence.append(chain), ats); } else { ArchiveTimeStampChain[] chains = archiveTimeStampSequence.getArchiveTimeStampChains(); chains[chains.length - 1] = chains[chains.length - 1].append(ats); return new EvidenceRecord(this, new ArchiveTimeStampSequence(chains), null); } }