private boolean digestSegmentGroup(Node currentNode, List<SegmentGroup> segmentGroupList, String namespacePrefix, MappingNode parent) throws EDIConfigurationException { if (currentNode.getNodeName().equalsIgnoreCase(namespacePrefix + "segmentGroup")) { SegmentGroup segment = new SegmentGroup(); segment.setDocumentation(getNodeValue(currentNode, namespacePrefix + "documentation")); segmentGroupList.add(segment); digestSegment(currentNode, segment, namespacePrefix, parent); return true; } else if (currentNode.getNodeName().equalsIgnoreCase(namespacePrefix + "segment")) { Segment segment = new Segment(); segmentGroupList.add(segment); digestSegment(currentNode, segment, namespacePrefix, parent); return true; } return false; }
Segment segment = new Segment(); segment.setSegcode(segcode); segment.setName(name);
private void addMissingDefinitions(Edimap definitionModel) { Segment ugh = new Segment(); Segment ugt = new Segment(); ugh.setSegcode("UGH"); ugh.setXmltag("UGH"); ugh.addField(new Field("id", UNEdifact41ControlBlockHandlerFactory.NAMESPACE, true)); ugt.setSegcode("UGT"); ugt.setXmltag("UGT"); ugt.addField(new Field("id", UNEdifact41ControlBlockHandlerFactory.NAMESPACE, true)); definitionModel.getSegments().getSegments().add(ugh); definitionModel.getSegments().getSegments().add(ugt); }
private Segment createSegment(String id, String segcode, String name, String mandatory, String maxOccurance, Map<String, String> definitions, boolean isSplitIntoImport, boolean useShortName, Map<String, Segment> segmentDefinitions) { Segment segment = new Segment(); name = name.trim(); segment.setName(name); segment.setSegcode(segcode); segment.setNodeTypeRef(agency + ":" + segcode); if (!isSplitIntoImport) { Segment importedSegment = segmentDefinitions.get(segcode); if(importedSegment == null) { throw new EdiParseException("Unknown segment code '" + segcode + "'."); } segment.getFields().addAll(importedSegment.getFields()); if (importedSegment.getSegments().size() > 0) { segment.getSegments().addAll(importedSegment.getSegments()); } } if (useShortName) { segment.setXmltag(segcode); } else { segment.setXmltag(XmlTagEncoder.encode(name.trim())); } segment.setDocumentation(definitions.get(id).trim()); segment.setMinOccurs(mandatory.equals("M") ? 1 : 0); segment.setMaxOccurs(Integer.valueOf(maxOccurance)); segment.setTruncatable(true); return segment; }