com.americancoders.edi.fixformat
Class FixformatTokenizer

java.lang.Object
  |
  +--com.americancoders.edi.fixformat.FixformatTokenizer

public class FixformatTokenizer
extends java.lang.Object
implements ITokenizer

Tokenizer to work with flat EDI files like SAP

Version:
$Revision:$
Author:
S.Heller

Inner Class Summary
 class FixformatTokenizer.FixformatDataTokenizer
          Tokenizer to separate the data elements of a single segment by looking up the DE length in the templated of every DE, as defined in the .xml rules file
 
Field Summary
protected  TemplateSegment actualSegment
           
protected  java.lang.String actualSegmentString
           
protected  java.util.HashMap hashMapSegment
          HashMap containing segment templates: key: segment name, object: segment
protected  java.util.ResourceBundle rb
          ResourceBundle to localize the error messages
protected  int segmentIdLength
          identifier length used to identify the segment name of a segment
protected  java.util.StringTokenizer tokenizerFileSegment
          Tokenizer to separate segments
protected  FixformatTokenizer.FixformatDataTokenizer tokenizerSegment
           
 
Constructor Summary
FixformatTokenizer(java.lang.String inputString, java.lang.String segmentDelimiter, TransactionSet transactionSet, int segmentIdLength)
           
 
Method Summary
protected  java.util.HashMap buildHashMapSegment(TransactionSet transactionSet)
          Builds up a hashMap containing all templates of used segments as defined in the rules .xml file
 int countDataElements()
          Counts the number of data elements of the actual segment
 int countSegments()
          Counts the number of segments of the file
 java.lang.String getCurrentDataElement()
           
 int getDataElementPos()
           
 java.lang.String getNextDataElement()
           
 IDataTokenizer getNextSegment()
           
 int getSegmentPos()
           
 boolean hasMoreDataElements()
           
 boolean hasMoreSegments()
           
 boolean isThereADataElement()
           
 IDataTokenizer makeSubfieldTokenizer()
           
 IDataTokenizer resetSegment()
           
protected  void setSegment(java.lang.String segmentId)
          Gets the segment template of the global hashmap and sets it as actual segment
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

rb

protected java.util.ResourceBundle rb
ResourceBundle to localize the error messages

tokenizerFileSegment

protected java.util.StringTokenizer tokenizerFileSegment
Tokenizer to separate segments

tokenizerSegment

protected FixformatTokenizer.FixformatDataTokenizer tokenizerSegment

actualSegmentString

protected java.lang.String actualSegmentString

actualSegment

protected TemplateSegment actualSegment

hashMapSegment

protected java.util.HashMap hashMapSegment
HashMap containing segment templates: key: segment name, object: segment

segmentIdLength

protected int segmentIdLength
identifier length used to identify the segment name of a segment
Constructor Detail

FixformatTokenizer

public FixformatTokenizer(java.lang.String inputString,
                          java.lang.String segmentDelimiter,
                          TransactionSet transactionSet,
                          int segmentIdLength)
Parameters:
segmentDelimiter - String with characters that may separate segments
inpoutString - classic EDI data to be parsed
transactionSet - TransactionSet created of parsed rules file
segmentIdLength - Length of the segmentId, is used to identify the actual segment and to get its dataelement length.
Method Detail

setSegment

protected void setSegment(java.lang.String segmentId)
Gets the segment template of the global hashmap and sets it as actual segment
Parameters:
segmentId - Trimed segment identifier, e.g. "E2EDK03"

buildHashMapSegment

protected java.util.HashMap buildHashMapSegment(TransactionSet transactionSet)
Builds up a hashMap containing all templates of used segments as defined in the rules .xml file
Parameters:
transactionSet - Set of templates used to get length of dataelements

countDataElements

public int countDataElements()
Counts the number of data elements of the actual segment
Specified by:
countDataElements in interface ITokenizer

countSegments

public int countSegments()
Counts the number of segments of the file
Specified by:
countSegments in interface ITokenizer

getCurrentDataElement

public java.lang.String getCurrentDataElement()
Specified by:
getCurrentDataElement in interface ITokenizer

getDataElementPos

public int getDataElementPos()
Specified by:
getDataElementPos in interface ITokenizer

getNextDataElement

public java.lang.String getNextDataElement()
Specified by:
getNextDataElement in interface ITokenizer

getNextSegment

public IDataTokenizer getNextSegment()
Specified by:
getNextSegment in interface ITokenizer

getSegmentPos

public int getSegmentPos()
Specified by:
getSegmentPos in interface ITokenizer

hasMoreDataElements

public boolean hasMoreDataElements()
Specified by:
hasMoreDataElements in interface ITokenizer

hasMoreSegments

public boolean hasMoreSegments()
Specified by:
hasMoreSegments in interface ITokenizer

isThereADataElement

public boolean isThereADataElement()
Specified by:
isThereADataElement in interface ITokenizer

resetSegment

public IDataTokenizer resetSegment()
Specified by:
resetSegment in interface ITokenizer

makeSubfieldTokenizer

public IDataTokenizer makeSubfieldTokenizer()
Specified by:
makeSubfieldTokenizer in interface ITokenizer