package org.wikipedia.dataclient.mwapi.page; import android.support.annotation.Nullable; import org.wikipedia.dataclient.mwapi.MwServiceError; import org.wikipedia.dataclient.page.PageSummary; /** * Useful for link previews coming from MW API. */ public class MwQueryPageSummary implements PageSummary { @SuppressWarnings("unused") private MwServiceError error; @SuppressWarnings("unused") @Nullable private MwQuery query; @Override public boolean hasError() { // if there is no page set something went terribly wrong return error != null || getFirstPage() == null; } @Override @Nullable public MwServiceError getError() { return error; } @Override @Nullable public String getTitle() { return getFirstPage() == null ? null : getFirstPage().title; } @Override @Nullable public String getExtract() { return getFirstPage() == null ? null : getFirstPage().extract; } @Override @Nullable public String getThumbnailUrl() { return getFirstPage() == null ? null : getFirstPage().getThumbnailUrl(); } private MwPage getFirstPage() { return (query != null && query.pages != null) ? query.pages[0] : null; } private static class MwQuery { @SuppressWarnings("unused,MismatchedReadAndWriteOfArray") @Nullable private MwPage[] pages; } private static class MwPage { @SuppressWarnings("unused") @Nullable private String title; @SuppressWarnings("unused") @Nullable private String extract; @SuppressWarnings("unused") @Nullable private Thumb thumbnail; @Nullable public String getThumbnailUrl() { return thumbnail == null ? null : thumbnail.getUrl(); } } /** * For the thumbnail URL of the page */ public static class Thumb { @SuppressWarnings("unused") private String source; public String getUrl() { return source; } } }