Tabnine Logo
BufferedSegmentReader
Code IndexAdd Tabnine to your IDE (free)

How to use
BufferedSegmentReader
in
org.milyn.edisax

Best Java code snippets using org.milyn.edisax.BufferedSegmentReader (Showing top 20 results out of 315)

origin: smooks/smooks

  private void changeReadEncoding(String code, BufferedSegmentReader bufferedSegmentReader) throws EDIParseException, IOException {
    Charset charset = toCharsetMapping.get(code.toUpperCase());
    
    if(charset == null) {
      throw new EDIParseException("Unknown UN/EDIFACT character stream encoding code '" + code + "'.");
    }
    
    bufferedSegmentReader.changeEncoding(charset);
  }
}
origin: smooks/smooks

private int forwardPastWhitespace() throws IOException {
  return forwardPastWhitespace(readChar());
}
origin: smooks/smooks

  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);
  }
}
origin: org.milyn/milyn-edisax-parser

public void mapControlSegment(Segment controlSegment, boolean clearSegmentBuffer) throws SAXException {
  controlSegmentParser.startElement(controlSegment, true);
  controlSegmentParser.mapFields(segmentReader.getCurrentSegmentFields(), controlSegment);
  controlSegmentParser.endElement(controlSegment, true);
  // And clear the buffer... we're finished with this data...
  if(clearSegmentBuffer) {
    segmentReader.getSegmentBuffer().setLength(0);
  }
}
origin: smooks/smooks

  public void process(InterchangeContext interchangeContext) throws IOException, SAXException {
    Delimiters delimiters = new Delimiters();
    BufferedSegmentReader segmentReader = interchangeContext.getSegmentReader();

    // The UNA segment code is still in the segment buffer... clear it before 
    // reading the segment delimiters...
    segmentReader.getSegmentBuffer().setLength(0);
    
    // Read the delimiter chars one-by-one and set in the Delimiters instance...
    
    // 1st char is the component ("sub-element") delimiter...
    delimiters.setComponent( segmentReader.read(1));
    // 2nd char is the field ("data-element") delimiter...
    delimiters.setField(     segmentReader.read(1));
    // 3rd char is the decimal point indicator...
    delimiters.setDecimalSeparator(segmentReader.read(1));
    // 4th char is the escape char ("release")...
    delimiters.setEscape(    segmentReader.read(1));
    // 5th char is reserved for future use...
    segmentReader.read(1);
    // 6th char is the segment delimiter...
    delimiters.setSegment(   segmentReader.read(1));

    interchangeContext.pushDelimiters(delimiters);
  }
}
origin: org.virtuslab/milyn-edisax-parser

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);
}
origin: smooks/smooks

