private SegmentGroup createGroup(String id, String name, String mandatory, String maxOccurance, Map<String, String> definitions) { SegmentGroup group = new SegmentGroup(); group.setXmltag(XmlTagEncoder.encode(name.trim())); String test = definitions.get(id); group.setDocumentation(test.trim()); group.setMinOccurs(mandatory.equals("M") ? 1 : 0); group.setMaxOccurs(Integer.valueOf(maxOccurance)); return group; }
private boolean digestSegmentGroup(Node currentNode, List<SegmentGroup> segmentGroupList, String namespacePrefix, MappingNode parent) throws EDIConfigurationException { if (currentNode.getNodeName().equalsIgnoreCase(namespacePrefix + "segmentGroup")) { SegmentGroup segment = new SegmentGroup(); segment.setDocumentation(getNodeValue(currentNode, namespacePrefix + "documentation")); segmentGroupList.add(segment); digestSegment(currentNode, segment, namespacePrefix, parent); return true; } else if (currentNode.getNodeName().equalsIgnoreCase(namespacePrefix + "segment")) { Segment segment = new Segment(); segmentGroupList.add(segment); digestSegment(currentNode, segment, namespacePrefix, parent); return true; } return false; }
public static Edimap parse(Reader dataReader, Reader compositeReader, Reader segmentReader, boolean useShortName) throws IOException, EdiParseException { Map<String, Component> datas = UnEdifactDefinitionReader.readComponents(dataReader, useShortName); Map<String, Field> composites = UnEdifactDefinitionReader.readFields(compositeReader, datas, useShortName); List<Segment> segments = UnEdifactDefinitionReader.readSegments(segmentReader, composites, datas, useShortName); Edimap edimap = new Edimap(); edimap.setSegments(new SegmentGroup()); edimap.getSegments().getSegments().addAll(segments); return edimap; }
/** * Digest attributes and child elements of Segments element. Populates Segments. * @param node the Segments element. * @param edimap the {@link org.dhatim.edisax.model.internal.Edimap} to populate. * @param namespacePrefix the prefix used to name elements in xml. * @throws org.dhatim.edisax.EDIConfigurationException is thrown when values are badly formatted. */ private void digestSegments(Node node, Edimap edimap, String namespacePrefix) throws EDIConfigurationException { SegmentGroup segments = new SegmentGroup(); setValuesForMappingNode(node, segments, namespacePrefix, null); segments.setNamespace(edimap.getDescription().getNamespace()); edimap.setSegments(segments); edimap.setIgnoreUnmappedSegments(getNodeValueAsBoolean(node, "ignoreUnmappedSegments")); NodeList nodes = node.getChildNodes(); for (int i = 0; i < nodes.getLength(); i++) { Node currentNode = nodes.item(i); digestSegmentGroup(currentNode, edimap.getSegments().getSegments(), namespacePrefix, segments); } }
public static void write(Segment segment, Writer writer) throws IOException { Edimap ediMap = new Edimap(); SegmentGroup segments = new SegmentGroup(); segments.getSegments().add(segment); ediMap.setSegments(segments); ediMap.setDelimiters(UNEdifactInterchangeParser.defaultUNEdifactDelimiters); ediMap.setDescription(new Description().setName("TODO").setVersion("TODO")); write(ediMap, writer); }
SegmentGroup rootGroup = new SegmentGroup(); rootGroup.setXmltag(XmlTagEncoder.encode(type)); edimap.setSegments(rootGroup);