/** * Get the binding definition for a namespace, creating a new one if not previously defined. This method should only * be used after the {@link #generate(Boolean, List)} method has been called. It delegates to the * {@link org.jibx.binding.model.BindingOrganizer} implementation. * * @param uri URI * @param dflt namespace is default for elements in binding flag * @return binding holder */ public BindingHolder addBinding(String uri, boolean dflt) { BindingHolder hold = m_directory.getBinding(uri); if (hold == null) { hold = m_directory.addBinding(uri, uri, null, dflt); } return hold; }
/** * Scan schemas to find the default prefixes used for namespaces. * * @param iter schema iterator */ public void setDefaultPrefixes(Iterator iter) { while (iter.hasNext()) { SchemaElement schema = (SchemaElement)iter.next(); ArrayList decls = schema.getNamespaceDeclarations(); for (int i = 0; i < decls.size(); i++) { String prefix = (String)decls.get(i++); m_bindingDirectory.addDefaultPrefix((String)decls.get(i), prefix); } } }
/** * Adds a collection of namespace URIs to be referenced at root binding level. * * @param uris URIs */ public void addRootUris(Collection uris) { m_directory.addRootUris(uris); }
m_bindingDirectory = new BindingOrganizer(false, false, false, true, true, true); Map namebindings = new HashMap(); Map nsbindings = new HashMap(); holder = m_bindingDirectory.getBinding(schema); if (holder == null) { holder = m_bindingDirectory.addBinding(schema, uri, prefix, dflt); m_bindingDirectory.addBindingObject(schema, holder); holder = m_bindingDirectory.addBinding(schema, uri, prefix, dflt); holder = m_bindingDirectory.addBinding(schema, uri, prefix, dflt); nsbindings.put(uri, holder); } else { m_bindingDirectory.addBindingObject(schema, holder);
/** * Write the binding definitions file(s). This method can only be used after * {@link #buildDataModel(boolean, boolean, Map, Map)} is called. * * @param name root binding definition file name (use customization, or default, if <code>null</code>) * @param pack target package for binding (<code>null</code> if unspecified) * @param pregens pregenerated bindings to be included in root binding * @param handler validation error and code generation problem handler * @throws JiBXException error * @throws IOException error */ public void writeBindings(String name, String pack, List pregens, ProblemHandler handler) throws JiBXException, IOException { if (name == null) { name = m_global.getBindingFileName(); if (name == null) { name = "binding.xml"; } } m_rootHolder = m_bindingDirectory.configureFiles(name, pack, pregens); IClassLocator iloc = new DummyClassLocator(); org.jibx.binding.model.ValidationContext vctx = new org.jibx.binding.model.ValidationContext(iloc); if (m_bindingDirectory.validateBindings(m_rootHolder, m_targetDir, vctx)) { m_bindingDirectory.writeBindings(m_targetDir); } else { reportBindingProblems(vctx, handler); throw new JiBXException("Terminating due to errors in bindings"); } }
OpenAttrBase comp = definition.getSchemaComponent(); SchemaElement schema = comp.getSchema(); BindingHolder holder = m_bindingDirectory.getRequiredBinding(schema); if (definition.isEnumeration()) { format.setQName(definition.getQName()); ((EnumerationClassHolder)clas).setBinding(format); m_bindingDirectory.addFormat(format); String uri = qname.getUri(); if (uri != null) { m_bindingDirectory.addTypeNameReference(holder, uri, schema); holder = m_bindingDirectory.getRequiredBinding(elschema); setName(element.getEffectiveQName(), elmapping, holder); StructureElement struct = new StructureElement(); String uri = qname.getUri(); if (uri != null) { m_bindingDirectory.addTypeNameReference(holder, uri, schema);
m_directory.writeBindings(dir); List uris = m_directory.getKeys(); List bindings = new ArrayList(); bindings.add(binding);
/** * Complete the generated bindings. This prepares the generated bindings for writing to the file system, if desired. * * @param name file name for root or singleton binding definition * @return holder for root binding definition */ public BindingHolder finish(String name) { BindingHolder root = m_directory.configureFiles(name, m_targetPackage, Collections.EMPTY_LIST); return root; }
/** * Create a generator based on a particular set of customizations. * * @param glob Customizations */ public BindGen(GlobalCustom glob) { m_global = glob; m_includeSet = new HashSet(); m_ignoreSet = new HashSet(); m_directSet = new HashSet(); m_superSet = new HashSet(); m_formatSet = new HashSet(); m_mappingDetailsMap = new HashMap(); m_typeNamesMap = new HashMap(); m_elementNamesMap = new HashMap(); m_directory = new BindingOrganizer(glob.isForceClasses(), glob.isTrackSource(), glob.isAddConstructors(), glob.isInput(), glob.isOutput(), false); }
/** * Generate any required format definitions. Format definitions are used for all classes defining serializer or * deserializer methods. */ private void generateFormats() { // add any required format definitions for (Iterator iter = m_formatSet.iterator(); iter.hasNext();) { String type = (String)iter.next(); ClassCustom clas = m_global.getClassCustomization(type); if (clas.getSerializer() != null || clas.getDeserializer() != null) { FormatElement format = new FormatElement(); format.setDeserializerName(clas.getDeserializer()); format.setSerializerName(clas.getSerializer()); format.setTypeName(type); m_directory.addFormat(format); } } }
BindingHolder hold = m_directory.getBinding(uri); if (mainmapping.isAbstract()) { hold.addTypeNameReference(uri, uri);
if (m_directory.getBinding(uri) == null) { m_directory.addBinding(uri, uri, null, true);