public void write(Writer writer, Delimiters delimiters) throws IOException { Writer nodeWriter = new StringWriter(); List<String> nodeTokens = new ArrayList<String>(); if(date != null) { nodeWriter.write(delimiters.escape(date)); nodeTokens.add(nodeWriter.toString()); ((StringWriter)nodeWriter).getBuffer().setLength(0); } nodeWriter.write(delimiters.getComponent()); if(time != null) { nodeWriter.write(delimiters.escape(time)); nodeTokens.add(nodeWriter.toString()); ((StringWriter)nodeWriter).getBuffer().setLength(0); } nodeTokens.add(nodeWriter.toString()); writer.write(EDIUtils.concatAndTruncate(nodeTokens, DelimiterType.COMPONENT, delimiters)); }
/** * 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; }
/** * Digest attributes of Delimiter element and populate Delimiter. * @param node the Delimiter element. * @param edimap the {@link org.milyn.edisax.model.internal.Edimap} to populate. */ private static void digestDelimiters(Node node, Edimap edimap) { Delimiters delimiters = new Delimiters(); edimap.setDelimiters(delimiters); delimiters.setSegment(getAttributeValue(node, "segment")); delimiters.setField(getAttributeValue(node, "field")); delimiters.setFieldRepeat(getAttributeValue(node, "fieldRepeat")); delimiters.setComponent(getAttributeValue(node, "component")); delimiters.setSubComponent(getAttributeValue(node, "sub-component")); delimiters.setEscape(getAttributeValue(node, "escape")); delimiters.setDecimalSeparator(getAttributeValue(node, "decimalSeparator")); }
public void write(Writer writer, Delimiters delimiters) throws IOException { Writer nodeWriter = new StringWriter(); List<String> nodeTokens = new ArrayList<String>(); nodeWriter.write("UNT"); nodeWriter.write(delimiters.getField()); nodeWriter.write(Integer.toString(segmentCount)); nodeTokens.add(nodeWriter.toString()); ((StringWriter)nodeWriter).getBuffer().setLength(0); nodeWriter.write(delimiters.getField()); if(messageRefNum != null) { nodeWriter.write(delimiters.escape(messageRefNum)); nodeTokens.add(nodeWriter.toString()); ((StringWriter)nodeWriter).getBuffer().setLength(0); } nodeTokens.add(nodeWriter.toString()); writer.write(EDIUtils.concatAndTruncate(nodeTokens, DelimiterType.FIELD, delimiters)); writer.write(delimiters.getSegment()); }
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); } }
.getVersion()); annotate(pkg, "delimeters.segment", mapModel.getDelimiters() .getSegment()); annotate(pkg, "delimeters.component", mapModel.getDelimiters() .getComponent()); annotate(pkg, "delimeters.field", mapModel.getDelimiters().getField()); annotate(pkg, "delimeters.fieldRepeat", mapModel.getDelimiters() .getFieldRepeat()); annotate(pkg, "delimeters.escape", mapModel.getDelimiters().getEscape()); annotate(pkg, "delimeters.ignoreCLRF", String.valueOf(mapModel.getDelimiters().ignoreCRLF())); return pkg;
Delimiters delimiters) throws EDIConfigurationException, SAXException, IOException { String[] nameComponents = EDIUtils.split(messageName, delimiters.getComponent(), delimiters.getEscape()); StringBuilder lookupNameBuilder = new StringBuilder();
edimap.setSegments(rootGroup); Delimiters delimiters = new Delimiters(); delimiters.setSegment(DELIMITER_SEGMENT); delimiters.setField(DELIMITER_COMPOSITE); delimiters.setComponent(DELIMITER_DATA); delimiters.setSubComponent(DELIMITER_NOT_USED); delimiters.setEscape(ESCAPE); edimap.setDelimiters(delimiters);
writer.append(delimiters.getComponent()); writer.append(delimiters.getField()); writer.append(delimiters.getDecimalSeparator()); writer.append(delimiters.getEscape()); writer.append(" "); writer.append(delimiters.getSegment()); } else { delimiters = UNEdifactInterchangeParser.defaultUNEdifactDelimiters;
char[] segmentDelimiter = currentDelimiters.getSegmentDelimiter(); int delimiterLen = segmentDelimiter.length; String escape = currentDelimiters.getEscape(); int escapeLen = escape != null ? escape.length() : 0; boolean ignoreCRLF; ignoreCRLF = (currentDelimiters.ignoreCRLF() || ignoreNewLines);
boolean ignoreUnmappedFields = segment.isIgnoreUnmappedFields(); Delimiters delimiters = segmentReader.getDelimiters(); String fieldRepeat = delimiters.getFieldRepeat(); for(int i = 0; i < numFields; i++) { if (ignoreUnmappedFields && i >= numFieldsMapped) { String[] repeatedFields = EDIUtils.split(fieldMessageVal, fieldRepeat, delimiters.getEscape()); for(String repeatedField : repeatedFields) { mapField(repeatedField, expectedField, i, segmentCode);
String[] currentComponentSubComponents = EDIUtils.split(componentMessageVal, delimiters.getSubComponent(), delimiters.getEscape());
private void writeToContentHandler(String messageVal) throws SAXException { if (edifactModel.getDelimiters() != null && edifactModel.getDelimiters().getEscape() != null) { String escapeDelimiter = edifactModel.getDelimiters().getEscape(); messageVal = messageVal.replace(escapeDelimiter+escapeDelimiter, escapeDelimiter); } contentHandler.characters(messageVal.toCharArray(), 0, messageVal.length()); }
@Override public Object clone() { Delimiters delimiters = new Delimiters(); delimiters.segment = segment; delimiters.field = field; delimiters.fieldRepeat = fieldRepeat; delimiters.component = component; delimiters.subComponent = subComponent; delimiters.escape = escape; delimiters.decimalSeparator = decimalSeparator; delimiters.segmentDelimiter = segmentDelimiter; delimiters.ignoreCRLF = ignoreCRLF; delimiters.delimiterChars.addAll(delimiterChars); return delimiters; } }
ignoreCRLF = (currentDelimiters.ignoreCRLF() || ignoreNewLines);
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); } }
public void write(Writer writer, Delimiters delimiters) throws IOException { Writer nodeWriter = new StringWriter(); List<String> nodeTokens = new ArrayList<String>(); nodeWriter.write("UNE"); nodeWriter.write(delimiters.getField()); nodeWriter.write(Integer.toString(controlCount)); nodeTokens.add(nodeWriter.toString()); ((StringWriter)nodeWriter).getBuffer().setLength(0); nodeWriter.write(delimiters.getField()); if(groupRef != null) { nodeWriter.write(delimiters.escape(groupRef)); nodeTokens.add(nodeWriter.toString()); ((StringWriter)nodeWriter).getBuffer().setLength(0); } nodeTokens.add(nodeWriter.toString()); writer.write(EDIUtils.concatAndTruncate(nodeTokens, DelimiterType.FIELD, delimiters)); writer.write(delimiters.getSegment()); }
Delimiters delimiters) throws EDIConfigurationException, SAXException, IOException { String[] nameComponents = EDIUtils.split(messageName, delimiters.getComponent(), delimiters.getEscape()); StringBuilder lookupNameBuilder = new StringBuilder();
writer.append(delimiters.getComponent()); writer.append(delimiters.getField()); writer.append(delimiters.getDecimalSeparator()); writer.append(delimiters.getEscape()); writer.append(" "); writer.append(delimiters.getSegment()); } else { delimiters = UNEdifactInterchangeParser.defaultUNEdifactDelimiters;
char[] segmentDelimiter = currentDelimiters.getSegmentDelimiter(); int delimiterLen = segmentDelimiter.length; String escape = currentDelimiters.getEscape(); int escapeLen = escape != null ? escape.length() : 0; boolean ignoreCRLF; ignoreCRLF = (currentDelimiters.ignoreCRLF() || ignoreNewLines);