segmentReader.moveToNextSegment(false);
String[] fields = segmentReader.getCurrentSegmentFields();
String messageName = fields[2];
EdifactModel mappingModel = registry.getMappingModel(messageName, segmentReader.getDelimiters());
Edimap ediMap = mappingModel.getEdimap();
  EDIParser parser = interchangeContext.newParser(mappingModel);
  segmentReader.setSegmentListener(untSegmentListener);
  segmentReader.setSegmentListener(null);
  if(hierarchyChangeListener != null) {
    hierarchyChangeListener.detachXMLReader();
segmentReader.getSegmentBuffer().setLength(0);
origin: smooks/smooks

Delimiters delimiters = segmentReader.getDelimiters();
String[] currentComponentSubComponents = EDIUtils.split(componentMessageVal, delimiters.getSubComponent(), delimiters.getEscape());
  for(int i = 0; i < currentComponentSubComponents.length; i++) {
    if(expectedSubComponents.get(i).isRequired() && currentComponentSubComponents[i].length() == 0) {
      throw new EDIParseException(edifactModel.getEdimap(), "Segment [" + segmentCode + "], field " + (fieldIndex + 1) + " (" + field + "), component " + (componentIndex + 1) + " (" + expectedComponent.getXmltag() + "), sub-component " + (i + 1) + " (" + expectedSubComponents.get(i).getXmltag() + ") expected to contain a value.  Currently at segment number " + segmentReader.getCurrentSegmentNumber() + ".", expectedSubComponents.get(i), segmentReader.getCurrentSegmentNumber(), segmentReader.getCurrentSegmentFields());
  throw new EDIParseException(edifactModel.getEdimap(), "Segment [" + segmentCode + "], field " + (fieldIndex + 1) + " (" + field + "), component " + (componentIndex + 1) + " (" + expectedComponent.getXmltag() + ") expected to contain a value.  Currently at segment number " + segmentReader.getCurrentSegmentNumber() + ".", expectedComponent, segmentReader.getCurrentSegmentNumber(), segmentReader.getCurrentSegmentFields());
origin: org.milyn/milyn-smooks-all

public void process(InterchangeContext interchangeContext) throws IOException, SAXException {
  BufferedSegmentReader segmentReader = interchangeContext.getSegmentReader();
  segmentReader.moveToNextSegment(false);
  String[] fields = segmentReader.getCurrentSegmentFields();
  String[] syntaxIdComponents = EDIUtils.split(fields[1], segmentReader.getDelimiters().getComponent(), segmentReader.getDelimiters().getEscape());
    String segCode = segmentReader.peek(3, true);
      segmentReader.moveToNextSegment(false);
      interchangeContext.mapControlSegment(unzSegment, true);
      break;
origin: org.milyn/milyn-edisax-parser

throw new EDIParseException(edifactModel.getEdimap(), "Segment [" + segmentCode + "], field " + (fieldIndex + 1) + " (" + field + "), component " + (componentIndex + 1) + " (" + expectedComponent.getXmltag() + ") expected to contain " + expectedSubComponents.size() + " sub-components.  Actually contains " + currentComponentSubComponents.length + " sub-components.  Currently at segment number " + segmentReader.getCurrentSegmentNumber() + ".", expectedComponent, segmentReader.getCurrentSegmentNumber(), segmentReader.getCurrentSegmentFields());
origin: org.virtuslab/milyn-edisax-parser

BufferedSegmentReader segmentReader = new BufferedSegmentReader(unedifactInterchange, defaultUNEdifactDelimiters);
boolean validate = getFeature(EDIParser.FEATURE_VALIDATE);
String segCode;
segmentReader.mark();
segmentReader.setIgnoreNewLines(getFeature(EDIParser.FEATURE_IGNORE_NEWLINES));
  segCode = segmentReader.peek(3, true);
  if(segCode.length() == 3) {
    interchangeContext = createInterchangeContext(segmentReader, validate, handlerFactory, namespaceDeclarationStack);
origin: smooks/smooks

/**
 * Parse an EDI InputSource.
 */
public void parse(InputSource ediInputSource) throws IOException, SAXException {
  if(contentHandler == null) {
    throw new IllegalStateException("'contentHandler' not set.  Cannot parse EDI stream.");
  }
  if(edifactModel == null || edifactModel.getEdimap() == null) {
    throw new IllegalStateException("'mappingModel' not set.  Cannot parse EDI stream.");
  }
  try {
    // Create a reader for reading the EDI segments...
    segmentReader = new BufferedSegmentReader(ediInputSource, edifactModel.getDelimiters());
    segmentReader.setIgnoreNewLines(getFeature(FEATURE_IGNORE_NEWLINES));
    
    // Initialize the indent counter...
    indentDepth = new MutableInt(0);
    
    // Fire the startDocument event, as well as the startElement event...
    contentHandler.startDocument();
    parse(false);
    contentHandler.endDocument();
  } finally {
    contentHandler = null;
  }
}

origin: org.milyn/milyn-smooks-all

  public boolean onSegment(BufferedSegmentReader bufferedSegmentReader) {
    String[] fields = bufferedSegmentReader.getCurrentSegmentFields();
    // Stop the current segment consumer if we have reached the UNT segment i.e.
    // only return true if it's not UNT...
    return !fields[0].equals("UNT");
  }
}
origin: org.virtuslab/milyn-edisax-parser

/**
 * Get the current EDI segment fields.
 * @return The current EDI segment fields array.
 * @throws IllegalStateException No current Segment.
 */
public String[] getCurrentSegmentFields() throws IllegalStateException {
  assertCurrentSegmentExists();
  if(currentSegmentFields == null) {
     currentSegmentFields = EDIUtils.split(segmentBuffer.toString(), currentDelimiters.getField(), currentDelimiters.getEscape());
     // If the segment delimiter is a LF, strip off any preceding CR characters...
     if(currentDelimiters.getSegment().equals("\n")) {
       int endIndex = currentSegmentFields.length - 1;
       if(currentSegmentFields[endIndex].endsWith("\r")) {
         int stringLen = currentSegmentFields[endIndex].length();
         currentSegmentFields[endIndex] = currentSegmentFields[endIndex].substring(0, stringLen - 1);
       }
     }
  }
  return currentSegmentFields;
}
origin: smooks/smooks

int numFieldsMapped = segment.getFields().size();
boolean ignoreUnmappedFields = segment.isIgnoreUnmappedFields();
Delimiters delimiters = segmentReader.getDelimiters();
String fieldRepeat = delimiters.getFieldRepeat();
for(int i = 0; i < numFields; i++) {
origin: org.milyn/milyn-smooks-all

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);
}
origin: org.milyn/milyn-edisax-parser

segmentReader.moveToNextSegment(false);
String[] fields = segmentReader.getCurrentSegmentFields();
String messageName = fields[2];
EdifactModel mappingModel = registry.getMappingModel(messageName, segmentReader.getDelimiters());
Edimap ediMap = mappingModel.getEdimap();
  EDIParser parser = interchangeContext.newParser(mappingModel);
  segmentReader.setSegmentListener(untSegmentListener);
  segmentReader.setSegmentListener(null);
  if(hierarchyChangeListener != null) {
    hierarchyChangeListener.detachXMLReader();
segmentReader.getSegmentBuffer().setLength(0);
origin: org.milyn/milyn-smooks-all

Delimiters delimiters = segmentReader.getDelimiters();
String[] currentComponentSubComponents = EDIUtils.split(componentMessageVal, delimiters.getSubComponent(), delimiters.getEscape());
  for(int i = 0; i < currentComponentSubComponents.length; i++) {
    if(expectedSubComponents.get(i).isRequired() && currentComponentSubComponents[i].length() == 0) {
      throw new EDIParseException(edifactModel.getEdimap(), "Segment [" + segmentCode + "], field " + (fieldIndex + 1) + " (" + field + "), component " + (componentIndex + 1) + " (" + expectedComponent.getXmltag() + "), sub-component " + (i + 1) + " (" + expectedSubComponents.get(i).getXmltag() + ") expected to contain a value.  Currently at segment number " + segmentReader.getCurrentSegmentNumber() + ".", expectedSubComponents.get(i), segmentReader.getCurrentSegmentNumber(), segmentReader.getCurrentSegmentFields());
  throw new EDIParseException(edifactModel.getEdimap(), "Segment [" + segmentCode + "], field " + (fieldIndex + 1) + " (" + field + "), component " + (componentIndex + 1) + " (" + expectedComponent.getXmltag() + ") expected to contain a value.  Currently at segment number " + segmentReader.getCurrentSegmentNumber() + ".", expectedComponent, segmentReader.getCurrentSegmentNumber(), segmentReader.getCurrentSegmentFields());
origin: org.virtuslab/milyn-edisax-parser

public void process(InterchangeContext interchangeContext) throws IOException, SAXException {
  BufferedSegmentReader segmentReader = interchangeContext.getSegmentReader();
  segmentReader.moveToNextSegment(false);
  String[] fields = segmentReader.getCurrentSegmentFields();
  String[] syntaxIdComponents = EDIUtils.split(fields[1], segmentReader.getDelimiters().getComponent(), segmentReader.getDelimiters().getEscape());
    String segCode = segmentReader.peek(3, true);
      segmentReader.moveToNextSegment(false);
      interchangeContext.mapControlSegment(unzSegment, true);
      break;
origin: org.virtuslab/milyn-edisax-parser

throw new EDIParseException(edifactModel.getEdimap(), "Segment [" + segmentCode + "], field " + (fieldIndex + 1) + " (" + field + "), component " + (componentIndex + 1) + " (" + expectedComponent.getXmltag() + ") expected to contain " + expectedSubComponents.size() + " sub-components.  Actually contains " + currentComponentSubComponents.length + " sub-components.  Currently at segment number " + segmentReader.getCurrentSegmentNumber() + ".", expectedComponent, segmentReader.getCurrentSegmentNumber(), segmentReader.getCurrentSegmentFields());
org.milyn.edisaxBufferedSegmentReader

Javadoc

Buffered EDI Stream Segment reader.

Most used methods

  • <init>
    Construct the stream reader.
  • assertCurrentSegmentExists
    Assert that there is a current segment.
  • changeEncoding
    Change the encoding used to read the underlying EDI data stream. #mark() should have been called fir
  • forwardPastWhitespace
  • getCurrentSegmentFields
    Get the current EDI segment fields.
  • getCurrentSegmentNumber
    Get the current segment "number". The first segment is "segment number 1".
  • getDelimiters
    Get the current delimiter set.
  • getSegmentBuffer
    Get the segment buffer.
  • hasCurrentSegment
    Does the read have a segment buffered and ready for processing.
  • mark
    Try mark the stream so we can support changing of the reader encoding.
  • moveToNextSegment
    Move to the next EDI segment. Simply reads and buffers the next EDI segment.
  • peek
    Peek a fixed number of characters from the input source. Peek differs from #read(int) in that it lea
  • moveToNextSegment,
  • peek,
  • popDelimiters,
  • pushDelimiters,
  • read,
  • readChar,
  • setIgnoreNewLines,
  • setSegmentListener

Popular in Java

  • Updating database using SQL prepared statement
  • onCreateOptionsMenu (Activity)
  • getExternalFilesDir (Context)
  • getSupportFragmentManager (FragmentActivity)
  • ObjectMapper (com.fasterxml.jackson.databind)
    ObjectMapper provides functionality for reading and writing JSON, either to and from basic POJOs (Pl
  • FileInputStream (java.io)
    An input stream that reads bytes from a file. File file = ...finally if (in != null) in.clos
  • FileWriter (java.io)
    A specialized Writer that writes to a file in the file system. All write requests made by calling me
  • InputStream (java.io)
    A readable source of bytes.Most clients will use input streams that read data from the file system (
  • Iterator (java.util)
    An iterator over a sequence of objects, such as a collection.If a collection has been changed since
  • ThreadPoolExecutor (java.util.concurrent)
    An ExecutorService that executes each submitted task using one of possibly several pooled threads, n
  • Top 12 Jupyter Notebook extensions
Tabnine Logo
  • Products

    Search for Java codeSearch for JavaScript code
  • IDE Plugins

    IntelliJ IDEAWebStormVisual StudioAndroid StudioEclipseVisual Studio CodePyCharmSublime TextPhpStormVimGoLandRubyMineEmacsJupyter NotebookJupyter LabRiderDataGripAppCode
  • Company

    About UsContact UsCareers
  • Resources

    FAQBlogTabnine AcademyTerms of usePrivacy policyJava Code IndexJavascript Code Index
Get Tabnine for your IDE now