List of usage examples for org.apache.commons.configuration Configuration setProperty
void setProperty(String key, Object value);
From source file:org.zaproxy.zap.extension.ascanrules.CommandInjectionPluginUnitTest.java
private static Configuration configWithSleepRule(String value) { Configuration config = new ZapXmlConfiguration(); config.setProperty(RuleConfigParam.RULE_COMMON_SLEEP_TIME, value); return config; }
From source file:org.zaproxy.zap.extension.authentication.ExtensionAuthentication.java
@Override public void exportContextData(Context ctx, Configuration config) { config.setProperty(AuthenticationMethod.CONTEXT_CONFIG_AUTH_TYPE, ctx.getAuthenticationMethod().getType().getUniqueIdentifier()); if (ctx.getAuthenticationMethod().getLoggedInIndicatorPattern() != null) { config.setProperty(AuthenticationMethod.CONTEXT_CONFIG_AUTH_LOGGEDIN, ctx.getAuthenticationMethod().getLoggedInIndicatorPattern().toString()); }/* w w w . j a v a2 s . c o m*/ if (ctx.getAuthenticationMethod().getLoggedOutIndicatorPattern() != null) { config.setProperty(AuthenticationMethod.CONTEXT_CONFIG_AUTH_LOGGEDOUT, ctx.getAuthenticationMethod().getLoggedOutIndicatorPattern().toString()); } ctx.getAuthenticationMethod().getType().exportData(config, ctx.getAuthenticationMethod()); }
From source file:org.zaproxy.zap.extension.authorization.ExtensionAuthorization.java
@Override public void exportContextData(Context ctx, Configuration config) { config.setProperty(AuthorizationDetectionMethod.CONTEXT_CONFIG_AUTH_TYPE, ctx.getAuthorizationDetectionMethod().getMethodUniqueIdentifier()); ctx.getAuthorizationDetectionMethod().exportMethodData(config); }
From source file:org.zaproxy.zap.extension.forceduser.ExtensionForcedUser.java
@Override public void exportContextData(Context ctx, Configuration config) { User user = getForcedUser(ctx.getIndex()); if (user != null) { config.setProperty("context.forceduser", user.getId()); } else {//from w w w.j a v a 2s.c o m config.setProperty("context.forceduser", -1); } }
From source file:org.zaproxy.zap.extension.pscan.PluginPassiveScanner.java
public void saveTo(Configuration conf) { conf.setProperty("pscans." + getClass().getCanonicalName() + ".enabled", this.isEnabled()); conf.setProperty("pscans." + getClass().getCanonicalName() + ".level", this.getLevel(true).name()); }
From source file:org.zaproxy.zap.extension.sessions.ExtensionSessionManagement.java
@Override public void exportContextData(Context ctx, Configuration config) { config.setProperty(CONTEXT_CONFIG_SESSION_TYPE, ctx.getSessionManagementMethod().getType().getUniqueIdentifier()); }
From source file:revaligner.service.FileAligner.java
private void reformatTargetFile(com.aspose.words.Document doc_trg) throws Exception { ExtractionSupportImpl extractionSupportImpl = new ExtractionSupportImpl( Locale.makeLocale(this.sourcelanguage), Locale.makeLocale(this.targetlanguage)); Configuration config = new BaseConfiguration(); config.setProperty("extraction.tokens.extract", "all"); extractionSupportImpl.setConfiguration(config); normalizeSpaceAfterESM(doc_trg, Locale.makeLocale(this.targetlanguage)); DeleteCommentsAndShapeAltText(doc_trg); convertMoveToIDTracks(doc_trg);//from w w w. j a v a 2 s.c o m while (doc_trg.getRevisions().getCount() != 0) { Revision rev = doc_trg.getRevisions().get(0); rev.reject(); } }
From source file:revaligner.service.FileAligner.java
private void mergeParagraphsInDocuemnt(com.aspose.words.Document doc) throws Exception { ExtractionSupportImpl extractionSupportImpl = new ExtractionSupportImpl( Locale.makeLocale(this.sourcelanguage), Locale.makeLocale(this.targetlanguage)); Configuration config = new BaseConfiguration(); config.setProperty("extraction.tokens.extract", "all"); extractionSupportImpl.setConfiguration(config); Paragraph prev_para = null;/*from w w w.j av a2s .c o m*/ Paragraph sample = new Paragraph(doc); Shape shape = null; boolean isStillSplitting = false; boolean ismoveaway = false; boolean ismoveto = false; int toskip = 0; List<Paragraph> toremove = new ArrayList(); for (int i = 0; i < doc.getChildNodes(0, true).getCount(); i++) { com.aspose.words.Node node = doc.getChildNodes(0, true).get(i); if (node.getNodeType() == 18) { shape = (Shape) node; } else if (node.getNodeType() == 13) { ismoveaway = true; } else if (node.getNodeType() == 14) { ismoveaway = false; } else if (node.getNodeType() == 15) { ismoveto = true; } else if (node.getNodeType() == 16) { ismoveto = false; } else if (node.getNodeType() == 8) { if (toskip > 0) { toskip--; } else { Paragraph para = (Paragraph) node; if ((para.isEndOfSection()) && ((para.isInsertRevision()) || (para.isDeleteRevision()))) { this.isSectionBreakDeletedORInserted = true; } if ((para.isInCell()) && (para.getPreviousSibling() == null)) { prev_para = null; isStillSplitting = false; } if ((shape != null) && (shape.getChildNodes(8, true).getCount() > 0) && (shape.getChildNodes(8, true).get(0) == para)) { prev_para = null; isStillSplitting = false; } if (prev_para != null) { if (isStillSplitting) { if ((prev_para.isInsertRevision()) || (ismoveto)) { if (extractionSupportImpl.isExtractable(getParaText(para))) { para.appendChild(new Run(doc, "¶ins;")); } } else { isStillSplitting = false; } } else if (((prev_para.isInsertRevision()) || (ismoveto)) && (!isWholeParaInserted(prev_para))) { if (extractionSupportImpl.isExtractable(getParaText(para))) { para.appendChild(new Run(doc, "¶ins;")); } isStillSplitting = true; } if ((para.isEndOfCell()) || (para.isEndOfHeaderFooter()) || (para.isEndOfSection())) { isStillSplitting = false; } if ((shape != null) && (shape.getChildNodes(8, true).getCount() > 0) && (shape .getChildNodes(8, true).get(shape.getChildNodes(8, true).getCount() - 1) == para)) { isStillSplitting = false; } if (((prev_para.isDeleteRevision()) || (ismoveaway)) && (!isWholeParaDeleted(prev_para))) { if ((para.getChildNodes(21, true).getCount() != 0) || (para.isDeleteRevision())) { prev_para.appendChild(new Run(doc, "¶del;")); i++; for (int j = 0; j < para.getChildNodes().getCount(); j++) { com.aspose.words.Node nd = para.getChildNodes().get(j); if ((nd.getNodeType() != 21) || (!((Run) nd).isDeleteRevision()) || (!((Run) nd).getText().contains(ControlChar.PAGE_BREAK))) { prev_para.appendChild(nd.deepClone(true)); i++; } } if (para.getChildNodes(14, true).getCount() != 0) { ismoveaway = false; } } prev_para.setDeleteRevision(para.getDeleteRevision()); prev_para.setInsertRevision(para.getInsertRevision()); if (!para.isInsertRevision()) { for (int z = 0; z < para.getChildNodes().getCount(); z++) { com.aspose.words.Node temp_nd = para.getChildNodes().get(z); if (temp_nd.getNodeType() == 15) { ismoveto = true; } else if (temp_nd.getNodeType() == 16) { ismoveto = false; } } para.remove(); i--; } else { toremove.add(para); prev_para = para; } } else if ((prev_para.isDeleteRevision()) && (isWholeParaDeleted(prev_para))) { prev_para.setDeleteRevision(sample.getDeleteRevision()); prev_para = para; } else if ((para.isEndOfCell()) || (para.isEndOfHeaderFooter())) { para.setDeleteRevision(sample.getDeleteRevision()); prev_para = null; } else if ((shape != null) && (shape.getChildNodes(8, true).getCount() > 0) && (shape .getChildNodes(8, true).get(shape.getChildNodes(8, true).getCount() - 1) == para)) { para.setDeleteRevision(sample.getDeleteRevision()); prev_para = null; } else { prev_para = para; } } else { if ((isStillSplitting) && (extractionSupportImpl.isExtractable(getParaText(para)))) { para.appendChild(new Run(doc, "¶ins;")); i++; } if (para.isInsertRevision()) { if ((extractionSupportImpl.isExtractable(getParaText(para))) && (!isWholeParaInserted(para))) { isStillSplitting = true; } } else { isStillSplitting = false; } if ((para.isEndOfCell()) || (para.isEndOfHeaderFooter())) { if ((para.getNextSibling() == null) && (para.getPreviousSibling() == null) && (para.isDeleteRevision()) && (isWholeParaDeleted(para))) { para.setDeleteRevision(sample.getDeleteRevision()); } prev_para = null; } else if ((shape != null) && (shape.getChildNodes(8, true).getCount() > 0) && (shape .getChildNodes(8, true).get(shape.getChildNodes(8, true).getCount() - 1) == para)) { if ((para.getNextSibling() == null) && (para.getPreviousSibling() == null) && (para.isDeleteRevision()) && (isWholeParaDeleted(para))) { para.setDeleteRevision(sample.getDeleteRevision()); } prev_para = null; } else { prev_para = para; } } } } else if (node.getNodeType() == 5) { Table tb = (Table) node; if (isWholeTableDeleted(tb, doc)) { toskip = tb.getChildNodes(8, true).getCount(); } } } for (Paragraph p : toremove) { if (p != null) { p.removeAllChildren(); } } doc.save("C:\\Program Files (x86)\\pa\\paprjs\\testprj23\\test.docx"); }
From source file:revaligner.service.FileAligner.java
public String[] createAlignedXML() throws Exception { System.out.println("creating aligned xml...."); String[] res = new String[1]; this.txlftrgsegmap = new LinkedHashMap(); this.alignedfile = (this.prjfolder + File.separator + "rev_aligned.xml"); this.reformattedtargetmapfile = (this.prjfolder + File.separator + "target_reformatted" + File.separator + ".mp"); StringBuffer sbmp = new StringBuffer(); if (new File(this.alignedfile).exists()) { new File(this.alignedfile).delete(); }/*from w w w.j a v a2s .com*/ SegmenterFactory factory = new SegmenterFactory(); Configuration segconfig = createConfigForSegmenter(false, this.sourcelanguage); Segmenter segmenter = factory.getSegmenter("trados", Locale.makeLocale(this.sourcelanguage), segconfig); org.dom4j.Document document = DocumentHelper.createDocument(); org.dom4j.Element root = document.addElement("alinger"); org.dom4j.Element head = root.addElement("head"); head.addAttribute("src_lang", this.sourcelanguage); head.addAttribute("trg_lang", this.targetlanguage); head.addAttribute("creator", this.creatorid); org.dom4j.Element aligned = root.addElement("aligned"); org.dom4j.Element orphans = root.addElement("orphans"); org.dom4j.Document document_source_formatted_nonSeg = XmlParser .parseXmlFile(this.reformattedsourcetxlf_nonSeg); org.dom4j.Element root_source_formatted_nonSeg = document_source_formatted_nonSeg.getRootElement(); List list_source_formatted_nonSeg = root_source_formatted_nonSeg.selectNodes("//*[name() = 'trans-unit']"); org.dom4j.Document document_target_nonSeg = XmlParser.parseXmlFile(this.reformattedtargettxlf_nonSeg); org.dom4j.Element root_target_nonSeg = document_target_nonSeg.getRootElement(); List list_target_nonSeg = root_target_nonSeg.selectNodes("//*[name() = 'trans-unit']"); org.dom4j.Document document_target_seg = XmlParser.parseXmlFile(this.reformattedtargettxlf_seg); org.dom4j.Element root_target_seg = document_target_seg.getRootElement(); List list_target_seg = root_target_seg.selectNodes("//*[name() = 'group'][@restype = 'x-paragraph']"); int trg_para_count = 0; ExtractionSupportImpl extractionSupportImpl = new ExtractionSupportImpl( Locale.makeLocale(this.sourcelanguage), Locale.makeLocale(this.targetlanguage)); Configuration config = new BaseConfiguration(); config.setProperty("extraction.tokens.extract", "all"); extractionSupportImpl.setConfiguration(config); Workbook wb = new Workbook(); Cells cells = wb.getWorksheets().get(0).getCells(); int cnt = 0; boolean issrcfirsthf = true; boolean istrgfirsthf = true; int gcount = -1; for (int i = 0; i < list_source_formatted_nonSeg.size(); i++) { org.dom4j.Element src_txlf = ((org.dom4j.Element) list_source_formatted_nonSeg.get(i)) .element("source"); String merged_text = getTxlfElementText_withFakeTC(src_txlf); if (extractionSupportImpl .isExtractable(merged_text.replace("&paradel;", "").replace("&parains;", ""))) { gcount++; org.dom4j.Element group = aligned.addElement("group"); group.addAttribute("id", Integer.toString(gcount)); merged_text = trimText(merged_text, true)[0]; org.dom4j.Element merged_src_text = group.addElement("text"); merged_src_text.setText(merged_text.replace("&paradel;", "").replace("&parains;", "")); String[] split_merged_text = merged_text.replaceAll("(&paradel;)+", "&paradel;") .replaceAll("^&paradel;", "").replaceAll("&paradel;$", "").split("&paradel;"); List<String> segmentsGroup = segmentStringWithRevs( merged_text.replaceAll("(&paradel;)+", "&paradel;").replace("&parains;", ""), this.sourcelanguage); List<List<String>> resegmentedGroup = new ArrayList(); resegmentedGroup.add(new ArrayList()); int idx = 0; String orgs; String[] newsegs; for (int s = 0; s < segmentsGroup.size(); s++) { orgs = (String) segmentsGroup.get(s); if (orgs.contains("&paradel;")) { newsegs = orgs.split("&paradel;"); for (int ss = 0; ss < newsegs.length; ss++) { String sss = newsegs[ss]; if (!sss.trim().equals("")) { ((List) resegmentedGroup.get(idx)).add(fixMissingTags(sss)); } if ((((List) resegmentedGroup.get(idx)).size() != 0) && (ss != newsegs.length - 1)) { resegmentedGroup.add(new ArrayList()); idx++; } } if (orgs.trim().endsWith("&paradel;")) { resegmentedGroup.add(new ArrayList()); idx++; } } else { ((List) resegmentedGroup.get(idx)).add(fixMissingTags(orgs)); } } if (split_merged_text.length > resegmentedGroup.size()) { System.out.println(i); System.out.println("merged_text: " + merged_text); for (String smt : split_merged_text) { System.out.println("split_merged_text: " + smt); } for (List<String> smts : resegmentedGroup) { System.out.println("resegmentedGroup: " + smts); } for (String smtss : segmentsGroup) { System.out.println("segmentedGroup: " + smtss); } } for (int j = 0; j < split_merged_text.length; j++) { if (!split_merged_text[j].replaceAll("<(/)*ins>|<(/)*del>", "").trim().equals("")) { split_merged_text[j] = fixMissingTags(split_merged_text[j]); org.dom4j.Element unit = group.addElement("unit"); unit.addAttribute("id", Integer.toString(j)); unit.addAttribute("alignsegs", "false"); org.dom4j.Element src = unit.addElement("src_para"); org.dom4j.Element src_text = src.addElement("text"); boolean ishf = split_merged_text[j].contains("&hf;"); if (!ishf) { issrcfirsthf = false; } boolean isAddedPara = split_merged_text[j].contains("&parains;"); src.addAttribute("added", "" + isAddedPara); String[] trim_result = trimText( split_merged_text[j].replace("&parains;", "").replace("&hf;", ""), false); src.addAttribute("lefttrim", trim_result[1]); src.addAttribute("righttrim", trim_result[2]); split_merged_text[j] = trim_result[0]; int src_tctype_para = TrackChangeHelper.getTrackChangeType(split_merged_text[j]); src.addAttribute("tctype", TrackChangeType.getName(src_tctype_para)); String rejected_src = split_merged_text[j].replaceAll("(?s)<ins>.*?</ins>", "") .replace("<del>", "").replace("</del>", ""); if ((!extractionSupportImpl.isExtractable(rejected_src)) || (ishf)) { unit.addAttribute("locked", "true"); } else { unit.addAttribute("locked", "false"); } src_text.setText(split_merged_text[j]); cells.get(cnt, 0).setHtmlString("<html>" + split_merged_text[j].replace("ins>", "u>") .replace("del>", "strike>").replace("<br> ", "↵<br>") + "</html>"); org.dom4j.Element src_segs = src.addElement("segments"); List<String> segments = (List) resegmentedGroup.get(j); for (int z = 0; z < segments.size(); z++) { String segment_text = trimText((String) segments.get(z), false)[0]; org.dom4j.Element src_seg = src_segs.addElement("src_seg"); src_seg.addAttribute("id", Integer.toString(z)); src_seg.addAttribute("needreview", "false"); src_seg.addAttribute("ignored", "false"); int tctype_seg = TrackChangeHelper.getTrackChangeType(segment_text); src_seg.addAttribute("tctype", TrackChangeType.getName(tctype_seg)); String accepted_t = segment_text.replaceAll("(?s)<del>.*?</del>", "") .replace("<ins>", "").replace("</ins>", ""); src_seg.addAttribute("isExtractable", Boolean.toString(extractionSupportImpl.isExtractable(accepted_t))); String rejected_s = segment_text.replaceAll("(?s)<ins>.*?</ins>", "") .replace("<del>", "").replace("</del>", ""); if ((!extractionSupportImpl.isExtractable(rejected_s)) || (ishf)) { src_seg.addAttribute("locked", "true"); } else { src_seg.addAttribute("locked", "false"); } src_seg.setText(segment_text); } org.dom4j.Element trg = unit.addElement("trg_para"); if ((src_tctype_para != 1) && (!isAddedPara) && (!ishf) && (trg_para_count < list_target_nonSeg.size())) { trg.addAttribute("id", Integer.toString(gcount) + " - " + Integer.toString(j)); org.dom4j.Element trg_text = trg.addElement("text"); org.dom4j.Element trg_txlf = ((org.dom4j.Element) list_target_nonSeg .get(trg_para_count)).element("source"); org.dom4j.Element trg_txlf_seg = (org.dom4j.Element) list_target_seg .get(trg_para_count); while (trg_txlf.getText().contains("&hf;")) { trg_para_count++; trg_txlf = ((org.dom4j.Element) list_target_nonSeg.get(trg_para_count)) .element("source"); trg_txlf_seg = (org.dom4j.Element) list_target_seg.get(trg_para_count); } istrgfirsthf = false; String trg_formatted_text = getTxlfElementText_normal(trg_txlf); trg_text.setText(trg_formatted_text.replace("&hf;", "")); cells.get(cnt, 1) .setHtmlString("<html>" + trg_formatted_text.replace("ins>", "u>").replace("del>", "strike>") .replace("&hf;", "").replace("<br> ", "↵<br>") + "</html>"); cnt++; org.dom4j.Element trg_segs = trg.addElement("segments"); List<String> trgsegs = segmentStringWithRevs(trg_formatted_text, this.targetlanguage); List<org.dom4j.Element> srcsegs = src_segs.elements("src_seg"); int trg_tmp_cnt = 0; for (int z = 0; trg_tmp_cnt < trgsegs.size(); z++) { org.dom4j.Element trg_seg = trg_segs.addElement("trg_seg"); trg_seg.addAttribute("id", Integer.toString(z)); trg_seg.addAttribute("edited", "false"); if ((z < srcsegs.size()) && (((org.dom4j.Element) srcsegs.get(z)) .attributeValue("tctype").equals(TrackChangeType.getName(1)))) { trg_seg.addAttribute("isExtractable", "false"); trg_seg.setText(""); } else { String trgsegtext = ((String) trgsegs.get(trg_tmp_cnt)).replace("&hf;", "") .trim(); trg_seg.addAttribute("isExtractable", Boolean.toString(extractionSupportImpl.isExtractable(trgsegtext))); trg_seg.setText(trgsegtext); String mapid = Integer.toString(gcount) + " - " + Integer.toString(j) + " - " + Integer.toString(z); List t = ((org.dom4j.Element) trg_txlf_seg.elements("trans-unit") .get(trg_tmp_cnt)).content(); sbmp.append(mapid + "\t" + trg_para_count + "\t" + trg_tmp_cnt + "\n"); trg_tmp_cnt++; } } trg_para_count++; } else { trg.addAttribute("id", Integer.toString(gcount) + " - " + Integer.toString(j)); org.dom4j.Element trg_text = trg.addElement("text"); trg_text.setText(""); trg.addElement("segments"); cnt++; } int trgcnt = trg.element("segments").elements("trg_seg").size(); int srccnt = src.element("segments").elements("src_seg").size(); if (trgcnt < srccnt) { for (int x = 1; x <= srccnt - trgcnt; x++) { org.dom4j.Element trg_seg = trg.element("segments").addElement("trg_seg"); trg_seg.addAttribute("id", Integer.toString(trgcnt + x - 1)); trg_seg.addAttribute("edited", "false"); trg_seg.addAttribute("isExtractable", "false"); trg_seg.setText(""); } } } } } } int unitcnt = list_source_formatted_nonSeg.size(); for (int i = trg_para_count; i < list_target_nonSeg.size(); i++) { org.dom4j.Element trg_txlf = ((org.dom4j.Element) list_target_nonSeg.get(trg_para_count)) .element("source"); org.dom4j.Element trg_txlf_seg = (org.dom4j.Element) list_target_seg.get(trg_para_count); if (!trg_txlf.getText().contains("&hf;")) { org.dom4j.Element group = aligned.addElement("group"); group.addAttribute("id", Integer.toString(unitcnt)); group.addElement("text").setText(""); org.dom4j.Element unit = group.addElement("unit"); unit.addAttribute("id", "0"); unit.addAttribute("alignsegs", "false"); unit.addAttribute("locked", "false"); org.dom4j.Element trg = unit.addElement("trg_para"); trg.addAttribute("id", Integer.toString(unitcnt) + " - 0"); org.dom4j.Element trg_text = trg.addElement("text"); String trg_formatted_text = getTxlfElementText_normal(trg_txlf); trg_text.setText(trg_formatted_text.replace("&hf;", "")); org.dom4j.Element trg_segs = trg.addElement("segments"); List<String> trgsegs = segmentStringWithRevs(trg_formatted_text.replace("&hf;", ""), this.targetlanguage); for (int z = 0; z < trgsegs.size(); z++) { org.dom4j.Element trg_seg = trg_segs.addElement("trg_seg"); trg_seg.addAttribute("id", Integer.toString(z)); trg_seg.addAttribute("edited", "false"); trg_seg.addAttribute("isExtractable", Boolean.toString(extractionSupportImpl.isExtractable((String) trgsegs.get(z)))); trg_seg.setText(((String) trgsegs.get(z)).trim()); String mapid = Integer.toString(unitcnt) + " - 0 - " + Integer.toString(z); List t = ((org.dom4j.Element) trg_txlf_seg.elements("trans-unit").get(z)).content(); sbmp.append(mapid + "\t" + trg_para_count + "\t" + z + "\n"); } trg_para_count++; unitcnt++; } } wb.save(this.prjfolder + File.separator + "verifySegsPop.xlsx"); OutputStreamWriter writer = new OutputStreamWriter( new BufferedOutputStream(new FileOutputStream(this.alignedfile)), "UTF8"); document.write(writer); writer.close(); OutputStreamWriter writermp = new OutputStreamWriter( new BufferedOutputStream(new FileOutputStream(this.reformattedtargetmapfile)), "UTF8"); writermp.write(sbmp.toString()); writermp.close(); return res; }
From source file:revaligner.service.FileAligner.java
public void createAlignedXML_auto(String prjid) throws Exception { System.out.println("creating aligned xml with nbAligner...."); this.alignedfile = (this.prjfolder + File.separator + "rev_aligned.xml"); this.reformattedtargetmapfile = (this.prjfolder + File.separator + "target_reformatted" + File.separator + ".mp"); HashMap<String, String> srcidmap = new HashMap(); this.nbalignerfolder = (this.prjfolder + File.separator + "nbaligner"); if (!new File(this.nbalignerfolder).exists()) { new File(this.nbalignerfolder).mkdir(); }//from w ww . j ava2s . c o m FileUtils.cleanDirectory(new File(this.nbalignerfolder)); String nbsourcefolder = this.nbalignerfolder + File.separator + this.sourcelanguage; new File(nbsourcefolder).mkdir(); org.dom4j.Document nbsource = DocumentHelper.createDocument(); org.dom4j.Element root_src = nbsource.addElement("txml"); root_src.addAttribute("locale", this.sourcelanguage); root_src.addAttribute("version", "1.0"); root_src.addAttribute("segtype", "sentence"); org.dom4j.Element translatable_src = root_src.addElement("translatable"); translatable_src.addAttribute("blockId", "1"); String nbtargetfolder = this.nbalignerfolder + File.separator + this.targetlanguage; new File(nbtargetfolder).mkdir(); org.dom4j.Document nbtarget = DocumentHelper.createDocument(); org.dom4j.Element root_trg = nbtarget.addElement("txml"); root_trg.addAttribute("locale", this.targetlanguage); root_trg.addAttribute("version", "1.0"); root_trg.addAttribute("segtype", "sentence"); org.dom4j.Element translatable_trg = root_trg.addElement("translatable"); translatable_trg.addAttribute("blockId", "0"); if (new File(this.alignedfile).exists()) { new File(this.alignedfile).delete(); } SegmenterFactory factory = new SegmenterFactory(); Configuration segconfig = createConfigForSegmenter(false, this.sourcelanguage); Segmenter segmenter = factory.getSegmenter("trados", Locale.makeLocale(this.sourcelanguage), segconfig); org.dom4j.Document document = DocumentHelper.createDocument(); org.dom4j.Element root = document.addElement("alinger"); org.dom4j.Element head = root.addElement("head"); head.addAttribute("src_lang", this.sourcelanguage); head.addAttribute("trg_lang", this.targetlanguage); head.addAttribute("creator", this.creatorid); org.dom4j.Element aligned = root.addElement("aligned"); org.dom4j.Element orphans = root.addElement("orphans"); org.dom4j.Document document_source_formatted_nonSeg = XmlParser .parseXmlFile(this.reformattedsourcetxlf_nonSeg); org.dom4j.Element root_source_formatted_nonSeg = document_source_formatted_nonSeg.getRootElement(); List list_source_formatted_nonSeg = root_source_formatted_nonSeg.selectNodes("//*[name() = 'trans-unit']"); org.dom4j.Document document_target_nonSeg = XmlParser.parseXmlFile(this.reformattedtargettxlf_nonSeg); org.dom4j.Element root_target_nonSeg = document_target_nonSeg.getRootElement(); List list_target_nonSeg = root_target_nonSeg.selectNodes("//*[name() = 'trans-unit']"); org.dom4j.Document document_target_seg = XmlParser.parseXmlFile(this.reformattedtargettxlf_seg); org.dom4j.Element root_target_seg = document_target_seg.getRootElement(); List list_target_seg = root_target_seg.selectNodes("//*[name() = 'group'][@restype = 'x-paragraph']"); ExtractionSupportImpl extractionSupportImpl_src = new ExtractionSupportImpl( Locale.makeLocale(this.sourcelanguage), Locale.makeLocale(this.sourcelanguage)); Configuration config_src = new BaseConfiguration(); config_src.setProperty("extraction.tokens.extract", "all"); extractionSupportImpl_src.setConfiguration(config_src); ExtractionSupportImpl extractionSupportImpl_trg = new ExtractionSupportImpl( Locale.makeLocale(this.targetlanguage), Locale.makeLocale(this.targetlanguage)); Configuration config_trg = new BaseConfiguration(); config_trg.setProperty("extraction.tokens.extract", "all"); extractionSupportImpl_trg.setConfiguration(config_trg); boolean issrcfirsthf = true; boolean istrgfirsthf = true; int gcount = -1; int segmentId = 0; for (int i = 0; i < list_source_formatted_nonSeg.size(); i++) { org.dom4j.Element src_txlf = ((org.dom4j.Element) list_source_formatted_nonSeg.get(i)) .element("source"); String merged_text = getTxlfElementText_withFakeTC(src_txlf); if (extractionSupportImpl_src .isExtractable(merged_text.replace("&paradel;", "").replace("&parains;", ""))) { gcount++; org.dom4j.Element group = aligned.addElement("group"); group.addAttribute("id", Integer.toString(gcount)); merged_text = trimText(merged_text, true)[0]; org.dom4j.Element merged_src_text = group.addElement("text"); merged_src_text.setText(merged_text.replace("&paradel;", "").replace("&parains;", "")); String[] split_merged_text = merged_text.replaceAll("(&paradel;)+", "&paradel;") .replaceAll("^&paradel;", "").replaceAll("&paradel;$", "").split("&paradel;"); List<String> segmentsGroup = segmentStringWithRevs( merged_text.replaceAll("(&paradel;)+", "&paradel;").replace("&parains;", ""), this.sourcelanguage); List<List<String>> resegmentedGroup = new ArrayList(); resegmentedGroup.add(new ArrayList()); int idx = 0; String orgs; String[] newsegs; for (int s = 0; s < segmentsGroup.size(); s++) { orgs = (String) segmentsGroup.get(s); if (orgs.contains("&paradel;")) { newsegs = orgs.split("&paradel;"); for (int ss = 0; ss < newsegs.length; ss++) { String sss = newsegs[ss]; if (!sss.trim().equals("")) { ((List) resegmentedGroup.get(idx)).add(fixMissingTags(sss)); } if ((((List) resegmentedGroup.get(idx)).size() != 0) && (ss != newsegs.length - 1)) { resegmentedGroup.add(new ArrayList()); idx++; } } if (orgs.trim().endsWith("&paradel;")) { resegmentedGroup.add(new ArrayList()); idx++; } } else { ((List) resegmentedGroup.get(idx)).add(fixMissingTags(orgs)); } } if (split_merged_text.length > resegmentedGroup.size()) { System.out.println(i); System.out.println("merged_text: " + merged_text); for (String smt : split_merged_text) { System.out.println("split_merged_text: " + smt); } for (List<String> smts : resegmentedGroup) { System.out.println("resegmentedGroup: " + smts); } for (String smtss : segmentsGroup) { System.out.println("segmentedGroup: " + smtss); } } for (int j = 0; j < split_merged_text.length; j++) { if (!split_merged_text[j].replaceAll("<(/)*ins>|<(/)*del>", "").trim().equals("")) { split_merged_text[j] = fixMissingTags(split_merged_text[j]); Element unit = group.addElement("unit"); unit.addAttribute("id", Integer.toString(j)); unit.addAttribute("alignsegs", "false"); Element src = unit.addElement("src_para"); org.dom4j.Element src_text = src.addElement("text"); boolean isAddedPara = split_merged_text[j].contains("&parains;"); src.addAttribute("added", "" + isAddedPara); String[] trim_result = trimText(split_merged_text[j].replace("&parains;", ""), false); src.addAttribute("lefttrim", trim_result[1]); src.addAttribute("righttrim", trim_result[2]); split_merged_text[j] = trim_result[0]; int src_tctype_para = TrackChangeHelper.getTrackChangeType(split_merged_text[j]); src.addAttribute("tctype", TrackChangeType.getName(src_tctype_para)); String rejected_src = split_merged_text[j].replaceAll("(?s)<ins>.*?</ins>", "") .replace("<del>", "").replace("</del>", ""); if (!extractionSupportImpl_src.isExtractable(rejected_src)) { unit.addAttribute("locked", "true"); } else { unit.addAttribute("locked", "false"); } src_text.setText(split_merged_text[j]); org.dom4j.Element src_segs = src.addElement("segments"); List<String> segments = (List) resegmentedGroup.get(j); for (int z = 0; z < segments.size(); z++) { String segment_text = trimText((String) segments.get(z), false)[0]; org.dom4j.Element src_seg = src_segs.addElement("src_seg"); src_seg.addAttribute("id", Integer.toString(z)); src_seg.addAttribute("needreview", "false"); src_seg.addAttribute("ignored", "false"); int tctype_seg = TrackChangeHelper.getTrackChangeType(segment_text); src_seg.addAttribute("tctype", TrackChangeType.getName(tctype_seg)); String accepted_t = segment_text.replaceAll("(?s)<del>.*?</del>", "") .replace("<ins>", "").replace("</ins>", ""); src_seg.addAttribute("isExtractable", Boolean.toString(extractionSupportImpl_src.isExtractable(accepted_t))); String rejected_s = segment_text.replaceAll("(?s)<ins>.*?</ins>", "") .replace("<del>", "").replace("</del>", ""); if (!extractionSupportImpl_src.isExtractable(rejected_s)) { src_seg.addAttribute("locked", "true"); } else { src_seg.addAttribute("locked", "false"); org.dom4j.Element segment_src = translatable_src.addElement("segment"); segment_src.addAttribute("segmentId", Integer.toString(segmentId)); srcidmap.put(i + " - " + j + " - " + z, Integer.toString(segmentId)); segmentId++; segment_src.addElement("source").setText(rejected_s); } src_seg.setText(segment_text); } } } } } segmentId = 0; for (int i = 0; i < list_target_nonSeg.size(); i++) { org.dom4j.Element trg_txlf = ((org.dom4j.Element) list_target_nonSeg.get(i)).element("source"); String trg_formatted_text = getTxlfElementText_normal(trg_txlf); List<String> trgsegs = segmentStringWithRevs(trg_formatted_text, this.targetlanguage); for (int j = 0; j < trgsegs.size(); j++) { String trgseg = ((String) trgsegs.get(j)).trim().replaceAll("(\\s)+", " "); if (extractionSupportImpl_trg.isExtractable(trgseg)) { org.dom4j.Element segment_trg = translatable_trg.addElement("segment"); segment_trg.addAttribute("segmentId", Integer.toString(segmentId)); segmentId++; segment_trg.addElement("source").setText(trgseg); } } } OutputStreamWriter writer = new OutputStreamWriter( new BufferedOutputStream( new FileOutputStream(nbsourcefolder + File.separator + this.sourcelanguage + ".txml")), "UTF8"); nbsource.write(writer); writer.close(); writer = new OutputStreamWriter( new BufferedOutputStream( new FileOutputStream(nbtargetfolder + File.separator + this.targetlanguage + ".txml")), "UTF8"); nbtarget.write(writer); writer.close(); String pahtexe = "\\\\10.2.50.190\\AutoAlignerCLI\\AutoAlignerCLI.exe"; ProcessBuilder pb = new ProcessBuilder( new String[] { pahtexe, "-i", this.nbalignerfolder, "-o", this.nbalignerfolder, "-lang_pairs", this.sourcelanguage + "_" + this.targetlanguage, "-lang_detect", "normal", "-identicals", "-match_filenames", "-txml_or_xmx_output", "-docnames_output", "-disallow_src_merging" }); pb.redirectErrorStream(true); Process p = pb.start(); InputStreamReader isr = new InputStreamReader(p.getInputStream()); BufferedReader br = new BufferedReader(isr); boolean sentESTTime = false; boolean alignstart = false; String lineRead; while ((lineRead = br.readLine()) != null) { System.out.println(lineRead); if (lineRead.contains("Aligning...")) { alignstart = true; } else { if ((lineRead.contains("Estimated Time to Completion:")) && (alignstart)) { this.estimateNBAlignerCompTime = lineRead.replace("Estimated Time to Completion: ", "") .replace(" Minute(s)", ""); } if ((!this.estimateNBAlignerCompTime.equals("")) && (!sentESTTime)) { sentESTTime = true; try { int minutes = 200 + Integer.parseInt(this.estimateNBAlignerCompTime); setAlignProgress(prjid, minutes); this.estimateNBAlignerCompTime = ""; } catch (Exception ex) { ex.printStackTrace(); } } } } p.waitFor(); for (File file : new File(this.nbalignerfolder).listFiles()) { if (file.getName().endsWith(".zip")) { UnzipFile.UnZipIt(file.getAbsolutePath(), this.nbalignerfolder); } } String alignedtxml = ""; for (File file : new File(this.nbalignerfolder).listFiles()) { if (file.getName().endsWith(".txml")) { alignedtxml = file.getAbsolutePath(); } } if (alignedtxml.equals("")) { throw new Exception("file didn't aligned by nbaligner"); } HashMap<String, String[]> alignedtrgs = new HashMap(); List<String[]> missingtrgs = new ArrayList(); int src_idx = -1; org.dom4j.Document alignedtxmldoc = XmlParser.parseXmlFile(alignedtxml); org.dom4j.Element root_alignedtxmldoc = alignedtxmldoc.getRootElement(); for (int i = 0; i < root_alignedtxmldoc.elements("translatable").size(); i++) { org.dom4j.Element translatable = (org.dom4j.Element) root_alignedtxmldoc.elements("translatable") .get(i); for (int j = 0; j < translatable.elements("segment").size(); j++) { org.dom4j.Element segment = (org.dom4j.Element) translatable.elements("segment").get(j); org.dom4j.Element source = segment.element("source"); org.dom4j.Element target = segment.element("target"); if ((source != null) && (!source.getTextTrim().equals(""))) { src_idx++; if ((target != null) && (!target.getTextTrim().equals(""))) { String matchscore = target.attributeValue("score"); int trg_idx = Integer.parseInt(target.attributeValue("sent_no")); if (matchscore.equals("0")) { alignedtrgs.put(Integer.toString(src_idx), new String[] { target.getTextTrim(), "1", Integer.toString(trg_idx) }); } else if (target.attribute("original_segments_count") != null) { int merged_cnt = Integer.parseInt(target.attributeValue("original_segments_count")); String trg_idx_str = Integer.toString(trg_idx) + " - " + Integer.toString(trg_idx + merged_cnt - 1); alignedtrgs.put(Integer.toString(src_idx), new String[] { target.getTextTrim(), matchscore, trg_idx_str }); } else { alignedtrgs.put(Integer.toString(src_idx), new String[] { target.getTextTrim(), matchscore, Integer.toString(trg_idx) }); } } } else if ((target != null) && (!target.getTextTrim().equals(""))) { String matchscore = target.attributeValue("score"); int trg_idx = Integer.parseInt(target.attributeValue("sent_no")); missingtrgs.add(new String[] { target.getTextTrim(), Integer.toString(trg_idx) }); } } } int null_idx = 0; List<org.dom4j.Element> groups = aligned.elements("group"); for (int i = 0; i < groups.size(); i++) { org.dom4j.Element group = (org.dom4j.Element) groups.get(i); List<org.dom4j.Element> units = group.elements("unit"); for (int j = 0; j < units.size(); j++) { org.dom4j.Element unit = (org.dom4j.Element) units.get(j); org.dom4j.Element src_para = unit.element("src_para"); org.dom4j.Element src_para_segs = src_para.element("segments"); org.dom4j.Element trg_para = unit.addElement("trg_para"); org.dom4j.Element trg_para_segs = trg_para.addElement("segments"); List<org.dom4j.Element> src_segs = src_para_segs.elements("src_seg"); for (int z = 0; z < src_segs.size(); z++) { org.dom4j.Element src_seg = (org.dom4j.Element) src_segs.get(z); org.dom4j.Element trg_seg = trg_para_segs.addElement("trg_seg"); String mapid = Integer.toString(i) + " - " + Integer.toString(j) + " - " + Integer.toString(z); trg_seg.addAttribute("edited", "false"); String trgsegtext = ""; if (srcidmap.containsKey(mapid)) { String sourceidintxml = (String) srcidmap.get(mapid); if (alignedtrgs.containsKey(sourceidintxml)) { src_seg.addAttribute("locked", "true"); trgsegtext = ((String[]) alignedtrgs.get(sourceidintxml))[0]; String score = ((String[]) alignedtrgs.get(sourceidintxml))[1]; String targetidintxml = ((String[]) alignedtrgs.get(sourceidintxml))[2]; if (Integer.parseInt(score) < needreviewthreshhold) { src_seg.addAttribute("needreview", "true"); } trg_seg.addAttribute("id", targetidintxml); trg_seg.addAttribute("isExtractable", Boolean.toString(extractionSupportImpl_trg.isExtractable(trgsegtext))); } else { trg_seg.addAttribute("id", "n - " + null_idx); null_idx++; trg_seg.addAttribute("isExtractable", "false"); } } else { trg_seg.addAttribute("id", "n - " + null_idx); null_idx++; trg_seg.addAttribute("isExtractable", "false"); } trg_seg.setText(trgsegtext); } } } org.dom4j.Element orp_unit = orphans.addElement("unit"); orp_unit.addAttribute("id", "0"); org.dom4j.Element orp_trg_para = orp_unit.addElement("trg_para"); org.dom4j.Element orp_segments = orp_trg_para.addElement("segments"); for (int i = 0; i < missingtrgs.size(); i++) { String orptrgtext = ((String[]) missingtrgs.get(i))[0]; String orptrgid = ((String[]) missingtrgs.get(i))[1]; org.dom4j.Element orp_trg_seg = orp_segments.addElement("trg_seg"); orp_trg_seg.addAttribute("id", orptrgid); orp_trg_seg.addAttribute("edited", "false"); orp_trg_seg.addAttribute("isExtractable", Boolean.toString(extractionSupportImpl_trg.isExtractable(orptrgtext))); orp_trg_seg.setText(orptrgtext); } OutputStreamWriter oswriter = new OutputStreamWriter( new BufferedOutputStream(new FileOutputStream(this.alignedfile)), "UTF8"); document.write(oswriter); oswriter.close(); }