SnapshotVariantName(VariantNameIF original, int snapshotType, Map<TMObjectIF, SnapshotTMObject> processed) {
this.snapshotType = snapshotType;
switch (snapshotType) {
case SNAPSHOT_REFERENCE:
this.objectId = original.getObjectId();
break;
case SNAPSHOT_COMPLETE:
this.objectId = original.getObjectId();
this.srclocs = new ArrayList<LocatorIF>(original.getItemIdentifiers());
this.basename = SnapshotTopicName.makeSnapshot(original.getTopicName(), SnapshotTopic.SNAPSHOT_REFERENCE, processed);
this.topic = SnapshotTopic.makeSnapshot(original.getTopic(), SnapshotTopic.SNAPSHOT_REFERENCE, processed);
this.datatype = original.getDataType();
this.value = original.getValue();
this.scope = new ArrayList<TopicIF>();
Iterator<TopicIF> siter = original.getScope().iterator();
while (siter.hasNext()) {
this.scope.add(SnapshotTopic.makeSnapshot(siter.next(), snapshotType, processed));
}
this.reifier = SnapshotTopic.makeSnapshot(original.getReifier(),
SnapshotTopic.SNAPSHOT_REFERENCE, processed);
break;
default:
throw new OntopiaRuntimeException("Unknown snapshot type: " + snapshotType);
}
}