public Segment addField(Field field) { getFields().add(field); return this; }
private static void addFieldToSegment(Map<String, Field> fields, Map<String, Component> componens, Segment segment, String id, boolean isMandatory) { if (id.toUpperCase().startsWith("C")) { segment.getFields().add(copyField(fields.get(id), isMandatory)); } else { segment.getFields().add(convertToField(componens.get(id), isMandatory)); } }
/** * This method converting classes for common mapping model * * @param commonModel * @param commonClasses * @param commonPackage */ private Collection<EClass> createCommonClasses(Edimap commonModel, final Map<String, EClass> commonClasses) { Map<String, EClass> result = new HashMap<String, EClass>(); for (SegmentGroup grp : commonModel.getSegments().getSegments()) { // No segment groups are allowed in common part Segment segment = (Segment) grp; EClass clazz = ECoreConversionUtils.segmentToEClass(segment); if (!segment.getFields().isEmpty()) { commonClasses.put(segment.getSegcode(), clazz); Collection<EStructuralFeature> fields = processFields( segment.getFields(), result); clazz.getEStructuralFeatures().addAll(fields); } result.put(clazz.getName(), clazz); } // Adding DocumentRoot EClass droot = ECoreConversionUtils.createDocumentRoot(null); result.put(droot.getName(), droot); return result.values(); }
segment.getFields().add(field); digestField(currentNode, field, namespacePrefix, segment); } else {
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; }
private void assertFieldsOK(String[] currentSegmentFields, Segment segment) throws EDIParseException { List<Field> expectedFields = segment.getFields();
private void addChildSegments(SegmentGroup segmentGroup, Element parentSegment) { List<SegmentGroup> childSegments = segmentGroup.getSegments(); for(SegmentGroup childSegment : childSegments) { Element segmentEl; if(childSegment instanceof Segment) { segmentEl = newElement("segment", parentSegment, childSegment); mapBeanProperties(childSegment, segmentEl, "segcode", "nodeTypeRef", "description", "ignoreUnmappedFields", "truncatable"); addFields(((Segment)childSegment).getFields(), segmentEl); } else { segmentEl = newElement("segmentGroup", parentSegment, childSegment); } mapBeanProperties(childSegment, segmentEl, "name", "xmltag", "minOccurs", "maxOccurs"); addChildSegments(childSegment, segmentEl); } }