/** * Convert {@link Description} to the string representation * that is used for lookup in the hashmaps * * @param description * @return */ public static String toLookupName(Description description) { return description.getName() + ":" + description.getVersion(); }
@Override public Object clone() { return new Description().setName(name).setVersion(version).setNamespace(namespace); }
private static void addModel(Edimap model, String pathPrefix, StringBuilder modelListBuilder, StringWriter messageEntryWriter, Archive archive) throws IOException { Description modelDesc = model.getDescription(); String messageEntryPath = pathPrefix + "/" + modelDesc.getName() + ".xml"; // Generate the mapping model for this message... messageEntryWriter.getBuffer().setLength(0); model.write(messageEntryWriter); // Add the generated mapping model to the archive... archive.addEntry(messageEntryPath, messageEntryWriter.toString()); // Add this messages archive entry to the mapping model list file... modelListBuilder.append("/" + messageEntryPath); modelListBuilder.append("!" + modelDesc.getName()); modelListBuilder.append("!" + modelDesc.getVersion()); modelListBuilder.append("!" + modelDesc.getNamespace()); modelListBuilder.append("\n"); }
public static void write(Segment segment, Writer writer) throws IOException { Edimap ediMap = new Edimap(); SegmentGroup segments = new SegmentGroup(); segments.getSegments().add(segment); ediMap.setSegments(segments); ediMap.setDelimiters(UNEdifactInterchangeParser.defaultUNEdifactDelimiters); ediMap.setDescription(new Description().setName("TODO").setVersion("TODO")); write(ediMap, writer); }
String namespace = description.getNamespace(); String commonNS = null; String messageNSPrefix = null; if(nameComponentIndex != -1) { commonNS = namespace.substring(0, nameComponentIndex) + ":common"; messageNSPrefix = description.getName().toLowerCase(); attrs.addAttribute(XMLConstants.XMLNS_ATTRIBUTE_NS_URI, "c", "xmlns:c", "CDATA", commonNS); attrs.addAttribute(XMLConstants.XMLNS_ATTRIBUTE_NS_URI, messageNSPrefix, "xmlns:" + messageNSPrefix, "CDATA", namespace);
private void addDescription(Description description, Element edimapEl) { Element descriptionElement = newElement("description", edimapEl); mapBeanProperties(description, descriptionElement, "name", "version"); if (!StringUtils.isEmpty(description.getNamespace())) { descriptionElement.setAttribute("namespace", description.getNamespace()); } }
private String getCommmonMessageName() { return EDIUtils.MODEL_SET_DEFINITIONS_DESCRIPTION.getName(); }
Description description = model.getValue().getDescription(); if(description.equals(EDIUtils.MODEL_SET_DEFINITIONS_DESCRIPTION_LOOKUP_NAME)) { if(messages == null || messages.contains(description.getName())) { EJC ejc = new EJC(); ejc.addEDIMessageAnnotation(true); if(definitionsClassModel != null) { String messagePackageName = packageName + "." + description.getName(); ClassModel classModel = ejc.compile(model.getValue().getEdimap(), messagePackageName, destDir.getAbsolutePath(), definitionsClassModel.getClassesByNode()); MessageDefinition messageDef = new MessageDefinition(description.getName(), "/" + messagePackageName.replace('.', '/') + "/" + EJC.BINDINGCONFIG_XML); messageSetDefinitions.add(messageDef); deleteFile(messagePackageName, EDIUtils.encodeClassName(description.getName()) + "Factory.java");
@Override public int hashCode() { assertInitialized(); return (name + "#" + version).hashCode(); }
public UnEdifactSpecificationReader(ZipInputStream specificationInStream, boolean useImport, boolean useShortName) throws IOException { this.useImport = useImport; this.useShortName = useShortName; definitionFiles = new HashMap<String, byte[]>(); messageFiles = new HashMap<String, byte[]>(); readDefinitionEntries(specificationInStream, new ZipDirectoryEntry("eded.", definitionFiles), new ZipDirectoryEntry("edcd.", definitionFiles), new ZipDirectoryEntry("edsd.", definitionFiles), new ZipDirectoryEntry("edmd.", "*", messageFiles)); if (versions.size() != 1) { if (versions.size() == 0) { throw new EdiParseException("Seems that we have a directory containing 0 parseable version inside: " + versions + ".\n All messages:\n\t" + messages); } throw new EdiParseException("Seems that we have a directory containing more than one parseable version inside: " + versions + ".\n All messages:\n\t" + messages); } String version = versions.iterator().next(); // Read Definition Configuration definitionModel = parseEDIDefinitionFiles(); addMissingDefinitions(definitionModel); definitionModel.getDescription().setNamespace(ControlBlockHandlerFactory.NAMESPACE_ROOT + ":un:" + version + ":common"); //Interchange envelope is inserted into the definitions. Handcoded at the moment. try { String interchangeSegmentDefinitions = INTERCHANGE_DEFINITION_SHORTNAME; if (!useShortName) { interchangeSegmentDefinitions = INTERCHANGE_DEFINITION; } EdifactModel interchangeEnvelope = new EdifactModel(ClassUtil.getResourceAsStream(interchangeSegmentDefinitions, this.getClass())); definitionModel.getSegments().getSegments().addAll(interchangeEnvelope.getEdimap().getSegments().getSegments()); } catch (Exception e) { throw new EdiParseException(e.getMessage(), e); } }
public static void write(Segment segment, Writer writer) throws IOException { Edimap ediMap = new Edimap(); SegmentGroup segments = new SegmentGroup(); segments.getSegments().add(segment); ediMap.setSegments(segments); ediMap.setDelimiters(UNEdifactInterchangeParser.defaultUNEdifactDelimiters); ediMap.setDescription(new Description().setName("TODO").setVersion("TODO")); write(ediMap, writer); }
String namespace = description.getNamespace(); String commonNS = null; String messageNSPrefix = null; if(nameComponentIndex != -1) { commonNS = namespace.substring(0, nameComponentIndex) + ":common"; messageNSPrefix = description.getName().toLowerCase(); attrs.addAttribute(XMLConstants.XMLNS_ATTRIBUTE_NS_URI, "c", "xmlns:c", "CDATA", commonNS); attrs.addAttribute(XMLConstants.XMLNS_ATTRIBUTE_NS_URI, messageNSPrefix, "xmlns:" + messageNSPrefix, "CDATA", namespace);
private void addDescription(Description description, Element edimapEl) { Element descriptionElement = newElement("description", edimapEl); mapBeanProperties(description, descriptionElement, "name", "version"); if (!StringUtils.isEmpty(description.getNamespace())) { descriptionElement.setAttribute("namespace", description.getNamespace()); } }
public Set<String> getMessageNames() { Set<String> names = new LinkedHashSet<String>(); names.add(definitionModel.getDescription().getName()); names.addAll(messageFiles.keySet()); return names; }
@Override public int hashCode() { assertInitialized(); return (name + "#" + version).hashCode(); }
@Override public Object clone() { return new Description().setName(name).setVersion(version).setNamespace(namespace); }
/** * Convert {@link Description} to the string representation * that is used for lookup in the hashmaps * * @param description * @return */ public static String toLookupName(Description description) { return description.getName() + ":" + description.getVersion(); }
public static void write(Segment segment, Writer writer) throws IOException { Edimap ediMap = new Edimap(); SegmentGroup segments = new SegmentGroup(); segments.getSegments().add(segment); ediMap.setSegments(segments); ediMap.setDelimiters(UNEdifactInterchangeParser.defaultUNEdifactDelimiters); ediMap.setDescription(new Description().setName("TODO").setVersion("TODO")); write(ediMap, writer); }
final EPackage pkg = EcoreFactory.eINSTANCE.createEPackage(); Description desc = mapModel.getDescription(); pkg.setName(desc.getName().toLowerCase()); pkg.setNsPrefix(desc.getName().toLowerCase()); pkg.setNsURI(desc.getNamespace()); if (mapModel.getSrc() != null) { annotate(pkg, "src", mapModel.getSrc().toASCIIString()); annotate(pkg, "description.name", mapModel.getDescription().getName()); annotate(pkg, "description.version", mapModel.getDescription() .getVersion()); annotate(pkg, "delimeters.segment", mapModel.getDelimiters() .getSegment());
String namespace = description.getNamespace(); String commonNS = null; String messageNSPrefix = null; if(nameComponentIndex != -1) { commonNS = namespace.substring(0, nameComponentIndex) + ":common"; messageNSPrefix = description.getName().toLowerCase(); attrs.addAttribute(XMLConstants.XMLNS_ATTRIBUTE_NS_URI, "c", "xmlns:c", "CDATA", commonNS); attrs.addAttribute(XMLConstants.XMLNS_ATTRIBUTE_NS_URI, messageNSPrefix, "xmlns:" + messageNSPrefix, "CDATA", namespace);