/* */ }
/* */ }
/* */
/* */ private boolean marshalParticle(ParticleBinding particle, boolean declareNs)
/* */ {
/* 644 */ TermBinding term = particle.getTerm();
/* */
/* 648 */ ParticleBinding ctxParticle = this.ctx.particle;
/* 649 */ MarshallingContextImpl.access$102(this.ctx, particle);
/* */ boolean marshalled;
/* 651 */ if (term.isModelGroup())
/* */ {
/* 653 */ ModelGroupBinding modelGroup = (ModelGroupBinding)term;
/* */ boolean marshalled;
/* 654 */ if ((modelGroup.isSkip()) || (this.stack.isEmpty()))
/* */ {
/* 656 */ marshalled = marshalModelGroup(modelGroup, declareNs);
/* */ }
/* */ else
/* */ {
/* 660 */ PropertyMetaData propertyMetaData = modelGroup.getPropertyMetaData();
/* 661 */ if (propertyMetaData == null)
/* */ {
/* 663 */ throw new JBossXBRuntimeException("Currently, property binding metadata must be available for a model group to be marshalled!");
/* */ }
/* */
/* 668 */ Object o = getChildren(this.stack.peek(), propertyMetaData.getName(), modelGroup.getSchema().isIgnoreUnresolvedFieldOrClass());
/* */
/* 672 */ TermBeforeMarshallingCallback marshallingHandler = modelGroup.getBeforeMarshallingCallback();
/* */
/* 674 */ Iterator i = (o != null) && (isRepeatable(particle)) ? getIterator(o) : null;
/* 675 */ if (i != null)
/* */ {
/* 677 */ boolean marshalled = true;
/* 678 */ while ((i.hasNext()) && (marshalled))
/* */ {
/* 680 */ Object value = i.next();
/* */
/* 682 */ if (marshallingHandler != null)
/* */ {
/* 684 */ value = marshallingHandler.beforeMarshalling(value, this.ctx);
/* */ }
/* */
/* 687 */ this.stack.push(value);
/* 688 */ marshalled = marshalModelGroup(modelGroup, declareNs);
/* 689 */ this.stack.pop();
/* */ }
/* */
/* */ }
/* */
/* 694 */ if (marshallingHandler != null)
/* */ {
/* 696 */ o = marshallingHandler.beforeMarshalling(o, this.ctx);
/* */ }
/* */
/* 699 */ this.stack.push(o);
/* 700 */ boolean marshalled = marshalModelGroup(modelGroup, declareNs);
/* 701 */ this.stack.pop();
/* */ }
/* */
/* */ }
/* 705 */ else if (term.isWildcard())
/* */ {
/* 707 */ Object o = this.stack.peek();
/* */
/* 709 */ boolean popWildcardValue = false;
/* 710 */ ObjectLocalMarshaller marshaller = null;
/* 711 */ AbstractMarshaller.FieldToWildcardMapping mapping = (AbstractMarshaller.FieldToWildcardMapping)this.field2WildcardMap.get(o.getClass());
/* 712 */ if (mapping != null)
/* */ {
/* 714 */ marshaller = mapping.marshaller;
/* 715 */ o = mapping.fieldInfo.getValue(o);
/* 716 */ this.stack.push(o);
/* 717 */ popWildcardValue = true;
/* */ }
/* */
/* 720 */ TermBeforeMarshallingCallback marshallingHandler = term.getBeforeMarshallingCallback();
/* */
/* 722 */ Iterator i = (o != null) && (isRepeatable(particle)) ? getIterator(o) : null;
/* 723 */ if (i != null)
/* */ {
/* 725 */ boolean marshalled = true;