All Downloads are FREE. Search and download functionalities are using the official Maven repository.

info.bliki.api.XMLUserParser Maven / Gradle / Ivy

The newest version!
package info.bliki.api;

import org.xml.sax.Attributes;
import org.xml.sax.SAXException;

/**
 * Reads User data from an XML file generated by the Wikimedia API
 */
public class XMLUserParser extends AbstractXMLParser {
    private static final String LOGIN_ID = "login";
    private static final String RESULT_ID = "result";
    private static final String USER_ID = "lguserid";
    private static final String USER_NAME_ID = "lgusername";
    private static final String LG_TOKEN_ID = "lgtoken";
    private static final String TOKEN_ID = "token";

    private User fUser;

    public XMLUserParser(User user, String xmlText) throws SAXException {
        super(xmlText);
        fUser = user;
    }

    @Override
    public void startElement(String namespaceURI, String localName, String qName, Attributes atts) {
        fAttributes = atts;

        if (LOGIN_ID.equals(qName)) {
            final String result = fAttributes.getValue(RESULT_ID);
            fUser.setResult(result);

            if (User.NEED_TOKEN_ID.equalsIgnoreCase(result)) {
                fUser.setToken(fAttributes.getValue(TOKEN_ID));
            } else {
                fUser.setUserid(fAttributes.getValue(USER_ID));
                fUser.setNormalizedUsername(fAttributes.getValue(USER_NAME_ID));
                fUser.setToken(fAttributes.getValue(LG_TOKEN_ID));
            }
        }
        fData = null;
    }

    @Override
    public void endElement(String uri, String name, String qName) {
        fData = null;
        fAttributes = null;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy