private void writeToContentHandler(String messageVal) throws SAXException { if (edifactModel.getDelimiters() != null && edifactModel.getDelimiters().getEscape() != null) { messageVal = escapePattern.matcher(messageVal).replaceAll(Matcher.quoteReplacement(edifactModel.getDelimiters().getEscape())); } contentHandler.characters(messageVal.toCharArray(), 0, messageVal.length()); }
/** * 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; }
/** * Set the EDI mapping model to be used in all subsequent parse operations. * <p/> * The model can be generated through a call to the {@link EDIParser}. * * @param mappingModel The mapping model. */ public void setMappingModel(EdifactModel mappingModel) { AssertArgument.isNotNull(mappingModel, "mappingModel"); edifactModel = mappingModel; String escape = edifactModel.getDelimiters() == null ? null : edifactModel.getDelimiters().getEscape(); escapePattern = escape == null ? null : Pattern.compile(escape + escape, Pattern.LITERAL); }
Delimiters delimiters) throws EDIConfigurationException, SAXException, IOException { String[] nameComponents = EDIUtils.split(messageName, delimiters.getComponent(), delimiters.getEscape()); StringBuilder lookupNameBuilder = new StringBuilder();
char[] segmentDelimiter = currentDelimiters.getSegmentDelimiter(); int delimiterLen = segmentDelimiter.length; String escape = currentDelimiters.getEscape(); int escapeLen = escape != null ? escape.length() : 0; boolean ignoreCRLF;
String[] repeatedFields = EDIUtils.split(fieldMessageVal, fieldRepeat, delimiters.getEscape()); for (String repeatedField : repeatedFields) { mapField(repeatedField, expectedField, i, segmentCode);
writer.append(delimiters.getField()); writer.append(delimiters.getDecimalSeparator()); writer.append(delimiters.getEscape()); writer.append(" "); writer.append(delimiters.getSegment());
String[] currentComponentSubComponents = EDIUtils.split(componentMessageVal, delimiters.getSubComponent(), delimiters.getEscape());
String[] currentFieldComponents = EDIUtils.split(fieldMessageVal, delimiters.getComponent(), delimiters.getEscape());
String[] syntaxIdComponents = EDIUtils.split(fields[1], segmentReader.getDelimiters().getComponent(), segmentReader.getDelimiters().getEscape());
annotate(pkg, "delimeters.fieldRepeat", mapModel.getDelimiters() .getFieldRepeat()); annotate(pkg, "delimeters.escape", mapModel.getDelimiters().getEscape()); annotate(pkg, "delimeters.ignoreCLRF", String.valueOf(mapModel.getDelimiters().ignoreCRLF()));