protected boolean accept(Visitor visitor, HashSet<Revision> visited) { if (!visited.add(this)) // Ignore this Revision, visitor has already seen it return true; boolean recurse = visitor.visitEnter(this); if (recurse) { if (getPreviousRevision() != null) recurse = getPreviousRevision().accept(visitor, visited); for (Revision rev : getHadOriginalSources()) { if (!recurse) break; recurse = rev.accept(visitor, visited); } } return visitor.visitLeave(this); }
@Override protected void cloneInto(WorkflowBean clone, Cloning cloning) { Revision cloneRevision = (Revision) clone; cloneRevision.setAdditionOf(new LinkedHashSet<URI>(getAdditionOf())); cloneRevision.setChangeSpecificationType(getChangeSpecificationType()); if (getGeneratedAtTime() != null) cloneRevision.setGeneratedAtTime((Calendar) getGeneratedAtTime() .clone()); for (Revision source : getHadOriginalSources()) cloneRevision.getHadOriginalSources().add( cloning.cloneIfNotInCache(source)); cloneRevision.setIdentifier(getIdentifier()); cloneRevision.setModificationsOf(new LinkedHashSet<URI>( getModificationsOf())); cloneRevision.setPreviousRevision(cloning .cloneIfNotInCache(getPreviousRevision())); cloneRevision.setRemovalOf(new LinkedHashSet<URI>(getRemovalOf())); cloneRevision.setWasAttributedTo(new LinkedHashSet<URI>( getWasAttributedTo())); }
assertTrue(r3.getWasAttributedTo().contains(URI.create("http://example.net/SomeoneElse#me"))); assertEquals(2, r3.getHadOriginalSources().size()); List<Revision> originals = new ArrayList<Revision>(r3.getHadOriginalSources()); assertEquals("http://example.org/originalSource1", originals.get(0).getIdentifier().toASCIIString()); assertEquals("http://example.com/test/originalSource2", originals.get(1).getIdentifier().toASCIIString());
Revision r = addOrExisting(base.resolve(assoc.getResource()), revisions); revision.getHadOriginalSources().add(r);