/** * Parses an XML element using the given XML pull parser into the given destination object. * * <p> * Requires the the current event be {@link XmlPullParser#START_TAG} (skipping any initial * {@link XmlPullParser#START_DOCUMENT}) of the element being parsed. At normal parsing * completion, the current event will either be {@link XmlPullParser#END_TAG} of the element being * parsed, or the {@link XmlPullParser#START_TAG} of the requested {@code atom:entry}. * </p> * * @param parser XML pull parser * @param destination optional destination object to parser into or {@code null} to ignore XML * content * @param namespaceDictionary XML namespace dictionary to store unknown namespaces * @param customizeParser optional parser customizer or {@code null} for none */ public static void parseElement(XmlPullParser parser, Object destination, XmlNamespaceDictionary namespaceDictionary, CustomizeParser customizeParser) throws IOException, XmlPullParserException { ArrayList<Type> context = new ArrayList<Type>(); if (destination != null) { context.add(destination.getClass()); } parseElementInternal(parser, context, destination, null, namespaceDictionary, customizeParser); }
? Types.getMapValueParameter(fieldType) : null; subValueType = Data.resolveWildcardTypeOrTypeVariable(context, subValueType); isStopped = parseElementInternal(parser, context, mapValue, subFieldType) : null; subValueType = Data.resolveWildcardTypeOrTypeVariable(context, subValueType); isStopped = parseElementInternal(parser, context, elementValue, int contextSize = context.size(); context.add(fieldType); isStopped = parseElementInternal(parser, context, elementValue, int contextSize = context.size(); context.add(fieldType); isStopped = parseElementInternal(parser, context, value,