Map<Integer, Integer> nodeTermIndex = nt.getNodeTermIndex();
TableProtoEdge[] remappedEdges = new TableProtoEdge[edgeIndices.size()];
int i = 0;
for (Integer edgeIndex : edgeIndices) {
TableProtoEdge edge = edges.get(edgeIndex);
int sourceBefore = edge.getSource();
int targetBefore = edge.getTarget();
Integer sourceTerm = nodeTermIndex.get(sourceBefore);
Integer targetTerm = nodeTermIndex.get(targetBefore);
Integer newSource = termMap.get(sourceTerm);
if (newSource == null) {
newSource = mergeTerm(sourceTerm, protoNetwork1, protoNetwork2,
documentId, termMap);
}
Integer newTarget = termMap.get(targetTerm);
if (newTarget == null) {
newTarget = mergeTerm(targetTerm, protoNetwork1, protoNetwork2,
documentId, termMap);
}
remappedEdges[i++] = new TableProtoEdge(newSource, edge.getRel(),
newTarget);
}
ProtoEdgeTable edgeTable = protoNetwork1.getProtoEdgeTable();
edgeTable.addEdges(newStatementIndex, remappedEdges);
}