package org.wikipedia.dataclient.mwapi; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import org.apache.commons.lang3.StringUtils; import org.wikipedia.dataclient.ServiceError; import java.util.Collections; import java.util.List; /** * Gson POJO for a MediaWiki API error. */ public class MwServiceError implements ServiceError { @SuppressWarnings("unused") @Nullable private String code; @SuppressWarnings("unused") @Nullable private String info; @SuppressWarnings("unused") @Nullable private String docref; @SuppressWarnings("unused") @NonNull private List<Message> messages = Collections.emptyList(); @Override @Nullable public String getTitle() { return code; } @Override @Nullable public String getDetails() { return info; } @Nullable public String getDocRef() { return docref; } public boolean badToken() { return "badtoken".equals(code); } public boolean hasMessageName(@NonNull String messageName) { for (Message msg : messages) { if (messageName.equals(msg.name)) { return true; } } return false; } @Nullable public String getMessageHtml(@NonNull String messageName) { for (Message msg : messages) { if (messageName.equals(msg.name)) { return msg.html(); } } return null; } @Override public String toString() { return "MwServiceError{" + "code='" + code + '\'' + ", info='" + info + '\'' + ", docref='" + docref + '\'' + '}'; } private static final class Message { @SuppressWarnings("unused") @Nullable private String name; @SuppressWarnings("unused") @Nullable private String html; @NonNull private String html() { return StringUtils.defaultString(html); } } }