private void addClosingCode(TextFragment tf, RunContainer rc, Code openCode) { Code code = new Code(TagType.CLOSING, openCode.getType()); code.setData("</" + rc.getType().getValue() + openCode.getId() + ">"); code.setId(openCode.getId()); // Clear container default properties runCodeStack.pop(); tf.append(code); } }
if (code1.getId() != code2.getId()) { LOGGER.warn("compareTextFragment warning: TextFragment Code id difference.\n" + "code1 id=\"{}\"\ncode2 id=\"{}\"", code1.getId(), code2.getId()); return false; if ( !code1.getData().equals(code2.getData()) ) { LOGGER.warn("compareTextFragment warning: TextFragment Code data difference.\n" + "code1 data=\"{}\"\ncode2 data=\"{}\"", code1.getData(), code2.getData()); return false; if ( !code1.getOuterData().equals(code2.getOuterData()) ) { LOGGER.warn("compareTextFragment warning: TextFragment Code outer data difference.\n" + "code1 outerdata=\"{}\"\ncode2 outerdata=\"{}\"", code1.getOuterData(), code2.getOuterData()); return false; if ( !code1.getType().equals(code2.getType()) ) { LOGGER.warn("compareTextFragment warning: TextFragment Code type difference.\n" + "code1 type=\"{}\"\ncode2 type=\"{}\"", code1.getType(), code2.getType()); return false; if (code1.getTagType() != code2.getTagType()) { LOGGER.warn("compareTextFragment warning: TextFragment Code TagType difference."); return false; if (code1.hasReference() != code2.hasReference()) { LOGGER.warn("compareTextFragment warning: TextFragment Code hasReference difference."); return false; if (code1.isCloneable() != code2.isCloneable()) {
@Override public int compare(Code c1, Code c2) { if (c1.getId() == c2.getId() && c1.getTagType() == c2.getTagType()) { return 0; } else if (c1.getId() == c2.getId() && c1.getTagType() != c2.getTagType()) { return c1.getTagType().compareTo(c2.getTagType()); } else { return Integer.compare(c1.getId(), c2.getId()); } } }
private static int incrementCodeIdsByOffset(TextFragment tf, int delta) { int count = 0; for ( Code code : tf.getCodes() ) { code.setId(code.getId() + delta); if (code.getTagType() != TagType.CLOSING) count++; } return count; } }
if (!code.hasData()) { needAdjustment = true; break; if (code.hasReference()) { needAdjustment = true; break; newCode.setOuterData(null); // Remove XLIFF outer codes if needed if (newCode.hasOnlyAnnotation()) { continue; // Skip annotation-only codes if (oriCodes.get(j).getId() == newCode.getId()) { if (oriCodes.get(j).getTagType() == newCode.getTagType()) { if (oriIndices[j] == -1) { if (!oriCodes.get(j).isCloneable()) { String place = null; if (parent != null) { newCode.getId()) + ((place == null) ? "" : place)); if ((newCode.getData() == null) || (newCode.getData().length() == 0)) { newCode.getId()) + ((place == null) ? "" : place)); newCode.setData(oriCode.getData());
for (int i = 0; i < transCodes.size(); i++) { transCode = transCodes.get(i); transCode.setOuterData(null); // Remove XLIFF outer codes for (int j = 0; j < oriIndices.length; j++) { if (oriIndices[j] == -1) continue; // Used already if (oriCodes.get(oriIndices[j]).getId() == transCode.getId()) { oriCode = oriCodes.get(oriIndices[j]); oriIndices[j] = -1; if (!transCode.hasData()) { transCode.getId(), tu.getId(), (tu.getName() == null ? "" : tu.getName())); if (oriCode.hasOuterData()) { transCode.setOuterData(oriCode.getOuterData()); else if (!transCode.hasData()) { transCode.setData(oriCode.getData()); transCode.setReferenceFlag(oriCode.hasReference()); if (oriIndices[i] != -1) { Code code = oriCodes.get(oriIndices[i]); if (!code.isDeleteable()) { logger.warn("The code id='{}' ({}) is missing in target (item id='{}', name='{}')", code.getId(), code.getData(), tu.getId(), (tu.getName() == null ? "" : tu.getName())); logger.info("Source='{}'", tu.getSource().toString());
public List<Code> getCodesAsList () { String tmp = getString(GenericAnnotationType.LQI_XCODES); if ( tmp == null ) return null; String[] dataArray = tmp.split(CODES_SEP, 0); ArrayList<Code> list = new ArrayList<Code>(); for ( String data : dataArray ) { // We create fake codes, only the data matter list.add(new Code(TagType.PLACEHOLDER, "none", data)); } return list; }
tf.append(new Code(TagType.PLACEHOLDER, null, matcher.group())); List<Code> removedCodes = new LinkedList<>(); for (Code c : original.getCodes()) { matcher = ANY_SEG_TP_REGEX.matcher(c.getOuterData()); String d = matcher.replaceAll(""); if (!c.getOuterData().isEmpty() && d.isEmpty()) { removedCodes.add(c); } else if (!c.getData().isEmpty()) { c.setData(d); } else if (!c.getOuterData().isEmpty()) { c.setOuterData(d);
private String makeDisplayCode (Code code) { if ( mode == 0 ) { // Generic code if ( code.getData().isEmpty() ) { if ( code.getType().equals(SEGTYPECHAR) ) { return code.getOuterData(); switch ( code.getTagType() ) { case OPENING: return String.format("{%d}", code.getId()); case CLOSING: return String.format("{/%d}", code.getId()); case PLACEHOLDER: return String.format("{%d/}", code.getId()); switch ( code.getTagType() ) { case OPENING: return String.format("<%d>", code.getId()); case CLOSING: return String.format("</%d>", code.getId()); case PLACEHOLDER: return String.format("<%d/>", code.getId()); String data = code.getData(); if ( data.isEmpty() ) { data = code.getOuterData(); if ( data.isEmpty() ) data = "<>";
List<Code> codes2 = new LinkedList<>(); if (node1.code.isMerged()) { codes1.addAll(Code.stringToCodes(node1.code.getMergedData())); } else { codes1.add(node1.code); if (node2.code.isMerged()) { codes2.addAll(Code.stringToCodes(node2.code.getMergedData())); } else { codes2.add(node2.code); this.code.setMergedData(Code.codesToString(codes1)); String data1 = node1.code.getData(); String data2 = node2.code.getData(); String odata1 = node1.code.hasOuterData() ? node1.code.getOuterData() : null; String odata2 = node2.code.hasOuterData() ? node2.code.getOuterData() : null; this.code.setData(data1 + data2); this.code.setOuterData(odata1 + odata2);
String id = ((code.getOriginalId() != null) ? code.getOriginalId() : ""+code.getId()); switch ( code.getTagType() ) { case OPENING: destFrag.delete(i-1, i+1); ctag = destFrag.insert(net.sf.okapi.lib.xliff2.core.TagType.OPENING, code.getType(), id, code.getData(), i-1, false, true); ctag.setDisp(code.getDisplayText()); ctag.setCanCopy(code.isCloneable()); ctag.setCanDelete(code.isDeleteable()); break; case CLOSING: destFrag.delete(i-1, i+1); ctag = destFrag.insert(net.sf.okapi.lib.xliff2.core.TagType.CLOSING, code.getType(), id, code.getData(), i-1, true, true); ctag.setDisp(code.getDisplayText()); ctag.setCanCopy(code.isCloneable()); ctag.setCanDelete(code.isDeleteable()); break; case PLACEHOLDER: destFrag.delete(i-1, i+1); ctag = destFrag.insert(net.sf.okapi.lib.xliff2.core.TagType.STANDALONE, code.getType(), id, code.getData(), i-1, false, true); ctag.setDisp(code.getDisplayText()); ctag.setCanCopy(code.isCloneable()); ctag.setCanDelete(code.isDeleteable()); break;
code = codes.get(index); GenericAnnotations anns = code.getGenericAnnotations(); if ( anns != null ) { switch ( code.getTagType() ) { case OPENING: xCode = xFrag.append(net.sf.okapi.lib.xliff2.core.TagType.OPENING, String.valueOf(code.getId()), code.getData(), mayOverlapDefault); break; case CLOSING: xCode = xFrag.append(net.sf.okapi.lib.xliff2.core.TagType.CLOSING, String.valueOf(code.getId()), code.getData(), mayOverlapDefault); break; case PLACEHOLDER: default: xCode = xFrag.appendCode(String.valueOf(code.getId()), code.getData()); break; if ( code.hasReference() ) { String data = getReferences(code.getData()); if ( !Util.isEmpty(data) ) { xCode.setSubFlows(data); xCode.setDisp(code.getDisplayText()); xCode.setCanCopy(code.isCloneable()); xCode.setCanDelete(code.isDeleteable());
switch ( ctag.getTagType() ) { case CLOSING: code = new Code(TagType.CLOSING, ctag.getType()); break; case OPENING: code = new Code(TagType.OPENING, ctag.getType()); break; case STANDALONE: code = new Code(TagType.PLACEHOLDER, ctag.getType()); break; code.setOriginalId(ctag.getId()); code.setId(id); code.setCloneable(ctag.getCanCopy()); code.setDeleteable(ctag.getCanDelete()); code.setData(ctag.getData()); code.setDisplayText(ctag.getDisp());
index = TextFragment.toIndex(codedText.charAt(++i)); code = codes.get(index); if ( code.hasAnnotation("protected") ) { tmp.append("<hi type=\"protected\">"); } else { if (Util.isEmpty(code.getType())) { tmp.append(String.format("<bpt i=\"%d\">", code.getId())); } else { tmp.append(String.format("<bpt i=\"%d\" type=\"%s\">", code.getId(), code.getType())); otStack.push(code.getId()); tmp.append(Util.escapeToXML(String.format("<%d>", otStack.peek()), quoteMode, escapeGT, null)); break; case CODEMODE_LETTERCODED: otStack.push(code.getId()-letterCodeOffset); tmp.append(Util.escapeToXML(String.format("<g%d>", otStack.peek()), quoteMode, escapeGT, null)); break; tmp.append(Util.escapeToXML(codes.get(index).toString(), quoteMode, escapeGT, null)); break; index = TextFragment.toIndex(codedText.charAt(++i)); code = codes.get(index); tmp.append(String.format("<ept i=\"%d\">", code.getId())); tmp.append(Util.escapeToXML(codes.get(index).toString(), quoteMode, escapeGT, null)); break;
private Code addOpeningCode(TextFragment tf, RunContainer rc) { Code code = new Code(TagType.OPENING, createCodeType(rc)); code.setData("<" + rc.getType().getValue() + nextCodeId + ">"); code.setId(nextCodeId); tf.append(code); codeMap.put(nextCodeId, rc); // Entering the container means we also assume its default properties. runCodeStack.push(new RunCode(nextCodeId++, rc.getDefaultRunProperties(), rc.getDefaultCombinedRunProperties())); return code; }
if (Util.isEmpty(srcCode.getData()) || Util.isEmpty(trgCode.getData())) { continue; String srcData = StringUtil.removeWhiteSpace(srcCode.getData()); String trgData = StringUtil.removeWhiteSpace(trgCode.getData()); if (trgData.equals(srcData) && (trgCode.getId() == srcCode.getId())) if (lastCodeID < trgCode.getId()) lastCodeID = trgCode.getId(); continue; for ( int i=0; i<toUse.size(); i++ ) { candidate = toUse.get(i); String candidateData = StringUtil.removeWhiteSpace(candidate.getData()); if (trgData.equals(candidateData)) { trgCode.setId(candidate.getId()); toUse.remove(i); found = true; if ( lastCodeID < trgCode.getId() ) lastCodeID = trgCode.getId(); break; if (!Util.isEmpty(trgCode.getData())) { trgCode.setId(-1); needExtra = true; if (Util.isEmpty(trgCode.getData())) { Code code = base.findCode(trgCode.getId()); if (code != null)
private void addIsolatedCode(TextFragment textFragment, MarkupRange markupRange, String referentId) { int codeId = nextCodeId++; String codeType = createCodeType(markupRange); String codeData = getCodeData(referentId, codeId); Code code = new Code(TextFragment.TagType.PLACEHOLDER, codeType, codeData); code.setId(codeId); if (null != referentId) { code.setReferenceFlag(true); } textFragment.append(code); codeMap.put(codeId, markupRange); }
code = new Code(TagType.PLACEHOLDER, "index", "'>"+TextFragment.makeRefMarker(refTU.getId())+"<String `"); code.setReferenceFlag(true); extractedMarker = true; break; Code code2 = new Code(TagType.PLACEHOLDER, (( paraCodeTypes.length() > 0 ) ? paraCodeTypes.toString() : "code"), "'>"+paraCodeBuf.toString()+"<String `"); if ( tf.getCodes().size() == 1 ) { code = tf.getCode(0); if ( code.getType().equals("font") ) { skel.append(tmp.toString());
sb.append(tag.toString()); sb.append(" id=\""); sb.append(code.getId()); sb.append("\""); if (!tag.supported.isEmpty() && !code.getType().equals(Code.TYPE_NULL)) { sb.append(" ctype=\"").append(createCtype(code, tag)).append("\""); String displayText = code.getDisplayText(); if (displayText == null && (tag == TAG.x || tag == TAG.bx || tag == TAG.ex || tag == TAG.g)) { displayText = code.getData(); if (code.isMerged()) { sb.append(" okp:merged=\""); String merged = code.getMergedData(); merged = Util.escapeWhitespaceForXML(merged); sb.append(Util.escapeToXML(merged, 1, false, null));