private List<XSParticle> getAllElementParticles( XSParticle particle ) { List<XSParticle> particles = new ArrayList<XSParticle>(); XSTerm xsTerm = particle.getTerm(); switch ( xsTerm.getType() ) { case XSConstants.ELEMENT_DECLARATION: particles.add( particle ); break; case XSConstants.MODEL_GROUP: XSModelGroup group = (XSModelGroup) xsTerm; for ( Iterator<XSParticle> itr = group.getParticles().iterator(); itr.hasNext(); ) { XSParticle xsParticle = itr.next(); particles.addAll( getAllElementParticles( xsParticle ) ); } break; default: // ignore wildcard term } return particles; }
private void expandRelatedParticleComponents(XSParticle component, Vector componentList, String namespace, Hashtable dependencies) { XSTerm term = component.getTerm(); switch (term.getType()) { case XSConstants.ELEMENT_DECLARATION : addRelatedElement((XSElementDeclaration) term, componentList, namespace, dependencies); break; case XSConstants.MODEL_GROUP : expandRelatedModelGroupComponents((XSModelGroup) term, componentList, namespace, dependencies); break; default: break; } }
private XSParticle getEnclosingParticle( XSElementDeclaration elDecl ) { XSComplexTypeDefinition enclosingDef = elDecl.getEnclosingCTDefinition(); if ( enclosingDef != null ) { List<XSParticle> particles = getAllElementParticles( enclosingDef.getParticle() ); for ( XSParticle xp : particles ) { XSTerm term = xp.getTerm(); if ( term.getType() == ELEMENT_DECLARATION ) { XSElementDeclaration currentElDecl = (XSElementDeclaration) term; if ( elDecl.equals( currentElDecl ) ) { return xp; } } } } return null; }
private List<Schema.Field> createFields(XSComplexTypeDefinition type) { final Map<String, Schema.Field> fields = new LinkedHashMap<>(); XSObjectList attrUses = type.getAttributeUses(); for (int i = 0; i < attrUses.getLength(); i++) { XSAttributeUse attrUse = (XSAttributeUse) attrUses.item(i); XSAttributeDeclaration attrDecl = attrUse.getAttrDeclaration(); boolean optional = !attrUse.getRequired(); Schema.Field field = createField(fields.values(), attrDecl, attrDecl.getTypeDefinition(), optional, false); fields.put(field.getProp(Source.SOURCE), field); } XSParticle particle = type.getParticle(); if (particle == null) return new ArrayList<>(fields.values()); XSTerm term = particle.getTerm(); if (term.getType() != XSConstants.MODEL_GROUP) throw new ConverterException("Unsupported term type " + term.getType()); XSModelGroup group = (XSModelGroup) term; createGroupFields(group, fields, false); return new ArrayList<>(fields.values()); }
private void insertBaseParticle(List<XSParticle> particles, String name, Class<?> type, String targetNS) { if (particles.size() == 0) { particles.add(getXSParticle(name, type, targetNS)); return; } XSParticle particle = particles.get(0); XSTerm term = particle.getTerm(); if (term.getType() == XSConstants.MODEL_GROUP) { JBossXSModelGroup group = (JBossXSModelGroup)term; XSObjectList list = group.getParticles(); ArrayList<XSParticle> baseParticles = new ArrayList<XSParticle>(); for (int i = 0; i < list.getLength(); i++) baseParticles.add((XSParticle)list.item(i)); insertBaseParticle(baseParticles, name, type, targetNS); if (baseParticles.size() > list.getLength()) group.setParticles(baseParticles); } else { particles.add(0, getXSParticle(name, type, targetNS)); } }
private boolean isGroupTypeWithMultipleOccurs(XSParticle particle) { if (particle == null) return false; XSTerm term = particle.getTerm(); if (term.getType() != XSConstants.MODEL_GROUP) return false; XSModelGroup group = (XSModelGroup) term; final short compositor = group.getCompositor(); switch(compositor) { case XSModelGroup.COMPOSITOR_CHOICE: case XSModelGroup.COMPOSITOR_SEQUENCE: return particle.getMaxOccurs() > 1 || particle.getMaxOccursUnbounded(); default: return false; } }
XSParticle particle = typeDef.getParticle(); XSTerm term = particle.getTerm(); switch ( term.getType() ) { case XSConstants.MODEL_GROUP: { XSModelGroup modelGroup = (XSModelGroup) term; switch ( particle2.getTerm().getType() ) { case XSConstants.ELEMENT_DECLARATION: { return (XSElementDeclaration) particle2.getTerm();
private void analyzeParticle(XSParticle particle, String parentName, String namespace) { // Is this right, can a particle be null? if (particle == null) return; XSTerm term = particle.getTerm(); // Is this right, can a term be null? if (term == null) return; switch (term.getType()) { case XSConstants.MODEL_GROUP: XSModelGroup group = (XSModelGroup)term; XSObjectList list = group.getParticles(); for (int i = 0; i < list.getLength(); i++) analyzeParticle((XSParticle)list.item(i), parentName, namespace); break; case XSConstants.ELEMENT_DECLARATION: XSElementDeclaration decl = (XSElementDeclaration)term; analyzeElement(decl, parentName, namespace, new Integer(particle.getMinOccurs()), new Integer(particle.getMaxOccurs())); } }
short termType = jxpterm.getType(); if (termType == XSConstants.ELEMENT_DECLARATION) buf.append(write((XSElementDeclaration)jxpterm, jxsp));
private void addVariableMappings(Class<?> javaType, JavaXmlTypeMapping javaXmlTypeMapping, List<XSParticle> particles, Map<String, String> reversedNames) { for (XSParticle particle : particles) { XSTerm term = particle.getTerm(); if (term.getType() == XSConstants.MODEL_GROUP) { XSModelGroup group = (XSModelGroup)term; XSObjectList list = group.getParticles(); ArrayList<XSParticle> baseParticles = new ArrayList<XSParticle>(); for (int i = 0; i < list.getLength(); i++) baseParticles.add((XSParticle)list.item(i)); addVariableMappings(javaType, javaXmlTypeMapping, baseParticles, null); continue; } String name = term.getName(); String variableName = name; if (reversedNames != null && reversedNames.get(name) != null) variableName = reversedNames.get(name); VariableMapping mapping = new VariableMapping(javaXmlTypeMapping); mapping.setJavaVariableName(variableName); mapping.setXmlElementName(name); mapping.setDataMember(utils.doesPublicFieldExist(javaType, variableName)); if (isAlreadyMapped(javaXmlTypeMapping, mapping) == false) { javaXmlTypeMapping.addVariableMapping(mapping); } } }
particle.getMaxOccursUnbounded() ? -1 : particle.getMaxOccurs() ); switch ( particle.getTerm().getType() ) { case ELEMENT_DECLARATION: { XSElementDeclaration elementDecl = (XSElementDeclaration) particle.getTerm();
private void collectProperties( XSParticle particle, List<PropertyDeclaration> properties ) { switch ( particle.getTerm().getType() ) { case XSConstants.MODEL_GROUP: { XSModelGroup modelGroup = (XSModelGroup) particle.getTerm(); XSObjectList subParticles = modelGroup.getParticles(); for ( int i = 0; i < subParticles.getLength(); i++ ) { XSParticle subParticle = (XSParticle) subParticles.item( i ); collectProperties( subParticle, properties ); } break; } case XSConstants.ELEMENT_DECLARATION: { XSElementDeclaration elementDecl = (XSElementDeclaration) particle.getTerm(); QName propertyName = new QName( elementDecl.getNamespace(), elementDecl.getName() ); String minOccurs = "" + particle.getMinOccurs(); String maxOccurs = particle.getMaxOccursUnbounded() ? "unbounded" : "" + particle.getMaxOccurs(); QName propertyType = new QName( elementDecl.getTypeDefinition().getNamespace(), elementDecl.getTypeDefinition().getName() ); PropertyDeclaration property = new PropertyDeclaration( propertyName, minOccurs, maxOccurs, propertyType ); properties.add( property ); break; } case XSConstants.WILDCARD: { break; } default: { // cannot happen } } }
switch (xsTerm.getType()) { case XSConstants.ELEMENT_DECLARATION:
if (particle != null) { XSTerm term = particle.getTerm(); if (NO_FILTER == filter || (term != null && term.getType() == filter)) { addComponent(term, nameTest, outputComponents); case XSConstants.PARTICLE: { XSTerm term = ((XSParticle) sourceComponent).getTerm(); if (NO_FILTER == filter || (term != null && term.getType() == filter)) { addComponent(term, nameTest, outputComponents);
if (item.getTerm().getType() != XSComplexTypeDefinition.CONTENTTYPE_ELEMENT) { continue;