/* 1205 */ XmlTransient xmlTransient = (XmlTransient)property.getUnderlyingAnnotation(XmlTransient.class);
/* 1206 */ if ((xmlTransient != null) && (propertyOrder != null)) {
/* 1207 */ throw new RuntimeException("Property " + property.getName() + " in property order " + Arrays.asList(propertyOrder) + " is marked @XmlTransient");
/* */ }
/* */
/* 1211 */ ModelGroupBinding localModel = model;
/* */
/* 1214 */ if (propertyType.isArray())
/* */ {
/* 1216 */ if (this.trace)
/* 1217 */ log.trace("Property " + property.getName() + " is an array");
/* 1218 */ localModel = createArray(localModel);
/* */ }
/* 1220 */ else if (propertyType.isCollection())
/* */ {
/* 1222 */ if (this.trace)
/* 1223 */ log.trace("Property " + property.getName() + " is a collection");
/* 1224 */ localModel = createCollection(localModel);
/* */
/* 1226 */ JBossXmlCollection xmlCol = (JBossXmlCollection)property.getUnderlyingAnnotation(JBossXmlCollection.class);
/* 1227 */ if (xmlCol != null)
/* */ {
/* 1230 */ propertyType = propertyType.getTypeInfoFactory().getTypeInfo(xmlCol.type());
/* */ }
/* */
/* */ }
/* 1234 */ else if (!property.getType().isPrimitive())
/* */ {
/* 1236 */ ClassInfo propClassInfo = (ClassInfo)property.getType();
/* */
/* 1239 */ XmlElement propXmlElement = (XmlElement)property.getUnderlyingAnnotation(XmlElement.class);
/* 1240 */ if (propXmlElement != null)
/* */ {
/* 1242 */ propClassInfo = (ClassInfo)propClassInfo.getTypeInfoFactory().getTypeInfo(propXmlElement.type());
/* */ }
/* */
/* 1245 */ JBossXmlModelGroup xmlModelGroup = (JBossXmlModelGroup)propClassInfo.getUnderlyingAnnotation(JBossXmlModelGroup.class);
/* 1246 */ if ((xmlModelGroup != null) && (xmlModelGroup.particles().length == 0))
/* */ {
/* 1248 */ if (this.trace) {
/* 1249 */ log.trace("Property " + property.getName() + " is bound to " + xmlModelGroup.kind());
/* */ }
/* 1251 */ ModelGroupBinding propertyGroup = null;
/* 1252 */ QName groupName = null;
/* 1253 */ if (!"##default".equals(xmlModelGroup.name())) {
/* 1254 */ groupName = new QName(xmlModelGroup.name());
/* */ }
/* 1256 */ if (groupName != null) {
/* 1257 */ propertyGroup = this.schemaBinding.getGroup(groupName);
/* */ }
/* 1259 */ if (propertyGroup == null)
/* */ {
/* 1261 */ if (xmlModelGroup.kind().equals("sequence"))
/* */ {
/* 1263 */ propertyGroup = new SequenceBinding(this.schemaBinding);
/* */ }
/* 1265 */ else if (xmlModelGroup.kind().equals("choice"))
/* */ {
/* 1267 */ propertyGroup = new ChoiceBinding(this.schemaBinding);
/* */ }
/* 1269 */ else if (xmlModelGroup.kind().equals("all"))
/* */ {
/* 1271 */ propertyGroup = new AllBinding(this.schemaBinding);
/* */ }
/* */ else
/* */ {
/* 1275 */ throw new IllegalStateException("Unexpected JBossXmlModelGroup.kind=" + xmlModelGroup.kind());
/* */ }
/* */
/* 1278 */ if (groupName != null)
/* */ {
/* 1281 */ propertyGroup.setQName(groupName);
/* 1282 */ this.schemaBinding.addGroup(propertyGroup.getQName(), propertyGroup);
/* */ }
/* */
/* 1285 */ propertyGroup.setSkip(Boolean.FALSE);
/* */
/* 1288 */ BeanInfo propBeanInfo = JBossXBBuilder.configuration.getBeanInfo(propClassInfo);
/* 1289 */ BeanAdapterFactory propBeanAdapterFactory = null;
/* */ try
/* */ {
/* 1293 */ BeanInfo propBeanAdapterBuilderInfo = JBossXBBuilder.configuration.getBeanInfo(DefaultBeanAdapterBuilder.class);
/* */
/* 1295 */ BeanAdapterBuilder propBeanAdapterBuilder = (BeanAdapterBuilder)propBeanAdapterBuilderInfo.newInstance();
/* */
/* 1297 */ propBeanAdapterFactory = propBeanAdapterBuilder.newFactory(propBeanInfo, null);
/* */ }
/* */ catch (Throwable t)
/* */ {
/* 1301 */ throw new RuntimeException("Error creating BeanAdapterFactory for " + DefaultBeanAdapterBuilder.class.getName(), t);
/* */ }
/* */
/* 1304 */ BeanHandler propHandler = new BeanHandler(propBeanInfo.getName(), propBeanAdapterFactory);
/* 1305 */ propertyGroup.setHandler(propHandler);
/* */
/* 1307 */ String[] memberOrder = xmlModelGroup.propOrder();
/* 1308 */ if ((memberOrder.length == 0) || (memberOrder[0].length() == 0))
/* */ {
/* 1310 */ List propNames = new ArrayList();
/* 1311 */ for (PropertyInfo prop : propBeanInfo.getProperties())
/* */ {
/* 1313 */ propNames.add(prop.getName());
/* */ }
/* 1315 */ memberOrder = (String[])propNames.toArray(new String[propNames.size()]);
/* */ }
/* */
/* 1318 */ if (this.trace) {
/* 1319 */ log.trace("Property order for " + xmlModelGroup.kind() + " property " + property.getName() + ": " + Arrays.asList(memberOrder));
/* */ }
/* */
/* 1323 */ for (String memberPropName : memberOrder)
/* */ {
/* 1325 */ if ("class".equals(memberPropName))
/* */ {
/* */ continue;
/* */ }
/* */
/* 1330 */ PropertyInfo memberProp = propBeanInfo.getProperty(memberPropName);
/* 1331 */ TypeInfo memberTypeInfo = memberProp.getType();
/* 1332 */ String memberNamespace = null;
/* */
/* 1334 */ JBossXmlNsPrefix nsPrefix = (JBossXmlNsPrefix)memberProp.getUnderlyingAnnotation(JBossXmlNsPrefix.class);
/* 1335 */ if (nsPrefix != null)
/* */ {
/* 1337 */ memberNamespace = this.schemaBinding.getNamespace(nsPrefix.prefix());
/* 1338 */ if ((memberNamespace == null) && (nsPrefix.schemaTargetIfNotMapped()))
/* */ {
/* 1340 */ throw new IllegalStateException("Prefix '" + nsPrefix.prefix() + "' is not mapped to any namespace!");
/* */ }
/* */
/* */ }
/* */
/* 1345 */ String memberName = null;
/* 1346 */ XmlElement memberXmlElement = (XmlElement)memberProp.getUnderlyingAnnotation(XmlElement.class);
/* 1347 */ if (memberXmlElement != null)
/* */ {
/* 1349 */ if (!XmlElement.DEFAULT.class.equals(memberXmlElement.type()))
/* */ {
/* 1351 */ memberTypeInfo = memberTypeInfo.getTypeInfoFactory().getTypeInfo(memberXmlElement.type());
/* */ }
/* */
/* 1354 */ if (memberNamespace == null)
/* 1355 */ memberNamespace = memberXmlElement.namespace();
/* 1356 */ memberName = memberXmlElement.name();
/* */ }
/* */
/* 1359 */ if (memberNamespace == null)
/* */ {
/* 1361 */ memberNamespace = this.defaultNamespace;
/* */ }
/* */
/* 1364 */ boolean isCol = false;
/* 1365 */ AbstractPropertyHandler memberPropertyHandler = null;
/* 1366 */ if (memberProp.getType().isCollection())
/* */ {
/* 1368 */ memberPropertyHandler = new CollectionPropertyHandler(memberProp, memberProp.getType());
/* 1369 */ isCol = true;
/* */
/* 1371 */ if ((memberXmlElement == null) || (XmlElement.DEFAULT.class.equals(memberXmlElement.type())))
/* */ {
/* 1373 */ JBossXmlCollection jbossXmlCollection = (JBossXmlCollection)memberProp.getUnderlyingAnnotation(JBossXmlCollection.class);
/* */
/* 1375 */ if (jbossXmlCollection != null)
/* */ {
/* 1377 */ memberTypeInfo = memberTypeInfo.getTypeInfoFactory().getTypeInfo(jbossXmlCollection.type());
/* */ }
/* 1379 */ memberTypeInfo = findComponentType((ClassInfo)memberTypeInfo);
/* */ }
/* */
/* */ }
/* 1383 */ else if (memberTypeInfo.isCollection())
/* */ {
/* 1385 */ memberPropertyHandler = new CollectionPropertyHandler(memberProp, memberTypeInfo);
/* 1386 */ isCol = true;
/* 1387 */ memberTypeInfo = findComponentType((ClassInfo)memberTypeInfo);
/* */ }
/* */ else
/* */ {
/* 1391 */ memberPropertyHandler = new PropertyHandler(memberProp, memberTypeInfo);
/* */ }
/* */
/* 1394 */ QName memberQName = generateXmlName(memberProp.getName(), this.elementForm, memberNamespace, memberName);
/* 1395 */ propBeanAdapterFactory.addProperty(memberQName, memberPropertyHandler);
/* */
/* 1397 */ XBValueAdapter valueAdapter = null;
/* 1398 */ XmlJavaTypeAdapter xmlTypeAdapter = (XmlJavaTypeAdapter)memberProp.getUnderlyingAnnotation(XmlJavaTypeAdapter.class);
/* 1399 */ if (xmlTypeAdapter != null)
/* */ {
/* 1401 */ valueAdapter = new XBValueAdapter(xmlTypeAdapter.value(), memberTypeInfo.getTypeInfoFactory());
/* 1402 */ memberTypeInfo = valueAdapter.getAdaptedTypeInfo();
/* */ }
/* */
/* 1405 */ TypeBinding memberTypeBinding = resolveTypeBinding(memberTypeInfo);
/* 1406 */ ElementBinding memberElement = createElementBinding(memberTypeInfo, memberTypeBinding, memberQName, false);
/* */
/* 1408 */ memberElement.setNillable(true);
/* 1409 */ memberElement.setValueAdapter(valueAdapter);
/* 1410 */ ParticleBinding memberParticle = new ParticleBinding(memberElement, 0, 1, isCol);
/* 1411 */ propertyGroup.addParticle(memberParticle);
/* */
/* 1413 */ if (this.trace) {
/* 1414 */ log.trace("added " + memberParticle + " to " + xmlModelGroup.kind() + ", property " + property.getName());
/* */ }
/* */ }
/* */ }
/* */
/* 1419 */ model.addParticle(new ParticleBinding(propertyGroup));
/* */
/* 1423 */ AbstractPropertyHandler propertyHandler = null;
/* 1424 */ if (propertyType.isCollection()) {
/* 1425 */ propertyHandler = new CollectionPropertyHandler(property, propClassInfo);
/* */ }
/* */ else {
/* 1428 */ propertyHandler = new PropertyHandler(property, propClassInfo);
/* */ }
/* 1430 */ beanAdapterFactory.addProperty(propertyGroup.getQName(), propertyHandler);
/* 1431 */ return;
/* */ }
/* */
/* */ }
/* */
/* 1436 */ XmlElement[] elements = null;
/* 1437 */ XmlElement xmlElement = (XmlElement)property.getUnderlyingAnnotation(XmlElement.class);
/* 1438 */ if (xmlElement != null)
/* */ {
/* 1441 */ elements = new XmlElement[] { xmlElement };
/* */ }
/* */ else
/* */ {
/* 1447 */ XmlElements xmlElements = (XmlElements)property.getUnderlyingAnnotation(XmlElements.class);
/* 1448 */ if (xmlElements != null) {
/* 1449 */ elements = xmlElements.value();
/* */ }
/* */ }
/* */
/* 1453 */ if ((elements == null) || (elements.length == 0)) {
/* 1454 */ elements = new XmlElement[1];
/* */ }
/* */
/* 1457 */ JBossXmlNsPrefix xmlNsPrefix = (JBossXmlNsPrefix)property.getUnderlyingAnnotation(JBossXmlNsPrefix.class);
/* */
/* 1461 */ XmlElementWrapper xmlWrapper = (XmlElementWrapper)property.getUnderlyingAnnotation(XmlElementWrapper.class);
/* 1462 */ if (xmlWrapper != null)
/* */ {
/* 1464 */ String wrapperNamespace = xmlWrapper.namespace();
/* 1465 */ String wrapperName = xmlWrapper.name();
/* 1466 */ boolean wrapperNillable = xmlWrapper.nillable();
/* */
/* 1468 */ QName wrapperQName = generateXmlName(property.getName(), this.elementForm, wrapperNamespace, wrapperName);
/* */
/* 1470 */ TypeBinding wrapperType = new TypeBinding();
/* 1471 */ SequenceBinding seq = new SequenceBinding(this.schemaBinding);
/* 1472 */ seq.setHandler(BuilderParticleHandler.INSTANCE);
/* 1473 */ ParticleBinding particle = new ParticleBinding(seq);
/* 1474 */ wrapperType.setParticle(particle);
/* 1475 */ wrapperType.setHandler(new DefaultElementHandler());
/* */
/* 1477 */ ElementBinding wrapperElement = createElementBinding(propertyType, wrapperType, wrapperQName, false);
/* 1478 */ wrapperElement.setNillable(wrapperNillable);
/* 1479 */ wrapperElement.setSkip(Boolean.TRUE);
/* 1480 */ particle = new ParticleBinding(wrapperElement, 1, 1, false);
/* 1481 */ localModel.addParticle(particle);
/* */
/* 1483 */ localModel = seq;
/* */
/* 1485 */ if (this.trace) {
/* 1486 */ log.trace("Added property " + wrapperQName + " for type=" + property.getBeanInfo().getName() + " property=" + property.getName() + " as a wrapper element");
/* */ }
/* */
/* */ }
/* */
/* 1491 */ if (elements.length > 1)
/* */ {
/* 1493 */ ChoiceBinding choice = new ChoiceBinding(this.schemaBinding);
/* 1494 */ choice.setHandler(BuilderParticleHandler.INSTANCE);
/* 1495 */ ParticleBinding particleBinding = new ParticleBinding(choice);
/* 1496 */ particleBinding.setMinOccurs(0);
/* 1497 */ particleBinding.setMaxOccurs(1);
/* 1498 */ localModel.addParticle(particleBinding);
/* 1499 */ localModel = choice;
/* 1500 */ if (this.trace) {
/* 1501 */ log.trace("XmlElements seen adding choice for type=" + property.getBeanInfo().getName() + " property=" + property.getName());
/* */ }
/* */ }
/* */
/* 1505 */ for (int i = 0; i < elements.length; i++)
/* */ {
/* 1507 */ XmlElement element = elements[i];
/* 1508 */ if (this.trace) {
/* 1509 */ log.trace("Processing " + element + " for type=" + property.getBeanInfo().getName() + " property=" + property.getName());
/* */ }
/* */
/* 1513 */ String overrideNamespace = null;
/* 1514 */ String overrideName = null;
/* 1515 */ boolean nillable = false;
/* 1516 */ boolean required = false;
/* */
/* 1518 */ TypeInfo localPropertyType = propertyType;
/* */
/* 1520 */ if (element != null)
/* */ {
/* 1522 */ overrideNamespace = element.namespace();
/* 1523 */ overrideName = element.name();
/* 1524 */ nillable = element.nillable();
/* 1525 */ required = element.required();
/* 1526 */ Class elementType = element.type();
/* 1527 */ if (elementType != XmlElement.DEFAULT.class) {
/* 1528 */ localPropertyType = propertyType.getTypeInfoFactory().getTypeInfo(elementType);
/* */ }
/* */ }
/* 1531 */ if (xmlNsPrefix != null)
/* */ {
/* 1533 */ overrideNamespace = this.schemaBinding.getNamespace(xmlNsPrefix.prefix());
/* 1534 */ if (overrideNamespace == null)
/* */ {
/* 1536 */ if (xmlNsPrefix.schemaTargetIfNotMapped())
/* */ {
/* 1538 */ overrideNamespace = this.defaultNamespace;
/* */ }
/* */ else
/* */ {
/* 1542 */ throw new IllegalStateException("Prefix '" + xmlNsPrefix.prefix() + "' is not mapped to any namespace!");
/* */ }
/* */
/* */ }
/* */
/* */ }
/* */
/* 1549 */ QName qName = generateXmlName(property.getName(), this.elementForm, overrideNamespace, overrideName);
/* */
/* 1552 */ JBossXmlGroup jbossXmlGroup = null;
/* 1553 */ if (!propertyType.isPrimitive())
/* 1554 */ jbossXmlGroup = (JBossXmlGroup)((ClassInfo)propertyType).getUnderlyingAnnotation(JBossXmlGroup.class);
/* 1555 */ if ((element == null) && (jbossXmlGroup != null))
/* */ {
/* 1557 */ if (this.trace) {
/* 1558 */ log.trace("Processing group for property " + property.getName() + " in " + property.getBeanInfo().getName() + " " + jbossXmlGroup);
/* */ }
/* 1560 */ JBossXmlChild[] children = jbossXmlGroup.value();
/* 1561 */ if ((children != null) && (children.length > 0))
/* */ {
/* 1563 */ TypeBinding elementTypeBinding = new TypeBinding();
/* 1564 */ elementTypeBinding.setSchemaBinding(this.schemaBinding);
/* 1565 */ elementTypeBinding.setHandler(BuilderParticleHandler.INSTANCE);
/* 1566 */ ElementBinding elementBinding = createElementBinding(localPropertyType, elementTypeBinding, qName, false);
/* */
/* 1569 */ ParticleBinding particle = new ParticleBinding(elementBinding, 1, 1, false);
/* 1570 */ if (!required)
/* 1571 */ particle.setMinOccurs(0);
/* 1572 */ localModel.addParticle(particle);
/* */
/* 1575 */ JBossXmlGroupText groupText = (JBossXmlGroupText)((ClassInfo)propertyType).getUnderlyingAnnotation(JBossXmlGroupText.class);
/* */
/* 1577 */ if (groupText != null)
/* */ {
/* */ CharactersHandler textHandler;
/* */ CharactersHandler textHandler;
/* 1580 */ if (groupText.wrapper() != Object.class)
/* */ {
/* 1582 */ BeanInfo wrapperInfo = JBossXBBuilder.configuration.getBeanInfo(groupText.wrapper());
/* 1583 */ textHandler = new ValueHandler(property, wrapperInfo, groupText.property());
/* */ }
/* */ else {
/* 1586 */ textHandler = new ValueHandler(property);
/* 1587 */ }elementTypeBinding.setSimpleType(textHandler);
/* */ }
/* */
/* 1591 */ ChoiceBinding childModel = new ChoiceBinding(this.schemaBinding);
/* 1592 */ childModel.setHandler(BuilderParticleHandler.INSTANCE);
/* 1593 */ ParticleBinding particleBinding = new ParticleBinding(childModel);
/* 1594 */ particleBinding.setMinOccurs(0);
/* 1595 */ particleBinding.setMaxOccurs(1);
/* 1596 */ elementTypeBinding.setParticle(particleBinding);
/* */
/* 1598 */ for (JBossXmlChild child : children)
/* */ {
/* 1600 */ QName childName = generateXmlName(child.name(), this.elementForm, child.namespace(), child.name());
/* 1601 */ TypeInfo childType = JBossXBBuilder.configuration.getTypeInfo(child.type());
/* */
/* 1603 */ TypeBinding childTypeBinding = resolveTypeBinding(childType);
/* 1604 */ ElementBinding childBinding = createElementBinding(childType, childTypeBinding, childName, false);
/* 1605 */ childBinding.setNillable(nillable);
/* */
/* 1608 */ particle = new ParticleBinding(childBinding, child.minOccurs(), child.maxOccurs(), child.unbounded());
/* 1609 */ particle.setMinOccurs(0);
/* 1610 */ childModel.addParticle(particle);
/* */
/* 1612 */ DefaultElementInterceptor interceptor = new PropertyInterceptor(property, propertyType);
/* 1613 */ elementTypeBinding.pushInterceptor(childName, interceptor);
/* 1614 */ if (this.trace) {
/* 1615 */ log.trace("Added interceptor " + childName + " for type=" + property.getBeanInfo().getName() + " property=" + property.getName() + " interceptor=" + interceptor);
/* */ }
/* */
/* 1618 */ beanAdapterFactory.addProperty(qName, new NoopPropertyHandler(property, propertyType));
/* */
/* 1620 */ JBossXmlGroupWildcard groupWildcard = (JBossXmlGroupWildcard)((ClassInfo)propertyType).getUnderlyingAnnotation(JBossXmlGroupWildcard.class);
/* */
/* 1623 */ if (groupWildcard == null)
/* */ continue;
/* */ ChildWildcardHandler groupWildcardHandler;
/* */ ChildWildcardHandler groupWildcardHandler;
/* 1626 */ if (groupWildcard.wrapper() != Object.class)
/* */ {
/* 1628 */ BeanInfo wrapperInfo = JBossXBBuilder.configuration.getBeanInfo(groupWildcard.wrapper());
/* 1629 */ groupWildcardHandler = new ChildWildcardHandler(property, wrapperInfo, groupWildcard.property());
/* */ }
/* */ else {
/* 1632 */ groupWildcardHandler = new ChildWildcardHandler(property);
/* */ }
/* 1634 */ WildcardBinding wildcard = new WildcardBinding(this.schemaBinding);
/* 1635 */ if (groupWildcard.lax())
/* 1636 */ wildcard.setProcessContents(3);
/* */ else {
/* 1638 */ wildcard.setProcessContents(1);
/* */ }
/* 1640 */ particleBinding = new ParticleBinding(wildcard);
/* 1641 */ particleBinding.setMinOccurs(0);
/* 1642 */ particleBinding.setMaxOccurs(1);
/* 1643 */ childModel.addParticle(particleBinding);
/* */
/* 1645 */ elementTypeBinding.getWildcard().setWildcardHandler(groupWildcardHandler);
/* */ }
/* */ }
/* */
/* */ }
/* */ else
/* */ {
/* 1652 */ XBValueAdapter valueAdapter = null;
/* 1653 */ XmlJavaTypeAdapter xmlTypeAdapter = (XmlJavaTypeAdapter)property.getUnderlyingAnnotation(XmlJavaTypeAdapter.class);
/* 1654 */ if (xmlTypeAdapter != null)
/* */ {
/* 1656 */ valueAdapter = new XBValueAdapter(xmlTypeAdapter.value(), propertyType.getTypeInfoFactory());
/* 1657 */ localPropertyType = valueAdapter.getAdaptedTypeInfo();
/* */ }
/* */
/* 1660 */ ModelGroupBinding targetGroup = localModel;
/* 1661 */ boolean isCol = false;
/* 1662 */ AbstractPropertyHandler propertyHandler = null;
/* */
/* 1666 */ if ((propertyType.isCollection()) && (((ClassInfo)propertyType).getUnderlyingAnnotation(XmlType.class) == null))
/* */ {
/* 1669 */ isCol = true;
/* 1670 */ propertyHandler = new CollectionPropertyHandler(property, propertyType);
/* 1671 */ ClassInfo typeArg = (ClassInfo)findComponentType(property);
/* */
/* 1674 */ if ((typeArg != null) && (typeArg.getUnderlyingAnnotation(JBossXmlModelGroup.class) == null))
/* */ {
/* 1678 */ JBossXmlChild xmlChild = (JBossXmlChild)((ClassInfo)propertyType).getUnderlyingAnnotation(JBossXmlChild.class);
/* 1679 */ if ((xmlChild == null) && (localPropertyType.equals(propertyType)))
/* */ {
/* 1681 */ localPropertyType = typeArg;
/* */ }
/* */
/* */ }
/* */
/* */ }
/* 1687 */ else if ((localPropertyType.isCollection()) && (((ClassInfo)localPropertyType).getUnderlyingAnnotation(XmlType.class) == null))
/* */ {
/* */ Type parameterizedType;
/* */ Type parameterizedType;
/* 1691 */ if (valueAdapter != null)
/* */ {
/* 1693 */ propertyHandler = new PropertyHandler(property, localPropertyType);
/* 1694 */ parameterizedType = valueAdapter.getAdaptedType();
/* */ }
/* */ else
/* */ {
/* 1698 */ propertyHandler = new CollectionPropertyHandler(property, localPropertyType);
/* 1699 */ parameterizedType = localPropertyType.getType();
/* */ }
/* 1701 */ isCol = true;
/* 1702 */ localPropertyType = findActualType((ClassInfo)localPropertyType, parameterizedType, Collection.class, 0);
/* */ }
/* */ else
/* */ {
/* 1707 */ propertyHandler = new PropertyHandler(property, localPropertyType);
/* */ }
/* */
/* 1713 */ if (!Element.class.getName().equals(propertyType.getName()))
/* */ {
/* 1715 */ TypeBinding elementTypeBinding = resolveTypeBinding(localPropertyType);
/* 1716 */ ElementBinding elementBinding = createElementBinding(localPropertyType, elementTypeBinding, qName, false);
/* 1717 */ elementBinding.setNillable(nillable);
/* 1718 */ elementBinding.setValueAdapter(valueAdapter);
/* */
/* 1721 */ ParticleBinding particle = new ParticleBinding(elementBinding, 1, 1, isCol);
/* 1722 */ if (!required) {
/* 1723 */ particle.setMinOccurs(0);
/* */ }
/* 1725 */ targetGroup.addParticle(particle);
/* */ }
/* */
/* 1728 */ beanAdapterFactory.addProperty(qName, propertyHandler);
/* 1729 */ if (this.trace)
/* 1730 */ log.trace("Added property " + qName + " for type=" + property.getBeanInfo().getName() + " property=" + property.getName() + " handler=" + propertyHandler);