/** * Move to the next EDI segment. * <p/> * Simply reads and buffers the next EDI segment. Clears the current contents of * the buffer before reading. * @return True if a "next" segment exists, otherwise false. * @throws IOException Error reading from EDI stream. */ public boolean moveToNextSegment() throws IOException { return moveToNextSegment(true); }
/** * Move to the next EDI segment. * <p/> * Simply reads and buffers the next EDI segment. Clears the current contents of * the buffer before reading. * @return True if a "next" segment exists, otherwise false. * @throws IOException Error reading from EDI stream. */ public boolean moveToNextSegment() throws IOException { return moveToNextSegment(true); }
/** * Move to the next EDI segment. * <p/> * Simply reads and buffers the next EDI segment. Clears the current contents of * the buffer before reading. * @return True if a "next" segment exists, otherwise false. * @throws IOException Error reading from EDI stream. */ public boolean moveToNextSegment() throws IOException { return moveToNextSegment(true); }
/** * Move to the next EDI segment. * * Simply reads and buffers the next EDI segment. Clears the current contents of * the buffer before reading. * @return True if a "next" segment exists, otherwise false. * @throws IOException Error reading from EDI stream. */ public boolean moveToNextSegment() throws IOException { return moveToNextSegment(true); }
public void process(InterchangeContext interchangeContext) throws IOException, SAXException { BufferedSegmentReader segmentReader = interchangeContext.getSegmentReader(); segmentReader.moveToNextSegment(false); String[] fields = segmentReader.getCurrentSegmentFields(); StringBuffer segBuffer = segmentReader.getSegmentBuffer(); char[] segChars = new char[segBuffer.length()]; segBuffer.getChars(0, segBuffer.length(), segChars, 0); interchangeContext.getControlSegmentParser().startElement(fields[0], interchangeContext.getNamespace(), true); interchangeContext.getControlSegmentParser().getContentHandler().characters(segChars, 0, segChars.length); interchangeContext.getControlSegmentParser().endElement(fields[0], interchangeContext.getNamespace(), false); // And clear out the buffer... segmentReader.getSegmentBuffer().setLength(0); } }
public void process(InterchangeContext interchangeContext) throws IOException, SAXException { BufferedSegmentReader segmentReader = interchangeContext.getSegmentReader(); segmentReader.moveToNextSegment(false); String[] fields = segmentReader.getCurrentSegmentFields(); StringBuffer segBuffer = segmentReader.getSegmentBuffer(); char[] segChars = new char[segBuffer.length()]; segBuffer.getChars(0, segBuffer.length(), segChars, 0); interchangeContext.getControlSegmentParser().startElement(fields[0], interchangeContext.getNamespace(), true); interchangeContext.getControlSegmentParser().getContentHandler().characters(segChars, 0, segChars.length); interchangeContext.getControlSegmentParser().endElement(fields[0], interchangeContext.getNamespace(), false); // And clear out the buffer... segmentReader.getSegmentBuffer().setLength(0); } }
public void process(InterchangeContext interchangeContext) throws IOException, SAXException { BufferedSegmentReader segmentReader = interchangeContext.getSegmentReader(); segmentReader.moveToNextSegment(false); String[] fields = segmentReader.getCurrentSegmentFields(); StringBuffer segBuffer = segmentReader.getSegmentBuffer(); char[] segChars = new char[segBuffer.length()]; segBuffer.getChars(0, segBuffer.length(), segChars, 0); interchangeContext.getControlSegmentParser().startElement(fields[0], interchangeContext.getNamespace(), true); interchangeContext.getControlSegmentParser().getContentHandler().characters(segChars, 0, segChars.length); interchangeContext.getControlSegmentParser().endElement(fields[0], interchangeContext.getNamespace(), false); // And clear out the buffer... segmentReader.getSegmentBuffer().setLength(0); } }
public void process(InterchangeContext interchangeContext) throws IOException, SAXException { BufferedSegmentReader segmentReader = interchangeContext.getSegmentReader(); segmentReader.moveToNextSegment(false); String[] fields = segmentReader.getCurrentSegmentFields(); StringBuffer segBuffer = segmentReader.getSegmentBuffer(); char[] segChars = new char[segBuffer.length()]; segBuffer.getChars(0, segBuffer.length(), segChars, 0); interchangeContext.getControlSegmentParser().startElement(fields[0], interchangeContext.getNamespace(), true); interchangeContext.getControlSegmentParser().getContentHandler().characters(segChars, 0, segChars.length); interchangeContext.getControlSegmentParser().endElement(fields[0], interchangeContext.getNamespace(), false); // And clear out the buffer... segmentReader.getSegmentBuffer().setLength(0); } }
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); }
/** * Map a single segment based on the current set of segment fields read from input and the segment mapping * config that these fields should map to. * @param currentSegmentFields Current set of segment fields read from input. * @param expectedSegment The segment mapping config that the currentSegmentFields should map to. * @throws IOException Error reading an EDI segment from the input stream. This will happen as the segment * reader tries to move to the next segment after performing this mapping. * @throws SAXException EDI processing exception. */ private void mapSegment(String[] currentSegmentFields, Segment expectedSegment) throws IOException, SAXException { startElement(expectedSegment, true); mapFields(currentSegmentFields, expectedSegment); if(segmentReader.moveToNextSegment()) { mapSegments(expectedSegment.getSegments()); } endElement(expectedSegment, true); }
/** * Map a single segment based on the current set of segment fields read from input and the segment mapping * config that these fields should map to. * @param currentSegmentFields Current set of segment fields read from input. * @param expectedSegment The segment mapping config that the currentSegmentFields should map to. * @throws IOException Error reading an EDI segment from the input stream. This will happen as the segment * reader tries to move to the next segment after performing this mapping. * @throws SAXException EDI processing exception. */ private void mapSegment(String[] currentSegmentFields, Segment expectedSegment) throws IOException, SAXException { startElement(expectedSegment, true); mapFields(currentSegmentFields, expectedSegment); if(segmentReader.moveToNextSegment()) { mapSegments(expectedSegment.getSegments()); } endElement(expectedSegment, true); }
/** * Map a single segment based on the current set of segment fields read from input and the segment mapping * config that these fields should map to. * @param currentSegmentFields Current set of segment fields read from input. * @param expectedSegment The segment mapping config that the currentSegmentFields should map to. * @throws IOException Error reading an EDI segment from the input stream. This will happen as the segment * reader tries to move to the next segment after performing this mapping. * @throws SAXException EDI processing exception. */ private void mapSegment(String[] currentSegmentFields, Segment expectedSegment) throws IOException, SAXException { startElement(expectedSegment, true); mapFields(currentSegmentFields, expectedSegment); if(segmentReader.moveToNextSegment()) { mapSegments(expectedSegment.getSegments()); } endElement(expectedSegment, true); }
public void process(InterchangeContext interchangeContext) throws IOException, SAXException { BufferedSegmentReader segmentReader = interchangeContext.getSegmentReader(); interchangeContext.getControlSegmentParser().startElement("group", ungSegment.getNamespace(), true); segmentReader.moveToNextSegment(false); interchangeContext.mapControlSegment(ungSegment, true); while(true) { String segCode = segmentReader.peek(3, true); if(segCode.equals("UNE")) { segmentReader.moveToNextSegment(false); interchangeContext.mapControlSegment(uneSegment, true); break; } else if(segCode.length() > 0) { ControlBlockHandler handler = interchangeContext.getControlBlockHandler(segCode); handler.process(interchangeContext); } else { throw new EDIParseException("Unexpected end of UN/EDIFACT data stream. If stream was reset (e.g. after read charset was changed), please make sure underlying stream was properly reset."); } } interchangeContext.getControlSegmentParser().endElement("group", ungSegment.getNamespace(), true); } }
/** * Map a single segment based on the current set of segment fields read from input and the segment mapping * config that these fields should map to. * @param currentSegmentFields Current set of segment fields read from input. * @param expectedSegment The segment mapping config that the currentSegmentFields should map to. * @throws IOException Error reading an EDI segment from the input stream. This will happen as the segment * reader tries to move to the next segment after performing this mapping. * @throws SAXException EDI processing exception. */ private void mapSegment(String[] currentSegmentFields, Segment expectedSegment) throws IOException, SAXException { startElement(expectedSegment, true); mapFields(currentSegmentFields, expectedSegment); if(segmentReader.moveToNextSegment()) { mapSegments(expectedSegment.getSegments()); } endElement(expectedSegment, true); }
public void process(InterchangeContext interchangeContext) throws IOException, SAXException { BufferedSegmentReader segmentReader = interchangeContext.getSegmentReader(); interchangeContext.getControlSegmentParser().startElement("group", ungSegment.getNamespace(), true); segmentReader.moveToNextSegment(false); interchangeContext.mapControlSegment(ungSegment, true); while(true) { String segCode = segmentReader.peek(3, true); if(segCode.equals("UNE")) { segmentReader.moveToNextSegment(false); interchangeContext.mapControlSegment(uneSegment, true); break; } else if(segCode.length() > 0) { ControlBlockHandler handler = interchangeContext.getControlBlockHandler(segCode); handler.process(interchangeContext); } else { throw new EDIParseException("Unexpected end of UN/EDIFACT data stream. If stream was reset (e.g. after read charset was changed), please make sure underlying stream was properly reset."); } } interchangeContext.getControlSegmentParser().endElement("group", ungSegment.getNamespace(), true); } }
public void process(InterchangeContext interchangeContext) throws IOException, SAXException { BufferedSegmentReader segmentReader = interchangeContext.getSegmentReader(); interchangeContext.getControlSegmentParser().startElement("group", ungSegment.getNamespace(), true); segmentReader.moveToNextSegment(false); interchangeContext.mapControlSegment(ungSegment, true); while(true) { String segCode = segmentReader.peek(3, true); if(segCode.equals("UNE")) { segmentReader.moveToNextSegment(false); interchangeContext.mapControlSegment(uneSegment, true); break; } else if(segCode.length() > 0) { ControlBlockHandler handler = interchangeContext.getControlBlockHandler(segCode); handler.process(interchangeContext); } else { throw new EDIParseException("Unexpected end of UN/EDIFACT data stream. If stream was reset (e.g. after read charset was changed), please make sure underlying stream was properly reset."); } } interchangeContext.getControlSegmentParser().endElement("group", ungSegment.getNamespace(), true); } }
public void process(InterchangeContext interchangeContext) throws IOException, SAXException { BufferedSegmentReader segmentReader = interchangeContext.getSegmentReader(); interchangeContext.getControlSegmentParser().startElement("group", ungSegment.getNamespace(), true); segmentReader.moveToNextSegment(false); interchangeContext.mapControlSegment(ungSegment, true); while(true) { String segCode = segmentReader.peek(3, true); if(segCode.equals("UNE")) { segmentReader.moveToNextSegment(false); interchangeContext.mapControlSegment(uneSegment, true); break; } else if(segCode.length() > 0) { ControlBlockHandler handler = interchangeContext.getControlBlockHandler(segCode); handler.process(interchangeContext); } else { throw new EDIParseException("Unexpected end of UN/EDIFACT data stream. If stream was reset (e.g. after read charset was changed), please make sure underlying stream was properly reset."); } } interchangeContext.getControlSegmentParser().endElement("group", ungSegment.getNamespace(), 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); }
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); }