<%@ jet package="org.geotools.maven.xmlcodegen.templates" imports="java.util.* org.eclipse.xsd.* org.geotools.xml.*" class="BindingConfigurationTemplate" %> <% Object[] arguments = (Object[])argument; XSDSchema schema = (XSDSchema)arguments[0]; List components = (List)arguments[1]; String ns = schema.getTargetNamespace(); String prefix = Schemas.getTargetPrefix( schema ); List types = new ArrayList(); List elements = new ArrayList(); List attributes = new ArrayList(); for (Iterator itr = components.iterator(); itr.hasNext();) { XSDNamedComponent component = (XSDNamedComponent)itr.next(); if (component instanceof XSDTypeDefinition) { types.add(component); } else if (component instanceof XSDElementDeclaration) { elements.add(component); } else if (component instanceof XSDAttributeDeclaration) { attributes.add(component); } } %> import org.geotools.xml.BindingConfiguration; import org.picocontainer.MutablePicoContainer; /** * Binding configuration for the <%=schema.getTargetNamespace()%> schema. * * @generated */ public final class <%=prefix.toUpperCase()%>BindingConfiguration implements BindingConfiguration { /** * @generated modifiable */ public void configure(MutablePicoContainer container) { <% if (!types.isEmpty()) { %> //Types <% for (Iterator itr = types.iterator(); itr.hasNext();) { XSDTypeDefinition type = (XSDTypeDefinition)itr.next(); if (type.getName() == null) continue; String typeQName = prefix.toUpperCase()+"."+type.getName(); String binding = type.getName().substring(0,1).toUpperCase() + type.getName().substring(1) + "Binding.class"; %> container.registerComponentImplementation(<%=typeQName%>,<%=binding%>); <% } } %> <% if (!elements.isEmpty()) { %> //Elements <% for (Iterator itr = elements.iterator(); itr.hasNext();) { XSDNamedComponent named = (XSDNamedComponent)itr.next(); if (named.getName() == null) continue; String nQName = prefix.toUpperCase()+"."+named.getName(); String binding = named.getName().substring(0,1).toUpperCase() + named.getName().substring(1) + "Binding.class"; %> container.registerComponentImplementation(<%=nQName%>,<%=binding%>); <% } } %> <% if (!attributes.isEmpty()) { %> //Attributes <% for (Iterator itr = attributes.iterator(); itr.hasNext();) { XSDNamedComponent named = (XSDNamedComponent)itr.next(); if (named.getName() == null) continue; String nQName = prefix.toUpperCase()+"."+named.getName(); String binding = named.getName().substring(0,1).toUpperCase() + named.getName().substring(1) + "Binding.class"; %> container.registerComponentImplementation(<%=nQName%>,<%=binding%>); <% } } %> } }