package com.vistatec.ocelot.xliff.freme.helper; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; public class FremeXliff1_2Helper extends FremeXliffHelper { private static final String UNIT_NODE_NAME = "trans-unit"; private static final String TARGET_NODE_NAME = "target"; private static final String SOURCE_NODE_NAME = "source"; private static final String UNIT_ID_ATTR_NAME = "id"; private static final String TYPE_ATTRIBUTE = "mtype"; @Override public String getUnitNodeName() { return UNIT_NODE_NAME; } // @Override // public int getSegmentNumber(String unitId) { // int unitIdNum = Integer.parseInt(unitId); // return unitIdNum + 1; // } // // @Override // public String getUnitId(String segmentNumber) { // int segmentNumberNum = Integer.parseInt(segmentNumber); // return String.valueOf(segmentNumberNum - 1); // } @Override public Element getSourceElement(Element unitElement) { NodeList nodes = unitElement.getChildNodes(); Element source = null; int i = 0; while(i<nodes.getLength() && source == null){ if(nodes.item(i).getNodeName().equals(SOURCE_NODE_NAME)){ source = (Element)nodes.item(i); } else { i++; } } return source; } @Override public Element getTargetElement(Element unitElement) { Element targetElement = null; NodeList nodes = unitElement.getChildNodes(); int i = 0; while(i<nodes.getLength() && targetElement == null){ if(nodes.item(i).getNodeName().equals(TARGET_NODE_NAME)){ targetElement = (Element)nodes.item(i); } else { i++; } } return targetElement; } @Override public String getUnitId(Element unitElement) { return unitElement.getAttribute(UNIT_ID_ATTR_NAME); } @Override public void insertLinkNode(Element unitElement, Node linkNode) { if(unitElement != null && linkNode != null){ unitElement.appendChild(linkNode); } } @Override public String getTypeAttribute() { return TYPE_ATTRIBUTE; } }