public AnnotationNode(Annotation annotation) { Difference difference = annotation.getDifference(); this.differenceType = difference.getType(); this.baseDocumentID = difference.getBaseDocumentID(); this.witnessDocumentID = difference.getWitnessDocumentID(); this.baseLength = difference.getLength(Difference.BASE, OffsetRange.Space.ORIGINAL); this.witnessLength = difference.getLength(Difference.WITNESS, OffsetRange.Space.ORIGINAL); this.baseOffset = difference.getOffset(Difference.BASE, OffsetRange.Space.ORIGINAL); this.witnessOffset = difference.getOffset(Difference.WITNESS, OffsetRange.Space.ORIGINAL); this.baseSpace = OffsetRange.Space.ORIGINAL; this.witnessSpace = OffsetRange.Space.ORIGINAL; this.notes = annotation.getNotes(); this.includeImage = annotation.includeImage(); this.fromOldVersion = annotation.isFromOldVersion(); }
void getDiffs(Node node) throws ReportedException { int baseIndex = Integer.parseInt(getAttr(node, "base")); int witnessIndex = Integer.parseInt(getAttr(node, "witness")); Log( "<test id=\"" + getAttr(node, "id") + "\" base=\"" + baseIndex + "\" witness=\"" + witnessIndex + "\" >"); LinkedList docs = documentManager.getDocumentList(); JuxtaDocument baseDoc = (JuxtaDocument) docs.get(baseIndex); JuxtaDocument witnessDoc = (JuxtaDocument) docs.get(witnessIndex); String str = ""; Collation collation = comparisonSet.getCollation(baseDoc); List list = collation.getDifferences(witnessDoc); if (list == null) list = new LinkedList(); dumpAllDifferences(list, baseDoc.getDocumentText(), witnessDoc.getDocumentText()); int count = 0; NodeList nlResult = node.getChildNodes(); int numResults = (createXml ? list.size() : nlResult.getLength()); for (int i = 0; i < numResults; ++i) { Node nodeResult = (createXml ? null : nlResult.item(i)); if (createXml || nodeResult.getNodeType() == Node.ELEMENT_NODE && nodeResult.getNodeName().equals("result")) { if (count >= list.size()) { DoAssert("Not enough difference entries returned", -1, list.size()); break; } Difference difference = (Difference) list.get(count); ++count; String strBaseFilename = documentManager.lookupDocument(difference.getBaseDocumentID()).getDocumentName(); String strWitnessFilename = documentManager.lookupDocument(difference.getWitnessDocumentID()).getDocumentName(); int iBaseOfs = difference.getOffset(Difference.BASE); int iBaseLen = difference.getLength(Difference.BASE); int iWitnessOfs = difference.getOffset(Difference.WITNESS); int iWitnessLen = difference.getLength(Difference.WITNESS); str = "\t<result "; str += "basename=\"" + strBaseFilename; str += "\" baseoffset=\"" + Integer.toString(iBaseOfs); str += "\" baselength=\"" + Integer.toString(iBaseLen); str += "\" witnessname=\"" + strWitnessFilename; str += "\" witnessoffset=\"" + Integer.toString(iWitnessOfs); str += "\" witnesslength=\"" + Integer.toString(iWitnessLen); str += "\" type=\"" + Difference.getTypeName(difference.getType()); str += "\" distance=\"" + Integer.toString(difference.getDistance()); str += "\" />"; Log(str); if (!createXml) { DoAssert( "", "", difference.testContents( Difference.getTypeValue(getAttr(nodeResult, "type")), getAttrInt(nodeResult, "baseoffset"), getAttrInt(nodeResult, "baselength"), getAttrInt(nodeResult, "witnessoffset"), getAttrInt(nodeResult, "witnesslength"))); DoAssert("basename", getAttr(nodeResult, "basename"), strBaseFilename); DoAssert("witnessname", getAttr(nodeResult, "witnessname"), strWitnessFilename); DoAssert( "distance", getAttr(nodeResult, "distance"), Integer.toString(difference.getDistance())); } } } DoAssert("count", count, (list == null) ? 0 : list.size()); Log("</test>"); }