private Map<String, Segment> getSegmentDefinitions(Edimap definitionModel) { Map<String, Segment> result = new HashMap<String, Segment>(); for (SegmentGroup segmentGroup : definitionModel.getSegments().getSegments()) { result.put(segmentGroup.getSegcode(), (Segment)segmentGroup); } return result; }
/** * Creates a Map given an Edimap. All segments in edimap are stored as values in the Map * with the corresponding segcode as key. * @param edimap the edimap containing segments to be inserted into Map. * @return Map containing all segment in edimap. */ private Map<String, Segment> createImportMap(Edimap edimap) { HashMap<String, Segment> result = new HashMap<String, Segment>(); for (SegmentGroup segmentGroup : edimap.getSegments().getSegments()) { if(segmentGroup instanceof Segment) { result.put(((Segment)segmentGroup).getSegcode(), (Segment) segmentGroup); } } return result; }
/** * Creates a Map given an Edimap. All segments in edimap are stored as values in the Map * with the corresponding segcode as key. * @param edimap the edimap containing segments to be inserted into Map. * @return Map containing all segment in edimap. */ private Map<String, Segment> createImportMap(Edimap edimap) { HashMap<String, Segment> result = new HashMap<String, Segment>(); for (SegmentGroup segmentGroup : edimap.getSegments().getSegments()) { if(segmentGroup instanceof Segment) { result.put(((Segment)segmentGroup).getSegcode(), (Segment) segmentGroup); } } return result; }
/** * Creates a Map given an Edimap. All segments in edimap are stored as values in the Map * with the corresponding segcode as key. * @param edimap the edimap containing segments to be inserted into Map. * @return Map containing all segment in edimap. */ private Map<String, Segment> createImportMap(Edimap edimap) { HashMap<String, Segment> result = new HashMap<String, Segment>(); for (SegmentGroup segmentGroup : edimap.getSegments().getSegments()) { if(segmentGroup instanceof Segment) { result.put(((Segment)segmentGroup).getSegcode(), (Segment) segmentGroup); } } return result; }
/** * Creates a Map given an Edimap. All segments in edimap are stored as values in the Map * with the corresponding segcode as key. * @param edimap the edimap containing segments to be inserted into Map. * @return Map containing all segment in edimap. */ private Map<String, Segment> createImportMap(Edimap edimap) { HashMap<String, Segment> result = new HashMap<String, Segment>(); for (SegmentGroup segmentGroup : edimap.getSegments().getSegments()) { if(segmentGroup instanceof Segment) { result.put(((Segment)segmentGroup).getSegcode(), (Segment) segmentGroup); } } return result; }
private EPackage processPackage(Edimap mappingModel, Map<String, EClass> commonClasses) { EPackage pkg = ECoreConversionUtils .mappingModelToEPackage(mappingModel); pkg.getEClassifiers().addAll( createMappingClases(mappingModel.getSegments(), commonClasses)); return pkg; }
private void parse(boolean indent) throws SAXException, IOException, EDIParseException { startElement(edifactModel.getEdimap().getSegments(), indent); // Work through all the segments in the model. Move to the first segment before starting... if(segmentReader.moveToNextSegment()) { mapSegments(edifactModel.getEdimap().getSegments().getSegments()); // If we reach the end of the mapping model and we still have more EDI segments in the message.... while (segmentReader.hasCurrentSegment()) { if (!EMPTY_LINE.matcher(segmentReader.getSegmentBuffer().toString()).matches()) { throw new EDIParseException(edifactModel.getEdimap(), "Reached end of mapping model but there are more EDI segments in the incoming message. Read " + segmentReader.getCurrentSegmentNumber() + " segment(s). Current EDI segment is [" + segmentReader.getSegmentBuffer() + "]"); } segmentReader.moveToNextSegment(); } } // Fire the endDocument event, as well as the endElement event... endElement(edifactModel.getEdimap().getSegments(), true); }
private void addMissingDefinitions(Edimap definitionModel) { Segment ugh = new Segment(); Segment ugt = new Segment(); ugh.setSegcode("UGH"); ugh.setXmltag("UGH"); ugh.addField(new Field("id", UNEdifact41ControlBlockHandlerFactory.NAMESPACE, true)); ugt.setSegcode("UGT"); ugt.setXmltag("UGT"); ugt.addField(new Field("id", UNEdifact41ControlBlockHandlerFactory.NAMESPACE, true)); definitionModel.getSegments().getSegments().add(ugh); definitionModel.getSegments().getSegments().add(ugt); }
/** * Digest attributes and child elements of Segments element. Populates Segments. * @param node the Segments element. * @param edimap the {@link org.milyn.edisax.model.internal.Edimap} to populate. * @param namespacePrefix the prefix used to name elements in xml. * @throws org.milyn.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); 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 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; }
private void parse(boolean indent) throws SAXException, IOException, EDIParseException { boolean ignoreUnmappedSegment = edifactModel.getEdimap().isIgnoreUnmappedSegments(); startElement(edifactModel.getEdimap().getSegments(), indent); // Work through all the segments in the model. Move to the first segment before starting... if(segmentReader.moveToNextSegment()) { mapSegments(edifactModel.getEdimap().getSegments().getSegments()); // If we reach the end of the mapping model and we still have more EDI segments in the message.... while (segmentReader.hasCurrentSegment()) { if (!EMPTY_LINE.matcher(segmentReader.getSegmentBuffer().toString()).matches() && !ignoreUnmappedSegment) { throw new EDIParseException(edifactModel.getEdimap(), "Reached end of mapping model but there are more EDI segments in the incoming message. Read " + segmentReader.getCurrentSegmentNumber() + " segment(s). Current EDI segment is [" + segmentReader.getSegmentBuffer() + "]"); } segmentReader.moveToNextSegment(); } } // Fire the endDocument event, as well as the endElement event... endElement(edifactModel.getEdimap().getSegments(), true); }
private void parse(boolean indent) throws SAXException, IOException, EDIParseException { boolean ignoreUnmappedSegment = edifactModel.getEdimap().isIgnoreUnmappedSegments(); startElement(edifactModel.getEdimap().getSegments(), indent); // Work through all the segments in the model. Move to the first segment before starting... if(segmentReader.moveToNextSegment()) { mapSegments(edifactModel.getEdimap().getSegments().getSegments()); // If we reach the end of the mapping model and we still have more EDI segments in the message.... while (segmentReader.hasCurrentSegment()) { if (!EMPTY_LINE.matcher(segmentReader.getSegmentBuffer().toString()).matches() && !ignoreUnmappedSegment) { throw new EDIParseException(edifactModel.getEdimap(), "Reached end of mapping model but there are more EDI segments in the incoming message. Read " + segmentReader.getCurrentSegmentNumber() + " segment(s). Current EDI segment is [" + segmentReader.getSegmentBuffer() + "]"); } segmentReader.moveToNextSegment(); } } // Fire the endDocument event, as well as the endElement event... endElement(edifactModel.getEdimap().getSegments(), true); }
private void parse(boolean indent) throws SAXException, IOException, EDIParseException { boolean ignoreUnmappedSegment = edifactModel.getEdimap().isIgnoreUnmappedSegments(); startElement(edifactModel.getEdimap().getSegments(), indent); // Work through all the segments in the model. Move to the first segment before starting... if(segmentReader.moveToNextSegment()) { mapSegments(edifactModel.getEdimap().getSegments().getSegments()); // If we reach the end of the mapping model and we still have more EDI segments in the message.... while (segmentReader.hasCurrentSegment()) { if (!EMPTY_LINE.matcher(segmentReader.getSegmentBuffer().toString()).matches() && !ignoreUnmappedSegment) { throw new EDIParseException(edifactModel.getEdimap(), "Reached end of mapping model but there are more EDI segments in the incoming message. Read " + segmentReader.getCurrentSegmentNumber() + " segment(s). Current EDI segment is [" + segmentReader.getSegmentBuffer() + "]"); } segmentReader.moveToNextSegment(); } } // Fire the endDocument event, as well as the endElement event... endElement(edifactModel.getEdimap().getSegments(), true); }
/** * Digest attributes and child elements of Segments element. Populates Segments. * @param node the Segments element. * @param edimap the {@link org.milyn.edisax.model.internal.Edimap} to populate. * @param namespacePrefix the prefix used to name elements in xml. * @throws org.milyn.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); } }
/** * Digest attributes and child elements of Segments element. Populates Segments. * @param node the Segments element. * @param edimap the {@link org.milyn.edisax.model.internal.Edimap} to populate. * @param namespacePrefix the prefix used to name elements in xml. * @throws org.milyn.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); } }
/** * Digest attributes and child elements of Segments element. Populates Segments. * @param node the Segments element. * @param edimap the {@link org.milyn.edisax.model.internal.Edimap} to populate. * @param namespacePrefix the prefix used to name elements in xml. * @throws org.milyn.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); } }
private void write(Edimap edimap) { Element edimapEl = newElement("edimap", doc); addImports(edimap.getImports(), edimapEl); addDescription(edimap.getDescription(), edimapEl); addDelimiters(edimap.getDelimiters(), edimapEl); SegmentGroup segments = edimap.getSegments(); Element segmentsEl = newElement("segments", edimapEl, segments); mapBeanProperties(segments, segmentsEl, "name", "xmltag"); addChildSegments(segments, segmentsEl); }
private void write(Edimap edimap) { Element edimapEl = newElement("edimap", doc); addImports(edimap.getImports(), edimapEl); addDescription(edimap.getDescription(), edimapEl); addDelimiters(edimap.getDelimiters(), edimapEl); SegmentGroup segments = edimap.getSegments(); Element segmentsEl = newElement("segments", edimapEl, segments); mapBeanProperties(segments, segmentsEl, "name", "xmltag"); addChildSegments(segments, segmentsEl); }
private void write(Edimap edimap) { Element edimapEl = newElement("edimap", doc); addImports(edimap.getImports(), edimapEl); addDescription(edimap.getDescription(), edimapEl); addDelimiters(edimap.getDelimiters(), edimapEl); SegmentGroup segments = edimap.getSegments(); Element segmentsEl = newElement("segments", edimapEl, segments); mapBeanProperties(segments, segmentsEl, "name", "xmltag"); addChildSegments(segments, segmentsEl); }
private void write(Edimap edimap) { Element edimapEl = newElement("edimap", doc); addImports(edimap.getImports(), edimapEl); addDescription(edimap.getDescription(), edimapEl); addDelimiters(edimap.getDelimiters(), edimapEl); SegmentGroup segments = edimap.getSegments(); Element segmentsEl = newElement("segments", edimapEl, segments); mapBeanProperties(segments, segmentsEl, "name", "xmltag"); addChildSegments(segments, segmentsEl); }