public class EdiGenericParser extends AbstractParser
Modifier and Type | Field and Description |
---|---|
protected java.lang.String |
charset |
protected IEdiSeparatorSet |
separatorSet |
protected boolean |
stripWhiteSpaceFromData |
eventListeners
Constructor and Description |
---|
EdiGenericParser() |
Modifier and Type | Method and Description |
---|---|
protected EdiElement |
createComposite(java.lang.String fieldStr)
Creates a composite object that generated from the given composite edi string
|
protected Composite |
createCompositeUsingTokenizer(java.lang.String fieldStr) |
protected EdiElement |
createField(java.lang.String fieldStr)
Creates a field object that has the given data text
|
protected java.util.List<EdiElement> |
createFieldsFromStrings(java.util.List<java.lang.String> fieldElements)
Takes the list of strings and converts them to a List of EdiElements
where the elements can be of subtype Field or Composite.
|
java.lang.String |
getCharset() |
IEdiSeparatorSet |
getSeparatorSet() |
protected boolean |
isComposite(java.lang.String fieldStr)
Determines if the given field String is actually a composite, by
detecting the presence of the composite data separator.
|
boolean |
isStripWhiteSpaceFromData() |
EdiElement |
parse(java.io.InputStream is)
Main processing method that takes an InputStream which contains the EDI file to be processed.
|
EdiElement |
parse(java.io.Reader ir) |
protected EdiElement |
parse(StreamParser sp) |
protected EdiElement |
parseEntireInput(StreamParser sp) |
protected Segment |
parseSegmentFromText(java.lang.String segmentText)
Given a Edi text representation of a segment ie a single edi line, this
routine returns an object representation of it.
|
protected java.util.List<java.lang.String> |
readSegmentFields(java.lang.String segmentFieldLine)
Parses the field of the edi segment text line and returns a list of the individual fields.
|
protected java.lang.String |
readSegmentID(StreamParser sp)
Reads in the first part of a segment - the name of the segment or ID
|
protected java.lang.String |
readSegmentString(StreamParser sp)
Reads in an entire line that represents an edi segment from the stream
|
void |
setCharset(java.lang.String charset) |
void |
setSeparatorSet(IEdiSeparatorSet separatorSet) |
void |
setStripWhiteSpaceFromData(boolean stripWhiteSpaceFromData) |
protected java.lang.String |
splitSegmentFieldsFromID(java.lang.String segmentLine,
java.lang.String segmentID)
Due to issues with the Stream Parser, this method was implemented to
split the first part of the edi segment line from the second part that
contains all the fields.
|
addParsedEventListener, fireElementEndParseEvent, fireElementStartParseEvent, removeParsedEventListener
protected IEdiSeparatorSet separatorSet
protected java.lang.String charset
protected boolean stripWhiteSpaceFromData
public EdiElement parse(java.io.InputStream is) throws java.lang.Exception
is
- - InputStream for the edi datajava.lang.Exception
public EdiElement parse(java.io.Reader ir) throws java.lang.Exception
java.lang.Exception
protected EdiElement parseEntireInput(StreamParser sp) throws java.lang.Exception
java.lang.Exception
protected EdiElement parse(StreamParser sp) throws java.lang.Exception
java.lang.Exception
public IEdiSeparatorSet getSeparatorSet()
public void setSeparatorSet(IEdiSeparatorSet separatorSet)
public java.lang.String getCharset()
public void setCharset(java.lang.String charset)
protected java.lang.String readSegmentString(StreamParser sp)
sp
- - Stream parser from which we are reading the ediprotected java.lang.String readSegmentID(StreamParser sp)
sp
- - Stream from which to read edi inputprotected java.lang.String splitSegmentFieldsFromID(java.lang.String segmentLine, java.lang.String segmentID)
segmentLine
- - the entire edi segment linesegmentID
- - the segment id, that should match the start of the segmentLineprotected java.util.List<java.lang.String> readSegmentFields(java.lang.String segmentFieldLine)
segmentFieldLine
- - second part of edi segment line, should just be fields separated with the field delimeterprotected Segment parseSegmentFromText(java.lang.String segmentText) throws EdiValidationException, EdiMandatoryElementMissingException, EdiFailedToParseSegmentException
segmentText
- - edi segment lineEdiValidationException
EdiMandatoryElementMissingException
EdiFailedToParseSegmentException
protected java.util.List<EdiElement> createFieldsFromStrings(java.util.List<java.lang.String> fieldElements)
fieldElements
- - list of text segment fieldsprotected EdiElement createField(java.lang.String fieldStr)
fieldStr
- - data textprotected EdiElement createComposite(java.lang.String fieldStr)
fieldStr
- - edi composite stringprotected Composite createCompositeUsingTokenizer(java.lang.String fieldStr)
protected boolean isComposite(java.lang.String fieldStr)
fieldStr
- - text to check.public boolean isStripWhiteSpaceFromData()
public void setStripWhiteSpaceFromData(boolean stripWhiteSpaceFromData)