public void addParticle(ParticleBinding particle) { ModelGroupBinding modelGroup; if(this.particle == null) { modelGroup = new AllBinding(schemaBinding); this.particle = new ParticleBinding(modelGroup); } else { modelGroup = (ModelGroupBinding)this.particle.getTerm(); } modelGroup.addParticle(particle); }
private static boolean isRepeatable(ParticleBinding particle) { return particle.getMaxOccursUnbounded() || particle.getMaxOccurs() > 1 || particle.getMinOccurs() > 1; }
public void addParticle(ParticleBinding particle) { switch(sequence.size()) { case 0: sequence = Collections.singletonList(particle); if(particle.isRepeatable() && particle.getTerm().isElement()) { ElementBinding element = (ElementBinding)particle.getTerm(); if(particle.isRepeatable()) { arrayItem = element; } } break; case 1: sequence = new ArrayList(sequence); arrayItem = null; default: sequence.add(particle); } super.addParticle(particle); }
public void addElement(ElementBinding element, int minOccurs, boolean unbounded) { ParticleBinding particle = new ParticleBinding(element); particle.setMinOccurs(minOccurs); particle.setMaxOccursUnbounded(unbounded); addParticle(particle); }
private static boolean isArrayWrapper(TypeBinding type) { boolean is = false; if(!type.isSimple()) { ParticleBinding particle = type.getParticle(); if(particle != null) { is = particle.getMaxOccursUnbounded() || particle.getMaxOccurs() > 1; } } return is; }
public ModelGroupBinding getModelGroup() { return (ModelGroupBinding)particle.getTerm(); }
private void bindWildcard(XSParticle particle) { WildcardBinding binding = new WildcardBinding(schema); ModelGroupBinding group = (ModelGroupBinding)peekTypeOrGroup(); ParticleBinding particleBinding = new ParticleBinding(binding); particleBinding.setMaxOccurs(particle.getMaxOccurs()); particleBinding.setMaxOccursUnbounded(particle.getMaxOccursUnbounded()); particleBinding.setMinOccurs(particle.getMinOccurs()); group.addParticle(particleBinding); XSWildcard wildcard = (XSWildcard)particle.getTerm(); if(wildcard.getName() != null) { binding.setQName(new QName(wildcard.getNamespace(), wildcard.getName())); } binding.setProcessContents(wildcard.getProcessContents()); if (processAnnotations) { XSAnnotation annotation = wildcard.getAnnotation(); if(annotation != null) { customizeTerm(annotation, binding, trace); } } }
TermBinding term = item.particle.getTerm(); ElementBinding element = (ElementBinding)term; if(item.ended) if(!particle.isRepeatable()) if(item.particle.isRepeatable()) ModelGroupBinding modelGroup = typeParticle == null ? null : (ModelGroupBinding)typeParticle.getTerm(); if(modelGroup == null) particle = new ParticleBinding(xopInclude); ElementBinding parentElement = (ElementBinding) item.particle.getTerm(); parentElement.setXopUnmarshaller(schema.getXopUnmarshaller()); if(modelGroupParticle.isRepeatable()) if(!item.ended && cursor.isPositioned() && cursor.getParticle().getTerm() instanceof ChoiceBinding) if(!item.particle.isRepeatable()) // this is for repeatable choices that should stay on the stack if(!item.particle.isRepeatable()) throw new JBossXBRuntimeException("The particle expected to be repeatable but it's not: " + item.particle.getTerm()); if(prevParticle != null && prevParticle.isRepeatable() && prevParticle.getTerm().isModelGroup()) if(newCursors.size() > 1 && curParticle.isRepeatable())
Object o = particle.getTerm(); if(o instanceof ElementBinding) if(particle.getMaxOccursUnbounded() || occurence < particle.getMinOccurs() || occurence < particle.getMaxOccurs()) Object item = particle.getTerm(); if(item instanceof ElementBinding) qName, atts, passedGroups, groupStack, particle.isRequired(occurence) );
private boolean marshalWildcard(ParticleBinding particle, boolean declareNs) WildcardBinding wildcard = (WildcardBinding)particle.getTerm(); Object o = stack.peek(); ClassMapping mapping = getClassMapping(o.getClass()); marshalled = marshalElementOccurence((ElementBinding) element.getTerm(), root, particle.getMinOccurs() == 0, declareNs); ctx.particle = ctxParticle; ctx.particle = new ParticleBinding(element); marshalled = marshalElementOccurence(element, root, particle.getMinOccurs() == 0, declareNs); ctx.particle = ctxParticle;
public void addElement(ElementBinding element) { ParticleBinding particle = new ParticleBinding(element); elements.put(element.getQName(), particle); }
private static void addXOPInclude(TypeBinding binding, SchemaBinding schema) { binding.setHandler(DefaultHandlers.XOP_HANDLER); if(binding.getParticle() != null) { throw new JBossXBRuntimeException( "XOP optimizable type has a particle which is unexpected, please, open a JIRA issue!" ); } TypeBinding anyUriType = schema.getType(Constants.QNAME_ANYURI); if(anyUriType == null) { log.warn("Type " + Constants.QNAME_ANYURI + " not bound."); } TypeBinding xopIncludeType = new TypeBinding(new QName(Constants.NS_XOP_INCLUDE, "Include")); xopIncludeType.setSchemaBinding(schema); xopIncludeType.addAttribute(new QName("href"), anyUriType, DefaultHandlers.ATTRIBUTE_HANDLER); xopIncludeType.setHandler(new XOPIncludeHandler(binding)); ElementBinding xopInclude = new ElementBinding(schema, new QName(Constants.NS_XOP_INCLUDE, "Include"), xopIncludeType); ParticleBinding particleBinding = new ParticleBinding(xopInclude); particleBinding.setMinOccurs(0); binding.addParticle(particleBinding); }
Object item = particle.getTerm(); if(item instanceof ElementBinding) if(particle.getMinOccurs() > 0) if(result || particle.getMinOccurs() > 0) else if(particle.getMinOccurs() > 0)
/** * Model group that is passed in as an argument to this method must be fully populated with * element, wildcard and child model group bindings. * @param particle */ public void addParticle(ParticleBinding particle) { if(particle.isRequired()) { requiredParticle = true; } }
((ParticleBinding)valueEntry.binding).isRepeatable() && type.isArray() ))
public Object next() { ParticleBinding particle = (ParticleBinding)particleIterator.next(); return particle.getTerm(); }
if(global && element != null) particle = new ParticleBinding(element); if(parentGroup != null) particle.setMinOccurs(minOccurs); if(maxOccursUnbounded) particle.setMaxOccursUnbounded(maxOccursUnbounded); particle.setMaxOccurs(maxOccurs); particle = new ParticleBinding(element); particle.setMinOccurs(minOccurs); particle.setMaxOccurs(maxOccurs); particle.setMaxOccursUnbounded(maxOccursUnbounded); if(global) type.getQName() + ", repeatable=" + particle.isRepeatable() + ", nillable=" + element.isNillable() +
Object o = particle.getTerm(); if(o instanceof ElementBinding) if(particle.getMaxOccursUnbounded() || occurence < particle.getMinOccurs() || occurence < particle.getMaxOccurs()) Object item = particle.getTerm(); if(item instanceof ElementBinding) if(i != pos && particle.getMinOccurs() > 0) qName, atts, passedGroups, groupStack, particle.isRequired(occurence) ); if(i != pos && particle.isRequired()) particle.getMinOccurs() + " that doesn't contain this element must follow." ); else if(i != pos && particle.isRequired()) particle.getMinOccurs() + " that doesn't contain this element must follow." ); if(i != pos && particle.getMinOccurs() > 0)
ParticleBinding particle = new ParticleBinding(this); SequenceBinding sequence = new SequenceBinding(schema); sequence.addParticle(particle); type.setParticle(new ParticleBinding(sequence)); ParticleBinding particle = new ParticleBinding(this); SequenceBinding sequence = new SequenceBinding(schema); sequence.addParticle(particle); type.setHandler(unresolvedElementHandler); type.setSimpleType(unresolvedCharactersHandler); type.setParticle(new ParticleBinding(sequence));
private boolean marshalParticle(ParticleBinding particle, boolean declareNs) TermBinding term = particle.getTerm(); Object o; Iterator i; marshalled = marshalElementOccurence(element, value, particle.getMinOccurs() == 0, declareNs); marshalled = marshalElementOccurence(element, o, particle.getMinOccurs() == 0, declareNs);