public SOAPHandler onStartChild( String namespace, String localName, String prefix, Attributes attributes, DeserializationContext context) throws SAXException { QName typeQName = context.getTypeFromAttributes(namespace, localName, attributes); Deserializer dser = context.getDeserializerForType(typeQName); if (dser == null) dser = new DeserializerImpl(); SOAPConstants soapConstants = context.getSOAPConstants(); String href = attributes.getValue(soapConstants.getAttrHref()); if (href != null) { Object ref = context.getObjectByRef(href); ItemHandler handler = new ItemHandler(md); addChildDeserializer(handler); return handler; } addChildDeserializer(dser); return (SOAPHandler) dser; }
/** * onStartChild is called on each child element. * * @param namespace is the namespace of the child element * @param localName is the local name of the child element * @param prefix is the prefix used on the name of the child element * @param attributes are the attributes of the child element * @param context is the deserialization context. * @return is a Deserializer to use to deserialize a child (must be a derived class of * SOAPHandler) or null if no deserialization should be performed. */ public SOAPHandler onStartChild( String namespace, String localName, String prefix, Attributes attributes, DeserializationContext context) throws SAXException { if (log.isDebugEnabled()) { log.debug("Enter: MapDeserializer::onStartChild()"); } if (localName.equals("item")) { // liferay - changes started // check if 'href' attribute is present. if so, process it // with BigItemHandler (see bellow) SOAPConstants soapConstants = context.getSOAPConstants(); String href = attributes.getValue(soapConstants.getAttrHref()); if (href != null) { Object ref = context.getObjectByRef(href); BigItemHandler handler = new BigItemHandler(this); addChildDeserializer(handler); return handler; } // liferay - end of changes ItemHandler handler = new ItemHandler(this); // This item must be complete before we're complete... addChildDeserializer(handler); if (log.isDebugEnabled()) { log.debug("Exit: MapDeserializer::onStartChild()"); } return handler; } return this; }