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; }
/** * Set values in {@link org.milyn.edisax.model.internal.Segment}. * @param segment the {@link org.milyn.edisax.model.internal.Segment} to populate. * @param node the Segment element. */ private void setValuesForSegment(Segment segment, Node node, String namespacePrefix, MappingNode parent) { segment.setMaxOccurs(getNodeValueAsInteger(node, "maxOccurs")); segment.setMinOccurs(getNodeValueAsInteger(node, "minOccurs")); segment.setSegcode(getAttributeValue(node, "segcode")); segment.setTruncatable(getNodeValueAsBoolean(node, "truncatable")); segment.setIgnoreUnmappedFields(getNodeValueAsBoolean(node, "ignoreUnmappedFields")); segment.setDescription(getAttributeValue(node, "description")); setValuesForMappingNode(node, segment, namespacePrefix, parent); if(segment.getNodeTypeRef() == null) { // Backward compatibility support. Schema pre v 1.4 supported a segref // on <segment>, which we thn generalised as nodeTypeRef for all node types. segment.setNodeTypeRef(getAttributeValue(node, "segref")); } }
/** * Set values in {@link org.milyn.edisax.model.internal.Segment}. * @param segment the {@link org.milyn.edisax.model.internal.Segment} to populate. * @param node the Segment element. */ private void setValuesForSegment(Segment segment, Node node, String namespacePrefix, MappingNode parent) { segment.setMaxOccurs(getNodeValueAsInteger(node, "maxOccurs")); segment.setMinOccurs(getNodeValueAsInteger(node, "minOccurs")); segment.setSegcode(getAttributeValue(node, "segcode")); segment.setTruncatable(getNodeValueAsBoolean(node, "truncatable")); segment.setIgnoreUnmappedFields(getNodeValueAsBoolean(node, "ignoreUnmappedFields")); segment.setDescription(getAttributeValue(node, "description")); setValuesForMappingNode(node, segment, namespacePrefix, parent); if(segment.getNodeTypeRef() == null) { // Backward compatibility support. Schema pre v 1.4 supported a segref // on <segment>, which we thn generalised as nodeTypeRef for all node types. segment.setNodeTypeRef(getAttributeValue(node, "segref")); } }
/** * Set values in {@link org.milyn.edisax.model.internal.Segment}. * @param segment the {@link org.milyn.edisax.model.internal.Segment} to populate. * @param node the Segment element. */ private void setValuesForSegment(Segment segment, Node node, String namespacePrefix, MappingNode parent) { segment.setMaxOccurs(getNodeValueAsInteger(node, "maxOccurs")); segment.setMinOccurs(getNodeValueAsInteger(node, "minOccurs")); segment.setSegcode(getAttributeValue(node, "segcode")); segment.setTruncatable(getNodeValueAsBoolean(node, "truncatable")); segment.setIgnoreUnmappedFields(getNodeValueAsBoolean(node, "ignoreUnmappedFields")); segment.setDescription(getAttributeValue(node, "description")); setValuesForMappingNode(node, segment, namespacePrefix, parent); if(segment.getNodeTypeRef() == null) { // Backward compatibility support. Schema pre v 1.4 supported a segref // on <segment>, which we thn generalised as nodeTypeRef for all node types. segment.setNodeTypeRef(getAttributeValue(node, "segref")); } }
/** * Set values in {@link org.milyn.edisax.model.internal.Segment}. * @param segment the {@link org.milyn.edisax.model.internal.Segment} to populate. * @param node the Segment element. */ private void setValuesForSegment(Segment segment, Node node, String namespacePrefix, MappingNode parent) { segment.setMaxOccurs(getNodeValueAsInteger(node, "maxOccurs")); segment.setMinOccurs(getNodeValueAsInteger(node, "minOccurs")); segment.setSegcode(getAttributeValue(node, "segcode")); segment.setTruncatable(getNodeValueAsBoolean(node, "truncatable")); segment.setIgnoreUnmappedFields(getNodeValueAsBoolean(node, "ignoreUnmappedFields")); segment.setDescription(getAttributeValue(node, "description")); setValuesForMappingNode(node, segment, namespacePrefix, parent); if(segment.getNodeTypeRef() == null) { // Backward compatibility support. Schema pre v 1.4 supported a segref // on <segment>, which we thn generalised as nodeTypeRef for all node types. segment.setNodeTypeRef(getAttributeValue(node, "segref")); } }